Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #73, ЯНВАРЬ 2005 г.

Как я ломал hotbox.ru

Master-lame-master

Хакер, номер #073, стр. 073-044-2


Но я пока не спешил создавать новую страницу, так как наткнулся на ссылку, ведущую к старому файл-менеджеру. В отличие от обновленной версии, этот скрипт выполнял все функции (создание, просмотр, редактирование, удаление файлов и т.п.) самостоятельно, тем самым вызывая нездоровый интерес. При исследовании возможностей менеджера мне посчастливилось открыть недокументированную функцию скрипта. Не знаю, что меня надоумило подставить значение chmod в параметр action, но это сработало :). Передо мной появилась небольшая форма, позволяющая менять атрибуты файлов и каталогов. Если файл не указан, используется корневой каталог. Забавы ради я установил права 000 на корень своего виртуального каталога, что возымело поразительный эффект: меня выбросило в корневой каталог самого портала :). Там лежали файлы с очень красивыми названиями, например, conf.inc, auth.php и, конечно же, inf.php, в котором вызывался phpinfo() :). Спустя пять минут я владел данными о структуре сервера, знал аккаунт к БД, но, к сожалению, пока не мог выполнять команды и просматривать файлы вне WWW-зоны.

Сохраняем... и просматриваем

После увлекательного просмотра файлов на сервере я изменил атрибуты на прежние и решил покопаться в ВебБилдере. Я создал очень интересную HTML-страничку и размышлял, куда бы ее сохранить. Внимательно оценив параметры, которые передаются скрипту file.savewb.php, я заметил небольшое отличие от остальных сценариев. Как ты понимаешь, всем вышеописанным скриптам передается параметр sess_id, имеющий значение сессии пользователя. В файле file.savewb.php также присутствовал этот идентификатор. Только вот передавался он параметру с именем session_id. Переименовав его в sess_id, я увидел аномальный результат: вместо моего каталога отображался корень диска на сервере. Позже выяснилось, что если подставить в параметр dirbase нужный каталог, скрипт покажет его содержимое. К сожалению, эта фича не распространялась на файлы – file.savewb.php никак не хотел показывать внутренности документов.

В течение трех длинных вечеров я анализировал содержимое директорий на хостинговом сервере. Выяснилось, что в каталоге /hosting находилась иерархия папок всех зарегистрированных пользователей. Также существовало несколько каталогов, куда были залиты административные скрипты и конфиги. Их просмотр осуществлялся прямо через WWW. Но в общем ситуация выглядела не лучшим образом: от чтения каталогов пользы мало. Мне хотелось научиться выполнять команды, чтобы как можно быстрее добраться до заветной базы. И чем больше я этого желал, тем меньше мне везло во взломе. На третий вечер я уже подумывал о том, чтобы бросить эту затею и написать в службу поддержки о моих достижениях с просьбой все-таки вернуть мой почтовый ящик :). Но внезапно мне посчастливилось найти еще один примечательный баг, который в корне изменил ситуацию.

Назад на стр. 073-044-1  Содержание  Вперед на стр. 073-044-3