Joomla Enumeration
Joomla enumeration identifies the installed version, active components, plugins, templates, and user accounts. Version is the critical signal — Joomla has a history of high-severity unauthenticated RCE and SQL injection vulnerabilities tied to specific releases and components. Run this after tech fingerprinting confirms Joomla.
Confirm Joomla and Version
The XML manifest and admin generator tag disclose the version before running any tooling:
<version>3.9.26</version>
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allows insecure SSL connections by skipping certificate verification. |
| http://$TARGET_IP:$PORT/administrator/manifests/files/joomla.xml | Target URL with variable host and port pointing to Joomla manifest file. |
| -i | Makes the grep pattern match case-insensitive. |
| version | Search pattern to filter lines containing version information. |
<meta name="generator" content="Joomla! - Open Source Content Management" />
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allow insecure SSL connections, skipping certificate verification. |
| http://$TARGET_IP:$PORT/ | Target URL using variable placeholders for IP and port. |
| -i | Makes the grep pattern match case-insensitive. |
| 'joomla\|generator' | Grep pattern matching lines containing 'joomla' or 'generator'. |
<version>3.9.26</version>
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allows insecure SSL/TLS connections, skipping certificate verification. |
| http://$TARGET_IP:$PORT/language/en-GB/en-GB.xml | Target URL with variable host and port pointing to a language XML file. |
| -i | Makes the grep pattern match case-insensitive. |
| version | Search pattern to filter lines containing 'version' from the XML output. |
joomscan
joomscan is the primary automated tool for Joomla enumeration. It identifies version, vulnerable components, configuration issues, and backup files:
[+] Detecting Joomla Version [++] Joomla 3.9.26 [+] Core Joomla Vulnerability [++] Target Joomla core is not vulnerable [+] Checking Directory Listing [++] directory has directory listing : http://10.10.10.50/administrator/components
Explain command
| -u | Specifies the target URL to scan. |
| http://$TARGET_IP:$PORT/ | Target Joomla base URL with dynamic IP and port placeholders. |
Explain command
| -u | Specifies the target URL to scan. |
| http://$TARGET_IP:$PORT/ | Target host IP and port placeholder forming the base URL. |
| --enumerate-components | Enumerates installed Joomla components on the target. |
Admin Panel and Configuration Checks
Check whether the admin panel is accessible and whether configuration files are exposed:
200
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allow insecure TLS connections, skipping certificate verification. |
| -o /dev/null | Discard response body by redirecting output to /dev/null. |
| -w '%{http_code}' | Print only the HTTP response status code after the request. |
| http://$TARGET_IP:$PORT/administrator/ | Target URL built from variable host, port, and path to probe. |
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allow insecure TLS connections; skip certificate verification. |
| http://$TARGET_IP:$PORT/configuration.php.bak | Target URL with IP, port, and backup file path placeholder. |
| http://$TARGET_IP:$PORT/configuration.php~ | Target URL pointing to a tilde-suffixed editor backup file. |
| http://$TARGET_IP:$PORT/configuration.php.old | Target URL pointing to a .old suffixed leftover config file. |
User Enumeration
Joomla exposes user data through the API and registration error messages:
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allows insecure SSL connections by skipping certificate verification. |
| http://$TARGET_IP:$PORT/api/index.php/v1/users | Target URL with variable host and port pointing to Joomla users API endpoint. |
| -m json.tool | Runs Python's built-in json.tool module to pretty-print JSON output. |
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Allows insecure SSL connections by skipping certificate verification. |
| -X POST | Specifies HTTP POST as the request method. |
| http://$TARGET_IP:$PORT/index.php | Target URL with variable host IP and port placeholders. |
| -d 'option=com_users&task=user.login&username=admin&password=wrongpassword' | Sends URL-encoded POST body with Joomla login credentials. |
| -i 'invalid\|error\|username' | Case-insensitive grep filter for keywords: invalid, error, or username. |
Component and Plugin Enumeration
Joomla components often have their own vulnerabilities separate from core. Enumerate installed components by probing common paths:
Explain command
| -w /usr/share/seclists/Discovery/Web-Content/CMS/joomla-components.txt | Wordlist file path used for fuzzing input. |
| -u http://$TARGET_IP:$PORT/index.php?option=FUZZ | Target URL with FUZZ keyword marking the injection point. |
| $TARGET_IP:$PORT | Variable placeholders for the target host IP and port. |
| -mc 200,301,302 | Match only responses with HTTP status codes 200, 301, or 302. |
| -fw 100 | Filter out responses containing exactly 100 words in the body. |
Explain command
| -s | Silent mode; suppresses progress meter and error messages. |
| -k | Skips SSL/TLS certificate verification. |
| http://$TARGET_IP:$PORT/administrator/components/ | Target URL with variable host and port placeholders. |
| -i | Case-insensitive pattern matching in grep. |
| -o | Prints only the matched part of the line. |
| -P | Enables Perl-compatible regular expressions (PCRE). |
| (?<=href=")[^"]+' | PCRE lookbehind to extract URL values from href attributes. |
| -u | Outputs only unique sorted lines, removing duplicates. |
Cross-reference identified components and their versions against the Joomla Vulnerable Extension List. Third-party components are far more frequently vulnerable than Joomla core and are the most common path to exploitation.
References
-
joomscan — OWASPgithub.com/OWASP/joomscan (opens in new tab)
Joomla vulnerability scanner and enumeration tool
-
Joomla Vulnerable Extensions Listvel.joomla.org (opens in new tab)
Official list of known vulnerable Joomla extensions
Was this helpful?
Your feedback helps improve this page.