Dorks links Grabber (Bing Version)

  • 0 Respuestas
  • 5713 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Xt3mP

  • *
  • Underc0der
  • Mensajes: 432
  • Actividad:
    0%
  • Reputación 0
  • Ellos me están buscando, pero yo los encontraré.
    • MSN Messenger - Xt3mP@h4x0rz.us
    • AOL Instant Messenger - Xt3mP@h4x0rz.us
    • Yahoo Instant Messenger - Xt3mP@h4x0rz.us
    • Ver Perfil
    • Xt3mP

Dorks links Grabber (Bing Version)

  • en: Abril 13, 2012, 06:04:13 pm
Este es un script que ya tenía guardado, el cual tiene como fin obtener páginas del motor de Bing para comprobarlas y checar el archivo en cuestión (ingresado) existe. La idea la tenía ya hace un tiempo pero en realidad la idea príncipal le corresponde a ar3sw0rmed ya que el me lo comentó y me gustó la idea.


La utilidad consta de lo siguiente:
  • Insert DORK: Dork de bing.
  • Search Engine: Por el momento Bing; Google se maneja diferente y está un poco más complicado.
  • Output file: Nombre de archivo donde se guardara el resultado.
  • Check file: Nombre de archivo a comprobar.
  • Raw links: Todos los enláces encontrados.
  • Correct links: Todos los enláces correctos.
  • Bad links: Todos los enláces incorrectos.
  • Output file: Ruta del archivo creado.
  • Estadísticas.
El script sólo llega hasta la página 20 apróximadamente y puede tardar dependiendo del servidor, en mi caso, en localhost tardó 7 minutos.

Código: PHP
  1. <?php
  2. /*
  3.  * Author: Xt3mP
  4.  * Name: Dorks link grabber
  5.  * Version: 1.0 Bing
  6.  * Contact: xt3mp[at]null[dot]net
  7.  * Website: http://xt3mp.mx | http://backroot.org
  8.  */
  9. ?>
  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  13. <title>Dorks links Grabber (Bing version) | Xt3mP</title>
  14. <style type="text/css">body{background-color:#2b2b2b;color:#777;font-family:Courier,"Courier New",monospace,sans-serif;font-size:12px}div#container{height:auto;margin:0 auto;width:600px}fieldset{background-color:#222;border:1px dashed #777;float:left;margin:5px;padding:5px;width:100%}legend{background-color:#555;border:1px dashed #777;color:#FFF;font-weight:700;margin:5px;padding:5px}label{float:left;margin-right:5px;padding-top:5px;text-align:right;width:100px}input,select{background-color:#E7E7E7;border:1px dashed #777;float:left;font-family:Courier,"Courier New",monospace,sans-serif;font-size:12px;margin-bottom:5px;padding:3px;width:490px}input[type=submit]{width:600px}h1{margin:0;padding:0}a{color:#CCC;font-weight:700}a:hover{color:#FFF;text-decoration:underline}</style>
  15. </head>
  16. <body>
  17. <?php
  18. class dorkGrabber
  19. {
  20.    private $bing;
  21.    private $checkfile;
  22.    
  23.    public function __construct()
  24.    {
  25.       $this->bing = 'http://www.bing.com/search?q=';
  26.    }
  27.    
  28.    private function getSource($target)
  29.    {
  30.       $target = @file_get_contents($target);
  31.       return $target;
  32.    }
  33.    
  34.    private function remakeUrl($url)
  35.    {
  36.       $url = explode("/", $url);
  37.       for($z = 0; $z < count($url) - 1; $z++)
  38.       {
  39.          $new .= $url[$z].'/';
  40.       }
  41.       return $new;
  42.    }
  43.    
  44.    private function checkUrl($url)
  45.    {
  46.       if(@fopen($this->remakeUrl($url).$this->checkfile, 'r'))
  47.          return true;
  48.       else
  49.          return false;
  50.    }
  51.    
  52.    private function parseLinks($target)
  53.    {
  54.       $data['rawlinks'] = array();
  55.       $data['correctlinks'] = array();
  56.       $data['badlinks'] = array();
  57.       for($i = 0; $i < 21; $i++)
  58.       {
  59.          $first = ($i == 0) ? 0 : ($i * 10) + 1;
  60.          $source = $this->getSource($target.'&first='.$first);
  61.          $pattern = "/<h3><a href=\"(.*?)\" onmousedown=/";
  62.          $preg = preg_match_all($pattern, $source, $output, PREG_PATTERN_ORDER);
  63.          
  64.          if(count($output[1]) != 0)
  65.          {
  66.             for($x = 0; $x<count($output[1]); $x++)
  67.             {
  68.                if(!in_array($this->remakeUrl($output[1][$x]), $data['correctlinks']))
  69.                {
  70.                   if($this->checkUrl($output[1][$x]))
  71.                   {
  72.                      $data['rawlinks'][] = $output[1][$x];
  73.                      $data['correctlinks'][] = $this->remakeUrl($output[1][$x]);
  74.                   }else{
  75.                      $data['rawlinks'][] = $output[1][$x];
  76.                      $data['badlinks'][] = $output[1][$x];
  77.                   }
  78.                }
  79.             }
  80.          }else{
  81.             break;
  82.          }
  83.       }
  84.       return $data;
  85.    }
  86.    
  87.    private function getLinks($target)
  88.    {
  89.       $newTarget = $this->getSource($target);
  90.       $check = "/<h1>No se han encontrado resultados para <strong>/";
  91.       if(@preg_match($check, $newTarget))
  92.          return false;
  93.       else
  94.          return $this->parseLinks($target);
  95.    }
  96.    
  97.    private function makeData($type, $links, $output = null)
  98.    {
  99.       switch($type)
  100.       {
  101.          case 'raw':
  102.             $title = '<h1>Raw links</h1>';
  103.             foreach($links['rawlinks'] as $link)
  104.             {
  105.                $linkdir .= $link."\r\n";
  106.             }
  107.             $data = $title.'<textarea rows="5" style="width: 600px; font-size: 11px;">'.$linkdir.'</textarea>';
  108.          break;
  109.          case 'correct':
  110.             $title = '<h1>Correct links</h1>';
  111.             foreach($links['correctlinks'] as $link)
  112.             {
  113.                $linkdir .= $link."$this->checkfile\r\n";
  114.             }
  115.             $data = $title.'<textarea rows="5" style="width: 600px; font-size: 11px;">'.$linkdir.'</textarea>';
  116.          break;
  117.          case 'bad':
  118.             $title = '<h1>Bad links</h1>';
  119.             if(empty($links['badlinks']))
  120.             {
  121.                $data = $title.'<textarea rows="5" style="width: 600px; font-size: 11px;">None</textarea>';
  122.             }else{
  123.                foreach($links['badlinks'] as $link)
  124.                {
  125.                   $linkdir .= $link."\r\n";
  126.                }
  127.                $data = $title.'<textarea rows="5" style="width: 600px; font-size: 11px;">'.$linkdir.'</textarea>';
  128.             }
  129.          break;
  130.          case 'txt':
  131.             $title = '<h1>Output file</h1>';
  132.             foreach($links['correctlinks'] as $link)
  133.             {
  134.                $linkdir .= $link.$this->checkfile;
  135.             }
  136.             $tot = count($links['correctlinks']) + count($links['badlinks']);
  137.             $statistics = '
  138.                     [Total links: <b>'.$tot.'</b>]
  139.                     [Correct links: <b>'.count($links['correctlinks']).'</b>]
  140.                     [Bad links: <b>'.count($links['badlinks']).'</b>]';
  141.             $file = fopen($output, 'w+');
  142.             if($file)
  143.             {
  144.                fwrite($file, $linkdir);
  145.                fclose($file);
  146.                $filedir = $output.' > http:/'.dirname($_SERVER["PHP_SELF"]).'/'.$output;
  147.                $data = $title.'<textarea rows="5" style="width:600px;font-size:11px;margin-bottom:5px;">'.$filedir.'</textarea>';
  148.                $data .= $statistics.' <a href="./'.$output.'" target="_blank">[View output file]</a>';
  149.             }else{
  150.                $data = $title.$statistics.' [Can\'t make output file]';
  151.             }
  152.          break;
  153.       }
  154.       return $data;
  155.    }
  156.    
  157.    public function makeDirective($dork, $output, $checkfile = null)
  158.    {
  159.       $dork = urlencode($dork);
  160.       $target = $this->bing.$dork;
  161.       $this->checkfile = $checkfile;
  162.       $grabber = $this->getLinks($target);
  163.       $result = '<fieldset style="text-align: justify"><legend>Result</legend>';
  164.       if($grabber === false)
  165.       {  
  166.          $result .= 'The DORK (<b>'.urldecode($dork).'</b>) doesn\'t return any results.';
  167.       }else{
  168.          $result .= $this->makeData('raw', $grabber);
  169.          $result .= $this->makeData('correct', $grabber);
  170.          $result .= $this->makeData('bad', $grabber);
  171.          $result .= $this->makeData('txt', $grabber, $output);
  172.       }
  173.       $result .= '</fieldset>';
  174.       return $result;
  175.    }
  176. }
  177. ?>
  178. <div id="container">
  179.    <fieldset>
  180.       <legend>Dorks links Grabber (Bing version) | <a href="http://xt3mp.mx" target="_blank">Xt3mP</a></legend>
  181.       <form action="" method="POST">
  182.          <label>Insert DORK:</label><input type="text" name="dork"/><br />
  183.          <label>Search eng.:</label><input type="text" name="engine" value="Bing" disabled="disabled"><br />
  184.          <label>Output file:</label><input type="text" name="output" /><br />
  185.          <label>Check file:</label><input type="text" name="check"/><br />
  186.          <input type="submit" name="get" value="Get Links!" />
  187.       </form>
  188.    </fieldset>
  189.    <?php
  190.    if(isset($_POST['get']))
  191.    {
  192.       if(empty($_POST['dork']) or empty($_POST['output']))
  193.       {
  194.          echo '<script>alert("Some fields are empty!.");</script>';
  195.       }else{
  196.          $mtime = microtime();
  197.          $mtime = explode(' ',$mtime);
  198.          $mtime = $mtime[1] + $mtime[0];
  199.          $starttime = $mtime;
  200.          $dorkGrabber = new dorkGrabber();
  201.          echo $dorkGrabber->makeDirective($_POST['dork'], $_POST['output'], $_POST['check']);
  202.          $mtime = microtime();
  203.          $mtime = explode(' ',$mtime);
  204.          $mtime = $mtime[1] + $mtime[0];
  205.          $endtime = $mtime;
  206.          $totaltime = ($endtime - $starttime);
  207.          echo 'This page took '.round($totaltime).' seconds to load.';
  208.       }
  209.    }
  210.    ?>
  211. </div>
  212. </body>
  213. </html>
  214.  

Nota: Es probable que pueda generar falsos positivos porque la manera de comprobar el archivo no es tan eficaz, por lo que algunos servidores al entrar a web.com/archivoinexistente.php lo regresa como 200 en éste caso ya que es encontrada y no quize comprobar la página por cURL.

Cualquier cosa comenten, porque como he dicho, puede que tenga errores.
Saludos.
Cada vez que me das Karma me motivas

 

[PHP Shell] Poison Shell 1.0 (Version Identada)

Iniciado por BigBear

Respuestas: 6
Vistas: 4802
Último mensaje Octubre 09, 2012, 01:30:50 pm
por wayver
FOCA final version: pro+portable (gratuita)

Iniciado por Kolibri26

Respuestas: 8
Vistas: 13940
Último mensaje Octubre 13, 2014, 05:58:27 am
por rollth
Encontrar panel PhpMyadmin mediante Google Dorks

Iniciado por k43l

Respuestas: 0
Vistas: 4092
Último mensaje Octubre 23, 2012, 11:27:41 am
por k43l
Dorks, Utilizalo en GHDB para Sqli

Iniciado por M1ndCr4ck

Respuestas: 1
Vistas: 4544
Último mensaje Julio 04, 2012, 04:48:55 am
por backconnect
Dorks para sacar Info Delicada

Iniciado por Flemon

Respuestas: 5
Vistas: 67461
Último mensaje Agosto 05, 2013, 12:52:58 pm
por CodePunisher