The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимость в движке для создания форумов phpBB"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от opennews (??), 21-Ноя-18, 09:51 
В популярном свободном движке для создания форумов phpBB (https://www.phpbb.com/) выявлена уязвимость (https://blog.ripstech.com/2018/phpbb3-phar-deserialization-t.../) (CVE-2018-19274 (https://security-tracker.debian.org/tracker/CVE-2018-19274)), позволяющая выполнить PHP-код на сервере и получить контроль за всей инфраструктурой форумов, имея полномочия  администратора одного из форумов. Проблема устранена в выпуске phpBB 3.2.4 (https://www.phpbb.com/community/viewtopic.php?f=14&t=2492206).


Уязвимость вызвана отсутствием проверки поступающих от пользователя данных, перед их использованием в функции file_exists(). Данная особенность позволяет применить для эксплуатации технику "Phar deserialization (https://blog.ripstech.com/2018/new-php-exploitation-technique/)", манипулирующую автоматической десериализацией метаданных при обработке файлов Phar (PHP Archive). Атакующий может задать в панели управления абсолютный путь к исполняемому файлу с редактором изображений (ImageMagic). Перед применением новой настройки данный путь без проверки будет обработан функцией file_exists(), которая в случае указания URI "phar://" обработает метаданные в указанном файле.


Указав вместо редактора изображений ссылку на загруженный атакующим phar-файл можно осуществить подстановку нового объекта, выполняемого в контексте всего приложения. Например можно указать "phar:///var/www/phpBB3/files/evil.jpg", где evil.jpg - загруженный под видом картинки файл в формате phar, который будет разобран невзирая на расширение jpg. Похожая проблема может присутствовать и в других PHP-приложениях, допускающих загрузку на сервер картинок и обработку передаваемых пользователем  файловых путей в таких функциях, как file_exists(), fopen(), file_get_contents() и file().

URL: https://blog.ripstech.com/2018/phpbb3-phar-deserialization-t.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=49641

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Уязвимость в движке для создания форумов phpBB"  +2 +/
Сообщение от Qwerty (??), 21-Ноя-18, 09:51 
Помню, лет 10 назад создавал на нём форум, будучи ещё зелёным в вебе. Хороший движок. Был.
Ответить | Правка | Наверх | Cообщить модератору

2. "Уязвимость в движке для создания форумов phpBB"  +3 +/
Сообщение от нах (?), 21-Ноя-18, 10:18 
ну, не считая того что у авторов был и остался очень странный подход к пониманию, что есть bulletin board (для нормального общения эти форумы непригодны абсолютно, вот для торрент-трекера, где каждая тема - отдельный торрент, а комментарии незачем и читать вообще - самое то, и примерно для этой цели всю жизнь подобные вещи и использовались) - не вижу почему "был". Движок как движок, авторы не виноваты в дырах php by design.

Пихание во все места, принимающие _файл_, вместо файлов дурацких псевдоурлов без отдельного апи для этого - именно дыра by design. Как бы ни старались аффтары всего на свете софта подстелить там соломки - изобретательные разработчики всегда их переплевывают - что, собственно, и случилось с phar://
Ты пытаешься выяснить, существует ли файлик вообще (какое там открыть, не говоря уже о исполнить)  - ан, нет, внезапно, он становится твоим кодом. Прекрасный язык, чо.


Ответить | Правка | Наверх | Cообщить модератору

3. "Уязвимость в движке для создания форумов phpBB"  +7 +/
Сообщение от Аноним (3), 21-Ноя-18, 10:31 
> file_exists(), которая в случае указания URI "phar://" обработает метаданные в указанном файле

Тогда функция должна называться file_exists_and_maybe_handle_metadata_of_phar().

Ответить | Правка | Наверх | Cообщить модератору

7. "Уязвимость в движке для создания форумов phpBB"  +4 +/
Сообщение от нах (?), 21-Ноя-18, 11:24 
> Тогда функция должна называться file_exists_and_maybe_handle_metadata_of_phar().

file_exists_or_may_be_we_just_exec_it_as_code()


Ответить | Правка | Наверх | Cообщить модератору

25. "Уязвимость в движке для создания форумов phpBB"  +1 +/
Сообщение от kai3341 (ok), 22-Ноя-18, 05:06 
php_real_escape_file же

https://dev.mysql.com/doc/refman/8.0/en/mysql-real-escape-st...

Ответить | Правка | Наверх | Cообщить модератору

9. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от Аноним (9), 21-Ноя-18, 12:01 
Напоминает Glib с очень длинными функциями. Но там это более-менее оправдано: принести ООП в С довольно сложно.
Но это де похапэ "для всех"!
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

14. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от vitalif (ok), 21-Ноя-18, 12:51 
Метаданные просто надо json хранить блин... догадались, serialize
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

4. "Уязвимость в движке для создания форумов phpBB"  –1 +/
Сообщение от анан (?), 21-Ноя-18, 10:38 
> вызвана отсутствием проверки поступающих от пользователя данных

диагноз php головного мозга

Ответить | Правка | Наверх | Cообщить модератору

5. "Уязвимость в движке для создания форумов phpBB"  +4 +/
Сообщение от Аноним (3), 21-Ноя-18, 10:42 
Авторы пыха добавили свой новый нескучный протокол phar://, а виноваты конечные разрабы, которые не предусмотрели в своих проектах, существовавших до нескучного phar://, что пользователь может указать phar://. Логично, чо.
Ответить | Правка | Наверх | Cообщить модератору

6. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от нах (?), 21-Ноя-18, 11:23 
> которые не предусмотрели в своих проектах, существовавших до нескучного phar://, что
> пользователь может указать phar://. Логично, чо.

там круче - они может и предусмотрели (грамотные авторы проверяют попадание в _допустимый_ шаблон, а не все недопустимые комбинации по одной перебирают, и "файл" с :// в имени должен быть отброшен сразу же, не разбираясь в деталях) но кунфу авторов пехепе оказалось круче, и они научились исполнять как код данные даже в таком случае, который просто нереально, казалось бы, интерпретировать таким образом - файл даже не должен был открываться на чтение.

в общем, если пхп-ненавистникам хотелось аргументов именно против языка как такового - то вот один.

Ответить | Правка | Наверх | Cообщить модератору

11. "Уязвимость в движке для создания форумов phpBB"  +2 +/
Сообщение от КО (?), 21-Ноя-18, 12:07 
если быть точным, то неверно составлена фраза комментатором.
Ошибка именно в проверке поступающих до пользователя данных - они пытались выяснить а есть ли такой файл. И на тебе ...
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

10. "Уязвимость в движке для создания форумов phpBB"  –2 +/
Сообщение от Аноним (10), 21-Ноя-18, 12:06 
> будет обработан функцией file_exists(), которая в случае указания URI "phar://" обработает метаданные в указанном файле

Это настолько элегантный способ опустить всех пыхеров, что я просто ощущаю небывалое эстетическое наслаждение.

Ответить | Правка | Наверх | Cообщить модератору

22. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от Hgtuugt (?), 21-Ноя-18, 17:57 
Не забудьте обсудить это с психологом.
Ответить | Правка | Наверх | Cообщить модератору

12. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от vitalif (ok), 21-Ноя-18, 12:20 
Блин, вот serialize в phar это реально идиотизм...
Ответить | Правка | Наверх | Cообщить модератору

15. "Уязвимость в движке для создания форумов phpBB"  –5 +/
Сообщение от th3m3 (ok), 21-Ноя-18, 13:04 
phpBB - наверное, один из самых дырявых php-поделий в мире. Ещё больше 10 лет назад, помню - столько дырок было. И вот спустя столько времени, ничего не меняется.
Ответить | Правка | Наверх | Cообщить модератору

16. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от Попугай Кеша (?), 21-Ноя-18, 13:16 
Порекомендуйте что-то хорошее, пожалуйста
Ответить | Правка | Наверх | Cообщить модератору

19. "Уязвимость в движке для создания форумов phpBB"  +1 +/
Сообщение от th3m3 (ok), 21-Ноя-18, 14:55 
> Порекомендуйте что-то хорошее, пожалуйста

Если на php - то самый безопасный, всегда был и остаётся SMF.

Ответить | Правка | Наверх | Cообщить модератору

26. "Уязвимость в движке для создания форумов phpBB"  –1 +/
Сообщение от КГБ СССР (?), 22-Ноя-18, 12:42 
Чтоб обойти стороной PHP, я бы попробовал YaBB [ https://ru.wikipedia.org/wiki/YaBB ].
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

28. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от пох (?), 22-Ноя-18, 20:12 
http://www.yabbforum.com/cgi-bin/community/YaBB.pl?board=rus...
- все что нужно знать об этом ненужно.

то есть оно a) тупило с минуту, прежде чем открыться b) потребовало вручную переключить кодировку в 1251. (это, если что, нормальный выбор кодировки - ненормально неумение авторов настроить собственный сервер так, чтобы русскоязычный кусок форума показывался правильно)

если хочется совсем без php - ищите в архивах пиратских сайтов 200х годов wwwthreads до-phpшной версии. Баг с sql code exec только не забудьте вручную исправить, а то его, по-моему, только в php поправили.

но там не будет модных пищалок,перделок, логина всосапом и прочих полезных и нужных функций, только форум, предназначенный именно для общения,а не для размещения ссылок на торренты или еще чего в этом роде.


Ответить | Правка | Наверх | Cообщить модератору

30. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от КГБ СССР (?), 22-Ноя-18, 22:32 
Это говорит лишь о том, что рукожопы, пишущие туда по-русски, не умеют выбирать браузеры, которые правильно определяют кодировки. (Привычка, знаете ли, ляп-ляп-ляп — и в продакшын.) Эта страничка сделана в ISO-8859-1. Да, внезапно, кто ж такого мог ждать от американцев. :)

