X-конкурс
Хакер, номер #100, стр. 089 Zaco Салют, хакеры! Вот и настало время объявить победителя первого весеннего конкурса. Им стал ???????????, и за это он получает приз - ?????????????. Теперь о прошлом. Февральский конкурс взлома, по моим соображениям, получился довольно-таки интересным, поэтому я опишу порядок его прохождения чуть подробнее. Первым делом обследуем весь контент сайта и тут же находим 565.c - простой биндшелл под *nix. Все сценарии корректно обрабатывают передаваемые пользователем переменные, поэтому нам нужны дополнительные пути. Смотрим стандартно http://konkurs.xakep.ru/robots.txt, из него открываем logz.txt. Первых двух строчек для дальнейшего исследования достаточно - у нас есть скрипт admiiiin.php и запись в поле «Сookie»: «admin=0d4y;pass=hack;pre=test;». Многие из участников долго не могли сдвинуться с места, хотя все, как всегда, предельно просто ;). А что если admin="0d4y", а pass="hack;pre=test"? Просто пароль оказывается чуть длиннее, чем все думали. Подставляем и попадаем в админку. Админка представляет собой простой скрипт, позволяющий перемещаться по директориям сервера и просматривать содержимое файлов/каталогов. В папке со сценарием находим дополнительный скрипт tool____.php. Так как через админку выполнять команды невозможно, то остается только одно - открыть tool____.php :). Это, казалось бы, обычный сценарий для отправки письма, но… Вспомним о биндшелле. Теперь с помощью любого сканера портов находим открытый порт 6655. Телнетимся на него и в ответ получаем «>>only local ip in security reasons» и закрытие соединения с другой стороны. Посмотрев сорец биндшелла еще раз, можно убедиться, что идет проверка на локальность подключения. Но вернемся к tool____.php. Заглянув через админку в исходник, замечаем, что переменная $to поля «Куда:» никак не фильтруется, а сам скрипт отправляет мыло тупым коннектом на порт 25 сервера с хостом-подстрокой, идущей после символа «@» :). Функция fsockopen, на самом деле, позволяет указать порт после двоеточия в адресе хоста, поэтому вбиваем в поле «Куда:» «>>xek@localhost:6655», а в поле «Сообщение:» «>>;ls>/tmp/temp;». На вход дочернего процесса sh нашего биндшелла пойдет smtp-пакет от скрипта tool____.php, и команда ls выполнится успешно. Через админку просматриваем результат в /tmp/temp, далее делаем «cat my_mail > /tmp/tempp: pidorcheto@yandex.ru:iamtrueodept:iamtruemoneyodept» и получаем пароль от аккаунта 0d4y на yandex.ru :). Остается войти в аккаунт. Понимаем, что ничего дельного тут нет, обращаем внимание на второй пасс - iamtruemoneyodept и слово «money». Идем в платежки, вбиваем пасс и получаем долгожданный адрес/телефон 0d4y ;). Несмотря на сезонные авитаминоз и депрессию, тебе в очередной раз предстоит одолеть наш сервер. Все подробности самого весеннего конкурса взлома читай на http://konkurs.xakep.ru. |