← retour aux outils back to tools

# joomscan

Scanner de vulnérabilités pour le CMS Joomla. Détecte la version de Joomla, énumère les composants/plugins/templates installés, vérifie les CVE connues et identifie les mauvaises configurations courantes. Joomla CMS vulnerability scanner. Detects Joomla version, enumerates installed components/plugins/templates, checks for known CVEs, and identifies common misconfigurations.

↗ https://github.com/OWASP/joomscan

## Overview

JoomScan (OWASP JoomScan) is the dedicated vulnerability scanner for Joomla CMS. It fingerprints the Joomla version, enumerates installed extensions, checks for hundreds of known CVEs and vulnerabilities, identifies configuration issues, and probes for common misconfigurations.

## Basic Usage

Basic scan

    joomscan -u http://target.com

Scan with verbose output

    joomscan -u http://target.com -v

Enumerate components

    joomscan -u http://target.com --enumerate-components

All checks

    joomscan -u http://target.com -ec

## Scanning Options

Use a proxy

    joomscan -u http://target.com --proxy http://127.0.0.1:8080

Set cookie for authenticated scan

    joomscan -u http://target.com --cookie "PHPSESSID=abc123"

Random user agent

    joomscan -u http://target.com --random-agent

Full scan with all components

    joomscan -u http://target.com -ec --random-agent

## What JoomScan Detects

Version detection

    joomscan -u http://target.com

→ → Joomla Version: 3.9.x → CVE-2019-XXXX: Remote Code Execution

    # Configuration exposure
    # → /configuration.php — check for world-readable
    # → /README.txt — version disclosure
    # → /administrator/ — admin panel exposed

Extension enumeration

    joomscan -u http://target.com --enumerate-components

→ → com_users (version, vulnerabilities) → com_content → com_banners

## Admin Panel and Login

    # Admin login is usually at /administrator/
    # Check for default credentials:
    # admin:admin, admin:password, admin:joomla

After finding login page, brute force:

    hydra -l admin -P /usr/share/wordlists/rockyou.txt \
      target.com http-post-form \
      "/administrator/index.php:username=^USER^&passwd=^PASS^&option=com_login&task=login:Login failed"

## Output

Save output to file

    joomscan -u http://target.com 2>&1 | tee joomscan-results.txt

Check for high-value findings:

    grep -i "CVE\|RCE\|SQL\|LFI\|Upload" joomscan-results.txt

## Tips

- Run version detection first — knowing the Joomla version narrows down CVEs significantly
- Check /administrator/manifests/files/joomla.xml for exact version
- Vulnerable extensions (components) are often the attack vector — enumerate them all
- Joomla 3.x has many known CVEs; 4.x is more secure but still has issues
- After compromise, look for Joomla’s configuration.php — contains DB credentials

Help / Man page

    joomscan [options]

    -u URL              Target URL
    -ec                 Enumerate components
    --enumerate-components  Same as -ec
    --proxy PROXY       HTTP proxy (host:port)
    --cookie COOKIE     HTTP cookie string
    --random-agent      Use random User-Agent
    -v                  Verbose
    --version           Show tool version

## Vue d’ensemble

JoomScan (OWASP JoomScan) est le scanner de vulnérabilités dédié au CMS Joomla. Il identifie la version de Joomla, énumère les extensions installées, vérifie des centaines de CVE et vulnérabilités connues, identifie les problèmes de configuration et sonde les mauvaises configurations courantes.

## Utilisation de base

    # Scan basique
    joomscan -u http://target.com

    # Scan avec sortie verbeuse
    joomscan -u http://target.com -v

    # Énumérer les composants
    joomscan -u http://target.com --enumerate-components

    # Toutes les vérifications
    joomscan -u http://target.com -ec

## Options de scan

    # Utiliser un proxy
    joomscan -u http://target.com --proxy http://127.0.0.1:8080

    # Définir un cookie pour un scan authentifié
    joomscan -u http://target.com --cookie "PHPSESSID=abc123"

    # User-agent aléatoire
    joomscan -u http://target.com --random-agent

    # Scan complet avec tous les composants
    joomscan -u http://target.com -ec --random-agent

## Ce que détecte JoomScan

    # Détection de version
    joomscan -u http://target.com
    # → Joomla Version: 3.9.x → CVE-2019-XXXX: Remote Code Execution

    # Exposition de la configuration
    # → /configuration.php : vérifier si lisible par tous
    # → /README.txt : divulgation de version
    # → /administrator/ : panneau d'administration exposé

    # Énumération des extensions
    joomscan -u http://target.com --enumerate-components
    # → com_users (version, vulnérabilités) → com_content → com_banners

## Panneau admin et connexion

    # La connexion admin se trouve généralement sur /administrator/
    # Vérifier les identifiants par défaut :
    # admin:admin, admin:password, admin:joomla

    # Après avoir trouvé la page de login, bruteforce :
    hydra -l admin -P /usr/share/wordlists/rockyou.txt \
      target.com http-post-form \
      "/administrator/index.php:username=^USER^&passwd=^PASS^&option=com_login&task=login:Login failed"

## Sortie

    # Sauvegarder la sortie dans un fichier
    joomscan -u http://target.com 2>&1 | tee joomscan-results.txt

    # Vérifier les résultats à forte valeur
    grep -i "CVE\|RCE\|SQL\|LFI\|Upload" joomscan-results.txt

## Conseils

- Lancer d’abord la détection de version : connaître la version de Joomla réduit considérablement le champ des CVE
- Vérifier /administrator/manifests/files/joomla.xml pour la version exacte
- Les extensions vulnérables (composants) sont souvent le vecteur d’attaque : les énumérer toutes
- Joomla 3.x compte de nombreuses CVE connues ; la 4.x est plus sécurisée mais présente encore des problèmes
- Après compromission, chercher le configuration.php de Joomla : il contient les identifiants de la base de données

Aide / Page de manuel

    joomscan [options]

    -u URL              Target URL
    -ec                 Enumerate components
    --enumerate-components  Same as -ec
    --proxy PROXY       HTTP proxy (host:port)
    --cookie COOKIE     HTTP cookie string
    --random-agent      Use random User-Agent
    -v                  Verbose
    --version           Show tool version