Back Content Forward

30 июня 2005, то есть буквально вчера, появилось сообщение на секурных сайтах. о том что phpBB снова облажался,
и опять по крупному. На секлабе был вывешен примерно такой бюллетень:

Выполнение произвольного PHP сценария в phpBB в коде highlighting
Программа: phpBB 2.0.15
Опасность: Высокая

Наличие эксплоита: Нет

Описание:
Уязвимость позволяет удаленному пользователю выполнить произвольный PHP сценарий на целевой системе.

Уязвимость существует из-за некорректного использования функции preg_replace() в сценарии 'viewtopic.php' при обработке входных данных. Удаленный пользователь может с помощью специально сформированного запроса заставить приложение интерпретировать входные данные как PHP сценарий и выполнить его.

URL производителя: www.phpbb.com

Решение: Установите последнюю версию (2.0.16) с сайта производителя.

Тут же все "скрипт-кидди" почуяли запах жаренного, а точнее начали рыскать в поисках этого жаренного. Я говорю об эксплоите.
Ищущий, да обрящет, и к концу этого же дня командаDigital Security Research (!dSR) выпустила эксплоит, предоставляющий шелл на серваке с бажным форумом. Я получил эту инфу от uinc, и тут же принялся за исследование сплоита (а написан он на моем любимом perl). Быстренько пробежавшись по коду, понял что написан он как всегда левой ногой (хотя к чести кодеров надо заметить что написан сплойт с прагмой use strict; что встретишь не часто). Хотя насчет левой ноги я конечно преувеличиваю. Написан сплойт нормально, за
исключением некоторых вещей, которые я исправил в своей версии этого сплойта.
Наверно не стоило из-за этого писать статью, но я не смог уйти от соблазна постучать по клаве по этому поводу :).
Итак, встречайте эксплойт под phpBB 2.0.15 который отличается от оригинального - красотой исполнения :)).

Для начала я добавил возможность выхода из оболочки (аля phpbb shell'a) при вводе команды exit.
Затем, после применения на одном сайте оригинального эксплоита, заметил что вывод его ужасен.
К примеру команда id, выводила примерно следующее:
---------
< - пустая строка
30
uid=..(apache);.....
f
.
< --пустая строка
---------
Вывод засорен всяким хламом. При выводе содержимого каталога (комнда ls -la) хлама было еще больше.
Помимо этого, алгоритм "вырезания" команды из ответа сервера меня так же поразил, его я изменил на более изящный.
В результате получился удобный инструмент, и полноценный shell в результате его применения.

рис 1. Красивый вывод каталога :))

Я нисколько не насмехаюсь над командой зарелизившей сплоит (наоборот - мое почтение им), статья призывает лишь к тому чтобы писать, пусть даже и эксплоиты, более качественно. Хотя я понимаю, что скорость написания сплоита к таким пустячным вещам как форумы, влияет на первенство в релизе этого сплоита.
Удач!


PoizOn

 

Back Content Forward