![]() |
Всем привет.
Как-то скучным зимним вечером мне захотелось получить своих персональных CVE. Для этого я стал выбирать CMS, которые хочу потестить и мой выбор пал на CMS Zenario. Почему на эту CMS? Она мало известна, написана на PHP, при этом она постоянно патчится, то есть актуальна. Забегая вперёд - разрабы этой CMS оперативно реагируют на репорты и открыты к общению. https://forum.antichat.xyz/attachmen...bbfaf23fde.png Эта CMS мало известна в РФ, но в настоящее время поддерживается и у кого-то пользуется спросом. Поиск уязвимостей. И так, первым делом я разверну эту CMS на своем сервере. Для эксперимента я выбрал ОС Ubuntu 22.04 TLS. Уязвимая версия Zenario — 9.5.60240. Процесс развертывания описывать не буду, можете найти его сами на официальном сайте. Установка CMS происходила в точности, как указано в руководстве. После установки не забудьте добавить свой сайт в /etc/hosts. Сразу после установки в браузере доступен сайт и админка: https://forum.antichat.xyz/attachmen...c975d76a10.png Админка: https://forum.antichat.xyz/attachmen...485acf2c43.png Давайте походим по админке и поищем типичные уязвимости. Мы быстро найдём XSS: https://forum.antichat.xyz/attachmen...6f568f2dc7.png XSS-ок там было несколько, в том числе stored, но нас, как потенциального злоумышленника без доступа к админке, сейчас интересуют reflected XSS. В дальнейшем эту ссылку с XSS мы подсунем админу и будем от его имени делать всякое нехорошее. Что именно нехорошее? Надо искать. Ищем уязвимости, которые приведут к выполнению кода на стороне сервера. В документации к CMS указано, что тут используется шаблонизатор Twig. Кроме того, изучив функционал админки, можно найти такую форму: https://forum.antichat.xyz/attachmen...454ab597fb.png Там внизу справа есть чек-бокс, которым можно включить Twig. Пробуем пэйлоад: https://forum.antichat.xyz/attachmen...c2d9d00253.png Переходим на сайт и видим, что пэйлоад отработал: https://forum.antichat.xyz/attachmen...17a8b59ddf.png Итого, у нас есть XSS + SSTI. Объединим эти уязвимости и напишем эксплойт. Эксплуатация. С помощью XSS украсть куки админа не получится, так как для кук установлен флаг HttpOnly: https://forum.antichat.xyz/attachmen...facdce8426.png Но это не такая уж проблема. Мы можем с помощью XSS, например, подменить страницу логина в админку и стащить таким образом пароль. Кроме того можем тащить любую инфу из админки и отправлять ее на свой сервер. После того, как админ введет логин и пароль, выполним SSTI и получим реверс-шелл. Эксплойт будет состоять из двух частей. Первая — это javascript-файл, который будет делать всю грязную работу. Вторая — это веб-сервер, с которого будет подтягиваться вредоносный javascript. Начнем с веб-сервера. Он будет на python с использованием фрэймворка Flask. Python: Код:
fromPython: Код:
# Маршрут, по которму жертва получит файл с XSSЗапускаем сервер на порту 80: Python: Код:
appПеред нами стоит задача — сделать такой запрос от имени админа, который добавит наш пэйлоад в нужную форму, сохранит эти данные и затем стриггерит выполнение пэйлоада. Но сначала создадим нужную ссылку, не будем же мы ему отправлять алерт. Ссылка будет выглядеть так: Код:
http://zenariosite.com/zenario/admin/tree_explorer/index.php?type=section&id=https://forum.antichat.xyz/attachmen...6fafc14671.png Внутри тела запроса можно найти пэйлоад, который нами контролируется. Попробуем его отправить с помощью javascript. Сначала определим пэйлоад: JavaScript: Код:
varJavaScript: Код:
functionПервый запрос — добавление полезной нагрузки в форму. Второй запрос — сохранение (подтверждение) данных в форме. Третий запрос — активация нашей полезной нагрузки. Если просто переотправить запрос из Burp, то нагрузка не сработает. Ответ придет такой: https://forum.antichat.xyz/attachmen...ff409f0d55.png Обратите внимание на отправку заголовка Referer. Тут еще было несколько проблем, которые нужно было решить в целях успешной эксплуатации, но я их не раскрываю в статье намеренно. Теперь попробуем всё вместе. Я у себя реализовал и кражу пароля, определение версии, сбор данных из админки. После запуска сервера отправляем ссылку админу и надеемся, что он по ней перейдёт. Если перешёл, то: https://forum.antichat.xyz/attachmen...f49b40cc4a.png Данные уязвимости были исправлены, вендор оказался отзывчивым. Уязвимостям были присвоены CVE: CVE - CVE-2024-34460 CVE - CVE-2024-34461 Всем салют! ) |
Решительно одобряю!
|
| Время: 02:24 |