Но внутри движка (я посмотрел) шаблоны сделаны для белых прогрессивных людей, везде обещают нам UTF-8. И даже HTML5.

Ответить | Правка | Наверх | Cообщить модератору

31. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от КГБ СССР (?), 22-Ноя-18, 22:42 
Там ньюфагов подстерегает другая печаль: внутри лапша из перлового кода и разметки. Всё как в старые добрые времена. В таком вот стиле:


$yymain .= qq~

# А между тильдами разметка HTML с вкраплениями перловых же переменных.

~

Не, ну можно разобраться и даже поправить, если вдруг что.

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

18. "Уязвимость в движке для создания форумов phpBB"  +4 +/
Сообщение от VEGemail (ok), 21-Ноя-18, 14:09 
Память вас подводит. В phpBB 3.0, который с 2007 года был актуален более 5 лет, действительно критичных уязвимостей найдено не было. А с правами администратора всегда можно было дел наделать.

Возмоно, вы вспоминаете времена phpBB 2.x, в котором действительно была найдена парочка опасных уязвимостей. Но при работе над 3.0 над этим неплохо поработали.

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

17. "Уязвимость в движке для создания форумов phpBB"  +3 +/
Сообщение от VEGemail (ok), 21-Ноя-18, 14:01 
Слабенькая уязвимость. Как правило, если пользователь имеет доступ к форуму как администратор («founder» в терминах phpBB), то он будет и администратором сайта вообще, с доступом к серверу.
Ответить | Правка | Наверх | Cообщить модератору

