← retour aux outils back to tools

# WIG (WebApp Information Gatherer)

Détermine la plateforme CMS d'un site, sa version, et ses composants installés en comparant les fichiers statiques à une base de signatures. Fingerprints a website's CMS platform, version, and installed components by matching static files against a signature database.

↗ https://github.com/jekyc/wig

## Overview

WIG fingerprints web applications passively — it requests a set of known static files (JS, CSS, README/CHANGELOG files, favicons, etc.) and compares checksums/patterns against a large signature database to identify the CMS in use (WordPress, Drupal, Joomla, and many more), platform version, and often specific plugins or themes. It’s a useful early-recon step before targeting CMS-specific vulnerabilities.

## Common Usage

Basic scan against a target

    wig http://target.com

Increase verbosity to see individual signature matches

    wig -v http://target.com

Limit request rate to avoid tripping WAF/rate-limiting

    wig -n 5 http://target.com

Output results as JSON for pipeline integration

    wig -q http://target.com -o results.json

## Recon Workflow

1. Quick fingerprint of the target CMS and version

    wig http://target.com

2. Cross-reference the identified version against known CVEs

    searchsploit wordpress 5.8

3. Follow up with CMS-specific enumeration (wpscan for WordPress, droopescan for Drupal, etc.)

    wpscan --url http://target.com --enumerate vp

## Tips

- WIG is entirely passive/GET-based — safe for stealth-sensitive engagements where active scanners like WPScan’s brute-force modules would be too noisy.
- Signature database needs periodic updates to recognize newer CMS versions/plugins.
- Works across many CMS platforms, not just WordPress — useful as a first pass before committing to a CMS-specific deep-dive tool.

Help / Man page

    usage: wig.py [-h] [-a] [-d] [-n REQUESTS] [-p PROXY] [-q] [-t THREADS]
                   [-v] [-w WORDLIST] [-o OUTPUT] url

    positional arguments:
      url                   URL to scan

    optional arguments:
      -a                    Return all guesses, even low confidence
      -d                    Enable directory listing checks
      -n REQUESTS           Max number of requests to send
      -p PROXY              Proxy to use (e.g. 127.0.0.1:8080)
      -q                    Quiet — only output results
      -t THREADS            Number of concurrent threads
      -v                    Verbose output
      -w WORDLIST           Wordlist for additional path checks
      -o OUTPUT             Write results to file (json)

## Vue d’ensemble

WIG fait l’empreinte des applications web de manière passive : il requête un ensemble de fichiers statiques connus (JS, CSS, fichiers README/CHANGELOG, favicons, etc.) et compare les checksums/motifs à une large base de signatures pour identifier le CMS utilisé (WordPress, Drupal, Joomla, et bien d’autres), la version de la plateforme, et souvent des plugins ou thèmes spécifiques. C’est une étape de reconnaissance précoce utile avant de cibler des vulnérabilités spécifiques au CMS.

## Utilisation courante

    # Scan basique sur une cible
    wig http://target.com

    # Augmenter la verbosité pour voir les correspondances de signatures individuelles
    wig -v http://target.com

    # Limiter le débit de requêtes pour éviter de déclencher un WAF/rate-limiting
    wig -n 5 http://target.com

    # Sortir les résultats en JSON pour l'intégration dans un pipeline
    wig -q http://target.com -o results.json

## Flux de reconnaissance

    # 1. Empreinte rapide du CMS cible et de sa version
    wig http://target.com

    # 2. Croiser la version identifiée avec les CVE connues
    searchsploit wordpress 5.8

    # 3. Poursuivre avec une énumération spécifique au CMS
    #    (wpscan pour WordPress, droopescan pour Drupal, etc.)
    wpscan --url http://target.com --enumerate vp

## Conseils

- WIG est entièrement passif/basé sur GET : sûr pour les missions sensibles à la discrétion, là où des scanners actifs comme les modules de brute-force de WPScan seraient trop bruyants.
- La base de signatures a besoin de mises à jour régulières pour reconnaître les versions/plugins de CMS plus récents.
- Fonctionne sur de nombreuses plateformes CMS, pas seulement WordPress : utile comme premier passage avant de s’engager dans un outil d’analyse approfondie spécifique à un CMS.

Aide / Page de manuel

    usage: wig.py [-h] [-a] [-d] [-n REQUESTS] [-p PROXY] [-q] [-t THREADS]
                   [-v] [-w WORDLIST] [-o OUTPUT] url

    positional arguments:
      url                   URL to scan

    optional arguments:
      -a                    Return all guesses, even low confidence
      -d                    Enable directory listing checks
      -n REQUESTS           Max number of requests to send
      -p PROXY              Proxy to use (e.g. 127.0.0.1:8080)
      -q                    Quiet — only output results
      -t THREADS            Number of concurrent threads
      -v                    Verbose output
      -w WORDLIST           Wordlist for additional path checks
      -o OUTPUT             Write results to file (json)