Unauthenticated
Version fingerprinting via manifest/meta files, user enumeration, and checking installed extensions against known CVEs.
Authenticated
With admin access to Templates, editing a template file for direct PHP execution.
Fingerprinting the Version
Joomla’s version shows up in several places depending on what’s been cleaned up post-install, worth checking all of them since any one can be missing.JoomScan
JoomScan (OWASP) is the Joomla-specific equivalent of WPScan, covering version fingerprinting, user enumeration, and known vulnerabilities in one pass.Droopescan
Droopescan also covers Joomla despite its Drupal-leaning name, worth running alongside JoomScan since the two sometimes catch different things.JoomlaScan
An older, standalone scanner, still useful as a second opinion, it needs Python 2 and BeautifulSoup to run.Login Brute Forcing
A dedicated brute-force script against the admin login, swap in the real wordlist path for your environment.Getting a Webshell (Authenticated)
Once you have admin access, the Template Manager works exactly the same way WordPress’s theme editor does, edit a template file and execute PHP through it directly.1
Open the template editor
In the admin dashboard, go to Templates → Configuration, pick a template name, then open one of its files for editing.
2
Insert the payload
Add a one-line PHP backdoor to the file:Save it.
3
Trigger it directly
Request the edited file with your command in the query string. The default Protostar template’s error page is a common, rarely-noticed choice:
Quick Reference Tools
Hackviser: JoomScan
Reference used for this page.
HackTricks: Joomla
Deeper dive into version fingerprinting paths covered above.
JoomScan
OWASP’s Joomla-specific vulnerability scanner.
Droopescan
Multi-CMS scanner, also covers Joomla.
JoomlaScan
Older standalone scanner, Python 2 only.
joomla-bruteforce
Dedicated login brute-force script.