21. "Уязвимость в движке для создания форумов phpBB"  –1 +/
Сообщение от Аноним (21), 21-Ноя-18, 17:57 
Лучший двиг интернета из всех.
Ответить | Правка | Наверх | Cообщить модератору

23. "Уязвимость в движке для создания форумов phpBB"  +/
Сообщение от Онаним (?), 22-Ноя-18, 00:32 
Не совсем понял, в чём тут уязвимость. Для эксплуатации нужен доступ с правами администратора форума, а с таковыми можно и загрузку вообще чего попало разрешить.
Ответить | Правка | Наверх | Cообщить модератору

24. "Уязвимость в движке для создания форумов phpBB"  +4 +/
Сообщение от Anonimous (?), 22-Ноя-18, 00:48 
Я надеюсь, что в свежем ПХП функция preg-match, проверяющая строку, содержащую "system('/bin/sh rm -Rf /*')" на наличие в ней двоеточия или двух слешей подряд, поймет, что ему надо эту строку выполнить как php код сразу, не дожидаясь чтобы дальше разработчики её пихнули в file_exists ? а то вждруг они не для того проверяли, и не пихнут её чами в, казалось бы безобидную функцию. Ну чтобы точно...

Это насколько надо быть больным на голову, чтобы функция file_exist выполнила тот файл? Это уже не просто глупость. Это уже к врачам надо.

Ответить | Правка | Наверх | Cообщить модератору

27. "Уязвимость в движке для создания форумов phpBB"  –1 +/
Сообщение от domov0y (?), 22-Ноя-18, 15:36 
кто в теме, покажите как создать этот самый phar файл. и что ему надо дописать чтобы содержимое выполнилось именно в аргументе file_exists.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру