PDA

Просмотр полной версии : Читаем файлы через слепую инъекцию


durito
10.12.2010, 10:05
вот тут решил поделиться небольшим опытом

Недавно столкнулся с такой проблемой, нашел в одном крупном датинге слепую инъекцию. Снял пароль 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,10 9,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,11 2,104,112))),1,1))>96

Я понял что перебирать придется руками, а это не есть гуд. SIMP4 выводит блингом значения до 1 пробела, поэтому все что он мне показал было

totenkopf
15.12.2010, 06:41
Информация к размышлению


Code:
position("pass" IN load_file("/path/config.php"))
select substring(load_file("/path/config.php"),pos)

попугай
15.12.2010, 06:53
totenkopf said:
Информация к размышлению

Code:
position("pass" IN load_file("/path/config.php"))
select substring(load_file("/path/config.php"),pos)




а что за функция "position"?

totenkopf
15.12.2010, 07:01
Возвращает позицию вхождения подстроки в строку или ноль если строка не найдена.

Функция таит в себе огромные возможности. Как вам например такой запрос:


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(0x70617 373+in+column_name)+--+

Выводит все таблицы в названии полей которых есть "pass". Причем кавычки не используются.

altblitz
15.12.2010, 07:51
durito - нашенский ))

проявил волю, терпение и способности анализировать и исправлять свои ошибки.

"Папа, а что такое Гугл?"

"Это хакирский сайт"

http://www.2-ch.ru/wm/thumb/1292373420250s.jpg