
Scanner web de nouvelle génération
Développé par Andrew Horton urbanadventurer et Brendan Coles bcoles
Dernière version : v0.6.4. 3 avril 2026
Licence : GPLv2
Ce produit est soumis aux conditions détaillées dans le contrat de licence. Pour plus d'informations sur WhatWeb, visitez https://github.com/urbanadventurer/
Wiki : https://github.com/urbanadventurer/WhatWeb/wiki/
Si vous avez des questions, des commentaires ou des préoccupations concernant WhatWeb, veuillez consulter la documentation avant de contacter l'un des développeurs. Vos retours sont toujours les bienvenus.
WhatWeb identifie les sites web. Son objectif est de répondre à la question : « Quel est ce site web ? ». WhatWeb reconnaît les technologies web, notamment les systèmes de gestion de contenu (CMS), les plateformes de blogging, les packages de statistiques/analytiques, les bibliothèques JavaScript, les serveurs web et les appareils embarqués. WhatWeb dispose de plus de 1800 plugins, chacun pour reconnaître quelque chose de différent. WhatWeb identifie également les numéros de version, les adresses e-mail, les ID de compte, les modules de framework web, les erreurs SQL, et plus encore.
WhatWeb peut être furtif et rapide, ou minutieux mais lent. WhatWeb prend en charge un niveau d'agressivité pour contrôler le compromis entre vitesse et fiabilité. Lorsque vous visitez un site web dans votre navigateur, la transaction comprend de nombreux indices sur les technologies web qui alimentent ce site. Parfois, une seule visite de page contient suffisamment d'informations pour identifier un site web, mais lorsque ce n'est pas le cas, WhatWeb peut interroger le site plus en détail. Le niveau d'agressivité par défaut, appelé « furtif », est le plus rapide et ne nécessite qu'une seule requête HTTP d'un site web. Il convient à l'analyse des sites web publics. Des modes plus agressifs ont été développés pour une utilisation lors de tests d'intrusion.
La plupart des plugins WhatWeb sont exhaustifs et reconnaissent une gamme d'indices, du subtil à l'évident. Par exemple, la plupart des sites WordPress peuvent être identifiés par la balise HTML meta, par exemple '', mais une minorité de sites WordPress suppriment cette balise d'identification, mais cela ne décourage pas WhatWeb. Le plugin WordPress WhatWeb a plus de 15 tests, qui incluent la vérification du favicon, des fichiers d'installation par défaut, des pages de connexion, et la vérification de la présence de « /wp-content/ » dans les liens relatifs.
Utilisation de WhatWeb pour analyser reddit.com.``` $ ./whatweb reddit.com http://reddit.com [301 Moved Permanently] Country[UNITED STATES][US], HTTPServer[snooserv], IP[151.101.65.140], RedirectLocation[https://www.reddit.com/], UncommonHeaders[retry-after,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish] https://www.reddit.com/ [200 OK] Cookies[edgebucket,eu_cookie_v2,loid,rabt,rseor3,session_tracker,token], Country[UNITED STATES][US], Email[[email protected],[email protected]], Frame, HTML5, HTTPServer[snooserv], HttpOnly[token], IP[151.101.37.140], Open-Graph-Protocol[website], Script[text/javascript], Strict-Transport-Security[max-age=15552000; includeSubDomains; preload], Title[reddit: the front page of the internet], UncommonHeaders[fastly-restarts,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish], X-Frame-Options[SAMEORIGIN]
## Utilisation```
.$$$ $. .$$$ $.
$$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$.
$ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$.
$ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$ `$$ $ `$ $$$ $ `$ $ `$ $$$'
$. $ $$$ $. $$$$$$ $. $$$$$$ `$ $. $ :' $. $ $$$ $. $$$$ $. $$$$$.
$::$ . $$$ $::$ $$$ $::$ $$$ $::$ $::$ . $$$ $::$ $::$ $$$$
$;;$ $$$ $$$ $;;$ $$$ $;;$ $$$ $;;$ $;;$ $$$ $$$ $;;$ $;;$ $$$$
$$$$$$ $$$$$ $$$$ $$$ $$$$ $$$ $$$$ $$$$$$ $$$$$ $$$$$$$$$ $$$$$$$$$'
WhatWeb - Next generation web scanner version 0.6.4.
Developed by Andrew Horton (urbanadventurer) and Brendan Coles (bcoles)
Homepage: https://morningstarsecurity.com/research/whatweb
Usage: whatweb [options] <URLs>
TARGET SELECTION:
<TARGETs> Enter URLs, hostnames, IP addresses, filenames or
IP ranges in CIDR, x.x.x-x, or x.x.x.x-x.x.x.x
format.
--input-file=FILE, -i Read targets from a file. You can pipe
hostnames or URLs directly with -i /dev/stdin.
TARGET MODIFICATION:
--url-prefix Add a prefix to target URLs.
--url-suffix Add a suffix to target URLs.
--url-pattern Insert the targets into a URL. Requires --input-file,
eg. www.example.com/%insert%/robots.txt
AGGRESSION:
The aggression level controls the trade-off between speed/stealth and
reliability.
--aggression, -a=LEVEL Set the aggression level. Default: 1.
Aggression levels are:
1. Stealthy Makes one HTTP request per target. Also follows redirects.
3. Aggressive If a level 1 plugin is matched, additional requests will be
made.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
HTTP OPTIONS:
--user-agent, -U=AGENT Identify as AGENT instead of WhatWeb/0.6.3.
--header, -H Add an HTTP header. eg "Foo:Bar". Specifying a default
header will replace it. Specifying an empty value, eg.
"User-Agent:" will remove the header.
--follow-redirect=WHEN Control when to follow redirects. WHEN may be `never',
`http-only', `meta-only', `same-site', or `always'.
Default: always.
--max-redirects=NUM Maximum number of contiguous redirects. Default: 10.
AUTHENTICATION:
--user, -u=<user:password> HTTP basic authentication.
--cookie, -c=COOKIES Provide cookies, e.g. 'name=value; name2=value2'.
--cookiejar=FILE Read cookies from a file.
--no-cookies Disable automatic cookie handling (improves performance
with high thread counts).
### Cookie Handling
WhatWeb automatically handles cookies across redirects by default. This improves fingerprinting accuracy on sites requiring session management.
- `--cookie, -c=COOKIES` - Set initial cookies manually
- `--cookie-jar=FILE` - Load cookies from file
- `--no-cookies` - Disable automatic cookie handling
**Performance Note:** With high thread counts (>100), cookie handling may impact performance. Use `--no-cookies` for maximum speed on large scans.
PROXY:
--proxy <hostname[:port]> Set proxy hostname and port.
Default: 8080.
--proxy-user <username:password> Set proxy user and password.
PLUGINS:
--list-plugins, -l List all plugins.
--info-plugins, -I=[SEARCH] List all plugins with detailed information.
Optionally search with keywords in a comma
delimited list.
--search-plugins=STRING Search plugins for a keyword.
--plugins, -p=LIST Select plugins. LIST is a comma delimited set of
selected plugins. Default is all.
Each element can be a directory, file or plugin name and
can optionally have a modifier, eg. + or -
Examples: +/tmp/moo.rb,+/tmp/foo.rb
title,md5,+./plugins-disabled/
./plugins-disabled,-md5
-p + is a shortcut for -p +plugins-disabled.
--grep, -g=STRING|REGEXP Search for STRING or a Regular Expression. Shows
only the results that match.
Examples: --grep "hello"
--grep "/he[l]*o/"
--custom-plugin=DEFINITION Define a custom plugin named Custom-Plugin,
Examples: ":text=>'powered by abc'"
":version=>/powered[ ]?by ab[0-9]/"
":ghdb=>'intitle:abc \"powered by abc\"'"
":md5=>'8666257030b94d3bdb46e05945f60b42'"
--dorks=PLUGIN List Google dorks for the selected plugin.
OUTPUT:
--verbose, -v Verbose output includes plugin descriptions. Use twice
for debugging.
--colour,--color=WHEN control whether colour is used. WHEN may be `never',
`always', or `auto'.
--quiet, -q Do not display brief logging to STDOUT.
--no-errors Suppress error messages.
LOGGING:
--log-brief=FILE Log brief, one-line output.
--log-verbose=FILE Log verbose output.
--log-errors=FILE Log errors.
--log-xml=FILE Log XML format.
--log-json=FILE Log JSON format.
--log-sql=FILE Log SQL INSERT statements.
--log-sql-create=FILE Create SQL database tables.
--log-json-verbose=FILE Log JSON Verbose format.
--log-magictree=FILE Log MagicTree XML format.
--log-object=FILE Log Ruby object inspection format.
--log-mongo-database Name of the MongoDB database.
--log-mongo-collection Name of the MongoDB collection. Default: whatweb.
--log-mongo-host MongoDB hostname or IP address. Default: 0.0.0.0.
--log-mongo-username MongoDB username. Default: nil.
--log-mongo-password MongoDB password. Default: nil.
--log-elastic-index Name of the index to store results. Default: whatweb
--log-elastic-host Host:port of the elastic http interface. Default: 127.0.0.1:9200
PERFORMANCE & STABILITY:
--max-threads, -t Number of simultaneous threads. Default: 25.
--open-timeout Time in seconds. Default: 15.
--read-timeout Time in seconds. Default: 30.
--wait=SECONDS Wait SECONDS between connections.
This is useful when using a single thread.
HELP & MISCELLANEOUS:
--short-help Short usage help.
--help, -h Complete usage help.
--debug Raise errors in plugins.
--version Display version information. (WhatWeb 0.6.4).
EXAMPLE USAGE:
* Scan example.com.
./whatweb example.com
* Scan reddit.com slashdot.org with verbose plugin descriptions.
./whatweb -v reddit.com slashdot.org
* An aggressive scan of wired.com detects the exact version of WordPress.
./whatweb -a 3 www.wired.com
* Scan the local network quickly and suppress errors.
whatweb --no-errors 192.168.0.0/24
* Scan the local network for https websites.
whatweb --no-errors --url-prefix https:// 192.168.0.0/24
* Scan for crossdomain policies in the Alexa Top 1000.
./whatweb -i plugin-development/alexa-top-100.txt \
--url-suffix /crossdomain.xml -p crossdomain_xml
Les types de journalisation suivants sont pris en charge :
Vous pouvez produire plusieurs journaux simultanément en spécifiant plusieurs options de journalisation en ligne de commande. Les utilisateurs avancés qui souhaitent une sortie SQL doivent lire le code source pour voir les fonctionnalités non prises en charge.
Les correspondances sont effectuées avec :
Pour lister les plugins pris en charge :
$ ./whatweb -l
Nom du plugin - Description
--------------------------------------------------------------------------------
1024-CMS - 1024 est l'un des rares CMS à ouvrir la voie avec l'implémentation...
360-Web-Manager - 360-Web-Manager
3COM-NBX - Système téléphonique 3COM NBX. L'utilitaire NBX NetSet est une interface web i...
3dcart - 3dcart - Le logiciel de panier d'achat 3dcart est une solution e-commerce complète s...
4D - Serveur de déploiement d'applications web 4D
4images - 4images est un puissant système de gestion de galerie d'images basé sur le web. Fonctionnalités...
... (tronqué)
Pour voir plus de détails sur un plugin ou rechercher des plugins par mot-clé :
$ ./whatweb -I phpBB
Liste détaillée des plugins WhatWeb
Recherche de phpBB
================================================================================
Plugin: phpBB
--------------------------------------------------------------------------------
Description: phpBB est un forum gratuit
Site web: http://phpbb.org/
Auteur: Andrew Horton
Version: 0.3
Fonctionnalités: [Oui] Correspondance de motifs (7)
[Oui] Détection de version par correspondance de motifs
[Oui] Fonction pour les correspondances passives
[Oui] Fonction pour les correspondances agressives
[Oui] Google Dorks (1)
Google Dorks:
[1] "Propulsé par phpBB"
================================================================================
Tous les plugins sont chargés par défaut.
Les plugins peuvent être sélectionnés par répertoires, fichiers ou noms de plugins sous forme de liste séparée par des virgules avec l'option de ligne de commande -p ou --plugin.
Chaque élément de la liste peut avoir un modificateur : + ajoute à l'ensemble complet, - retire de l'ensemble complet et aucun modificateur remplace les valeurs par défaut.
L'option de ligne de commande --dorks renvoie les google dorks pour le plugin sélectionné. Par exemple, --dorks wordpress renvoie « est fièrement propulsé par WordPress »
L'option de ligne de commande --grep, -g recherche la page cible pour la chaîne sélectionnée et renvoie une correspondance dans un plugin appelé Grep si elle est trouvée.
WhatWeb propose plusieurs niveaux d'agressivité. Par défaut, le niveau d'agressivité est réglé sur 1 (furtif) qui envoie une seule requête HTTP GET et suit également les redirections.
--aggression, -a
1. Furtif Effectue une requête HTTP par cible. Suit également les redirections.
2. Inutilisé
3. Agressif Peut effectuer une poignée de requêtes HTTP par cible. Cela déclenche
des plugins agressifs pour les cibles uniquement lorsque ces plugins sont
d'abord identifiés avec une requête de niveau 1.
4. Lourd Effectue beaucoup de requêtes HTTP par cible. Les tests agressifs de
tous les plugins sont utilisés pour toutes les URL.
Les plugins agressifs de niveau 3 devineront plus d'URL et effectueront des actions potentiellement inappropriées sans autorisation. WhatWeb ne prend actuellement en charge aucun test de niveau intrusion/exploit dans les plugins.
Un scan furtif de niveau 1 identifie que smartor.is-root.com/forum/ utilise phpBB version 2 :
$ ./whatweb smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] PasswordField[password], HTTPServer[Apache/2.2.15], PoweredBy[phpBB], Apache[2.2.15], IP[88.198.177.36], phpBB[2], PHP[5.2.13], X-Powered-By[PHP/5.2.13], Cookies[phpbb2mysql_data,phpbb2mysql_sid], Title[Smartors Mods Forums - Reloaded], Country[GERMANY][DE]
Un scan agressif de niveau 3 déclenche des tests supplémentaires dans le plugin phpBB qui identifie que le site Web utilise phpBB version 2.0.20 ou supérieure :
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]
Notez l'utilisation de l'argument -p pour sélectionner uniquement le plugin phpBB. Il est conseillé, mais pas obligatoire, de sélectionner un plugin spécifique lors de la tentative d'identification des versions de logiciels en mode agressif. Cette approche est beaucoup plus furtive car elle limite le nombre de requêtes.
WhatWeb n'a pas de cache, donc si vous utilisez des plugins agressifs sur des URL de redirection, vous pouvez récupérer les mêmes fichiers plusieurs fois.
WhatWeb propose plusieurs options pour augmenter les performances et la stabilité.
Les commandes --wait et --max-threads peuvent être utilisées pour aider à l'évasion IDS.
WhatWeb optimise automatiquement les performances de sortie pour la sortie écran et les fichiers journaux en fonction du nombre de threads :
Faibles nombres de threads (1-5):
Nombres de threads moyens (6-50):
Nombres de threads élevés (51+):
Vous pouvez remplacer ces valeurs par défaut pour la sortie écran et les fichiers journaux :```bash
./whatweb --output-sync -t 100 --log-brief=results.txt targets.txt
./whatweb --output-buffer-size=50 -t 100 --log-verbose=detailed.log targets.txt
./whatweb --output-buffer-size=0 -t 10 --log-json=results.json targets.txt
Ces optimisations s'appliquent à tous les formats de sortie, y compris les formats bref, détaillé, XML, JSON et autres formats de logs.
#### Détails techniques
**Comportement de synchronisation de la sortie :**
- **Activé** : Chaque ligne de sortie est immédiatement vidée sur le disque/l'écran (plus lent mais en temps réel)
- **Désactivé** : La sortie est mise en mémoire tampon avant écriture (plus rapide mais avec un délai)
**Impact de la taille du tampon :**
- **Taille 1** : Tampon minimal, sortie quasi immédiate
- **Taille 10** : Petit tampon contenant environ 10 résultats avant écriture
- **Taille 25+** : Un tampon plus grand réduit les appels système d'E/S pour de meilleures performances
- **Taille 0** : Totalement sans tampon (équivalent à synchronisation activée)
### Support du profilage
Activez le profilage des performances pour identifier les goulots d'étranglement :```bash
# Basic profiling to stderr
WHATWEB_PROFILE=1 ./whatweb -t 25 targets.txt
# Save profile to file
WHATWEB_PROFILE=1 WHATWEB_PROFILE_FILE=profile.txt ./whatweb -t 25 targets.txt
Note : Le profilage nécessite la gem ruby-prof : gem install ruby-prof
Modifier le user-agent en utilisant l'option de ligne de commande -U ou --user-agent évitera la règle Snort IDS pour WhatWeb.
Si vous scannez des plages d'adresses IP, il est bien plus efficace d'utiliser un scanner de ports comme masscan pour découvrir lesquels ont le port 80 ouvert avant de scanner avec WhatWeb.
La détection de jeu de caractères, avec le plugin Charset, diminue considérablement les performances en nécessitant plus de CPU. Cela est requis par les journaux JSON et MongoDB.
WhatWeb prend en charge des dépendances optionnelles pour la journalisation MongoDB et la détection de jeu de caractères.
Les dépendances optionnelles sont la raison pour laquelle le Gemfile est divisé en groupes et que WhatWeb n'est pas livré avec un Gemfile.lock. Si vous souhaitez un Gemfile.lock, il sera créé lorsque vous exécuterez bundle install.
Vous pouvez les installer en utilisant les groupes Bundler :
Pour activer la journalisation MongoDB :```bash
bundle install --with mongo
GEMFILE_GROUPS="default mongo" bundle install
### Détection du jeu de caractères
Pour activer la détection du jeu de caractères (nécessaire pour les logs JSON et MongoDB) :```bash
# Install dependencies
bundle install --with rchardet
# If you're using an older version of Bundler
GEMFILE_GROUPS="default rchardet" bundle install
# Copy the charset plugin
cp plugins-disabled/charset.rb my-plugins/
Pour installer toutes les dépendances optionnelles en une seule fois :```bash
bundle install --with mongo rchardet
GEMFILE_GROUPS="default mongo rchardet" bundle install
Remarque : La détection du jeu de caractères réduit considérablement les performances en nécessitant plus de CPU. Activez-la uniquement si vous en avez besoin.
## Écrire des plugins
Les plugins sont faciles à écrire. Commencez par parcourir les tutoriels sur les plugins dans le dossier *my-plugins/*.
* [Tutoriels sur les plugins](https://github.com/urbanadventurer/WhatWeb/tree/master/my-plugins).
Un aperçu des tutoriels sur les plugins se trouve ici. [plugin-tutorials.txt](https://github.com/urbanadventurer/WhatWeb/tree/master/plugin-development/plugin-tutorials.txt)
Après avoir progressé dans les tutoriels, lisez la section Développement du [wiki](https://github.com/urbanadventurer/WhatWeb/wiki/).
* [Sources pour l'écriture de plugins](https://github.com/urbanadventurer/WhatWeb/wiki/Sources-for-Plugin-Writing)
* [Comment développer des plugins WhatWeb (pas à jour)](https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins)
## Mises à jour et informations complémentaires
La version de développement de WhatWeb propose des mises à jour régulières.
* Consultez les branches de développement pour les mises à jour non publiées.
Parcourez le wiki pour plus de documentation et de techniques d'utilisation avancées.
* Wiki: https://github.com/urbanadventurer/WhatWeb/wiki/
## Historique des versions
- Version 0.6.4 publiée le 3 avril 2026
- Version 0.6.3 publiée le 18 octobre 2025
- Version 0.6.2 publiée le 25 août 2025
- Version 0.6.1 publiée le 30 juillet 2025
- Version 0.5.4 publiée le 14 décembre 2020
- Version 0.5.3 publiée le 1er octobre 2020
- Version 0.5.2 publiée le 9 juin 2020
- Version 0.5.1 publiée le 25 février 2020
- Version 0.5.0 publiée le 9 juin 2019
- Version 0.4.9 publiée le 23 novembre 2017
- Version 0.4.8-dev (version continue de 2012 à 2017)
- Version 0.4.7 publiée le 5 avril 2011
- Version 0.4.6 publiée le 25 mars 2011
- Version 0.4.5 publiée le 17 août 2010
- Version 0.4.4 publiée le 29 juin 2010
- Version 0.4.3 publiée le 24 mai 2010
- Version 0.4.2 publiée le 30 avril 2010
- Version 0.4.1 publiée le 28 avril 2010
- Version 0.4 publiée le 14 mars 2010
- Version 0.3 publiée à Kiwicon III (kiwicon.org), le 2 novembre 2009
## Crédits
### Développeurs
+ Andrew Horton (@urbanadventurer)
+ Brendan Coles (@bcoles)
### Contributeurs
Merci aux personnes suivantes qui ont contribué à WhatWeb.
+ Emilio Casbas
+ Louis Nyffenegger
+ Patrik Wallström (@pawal)
+ Caleb Anderson (@dirtyfilthy)
+ Tonmoy Saikia
+ Aung Khant (@yehgdotnet)
+ Erik Inge Bolsø
+ [email protected]
+ Steve Milner (@ashcrow)
+ Michal Ambroz
+ Gremwell
+ Sagar Prakash Junnarkar (@sagarjunnarkar)
+ GertBerger
+ Quintin Poirier
+ Eric Sesterhenn
+ dengjw (@jawa)
+ Pedro Worcel (@droop)
+ Matthieu Keller (@maggick)
+ Peter (2pvdl)
+ Napz (@RootCon)
+ @nilx042
+ Fabian Affolter (@fabaff)
+ Andrew Silvernail (@buff3r)
+ Andre Ricardo (@andrericardo)
+ nikosk
+ Patrick Thomas (@coffeetocode)
+ Guillaume Delcaour (@guikcd)
+ Sean (@wiifm69)
+ Matthieu Keller (@maggick)
+ Raul (@raurodse)
+ Andrew Petro (@apetro)
+ Artem Taranyuk (@610)
+ Matti Paksula (@matti)
+ Tim Smith (@tas50)
+ Sarthak Munshi (@saru95)
+ @rdubourguais
+ @SlivTaMere
+ @Code0x58
+ @iGeek098
+ @andreas-becker
+ @csalazar
+ Igor Rzegocki (@ajgon)
+ @juananpe
+ @lins05
+ @anozoozian
+ Bhavin Senjaliya (@bhavin1223)
+ Chad Brigance (@ChadBrigance)
+ Daniel Maldonado
+ Elias Dorneles (@eliasdorneles)
+ Eugene Amirov
+ Gregory Boddin (@gboddin)
+ Guillaume Delacour
+ Janosch Maier (@phylu)
+ Max Davitt (@themaxdavitt)
+ Naglis Jonaitis (@naglis)
+ Shuai Lin
+ Sigit Dewanto (@sigit)
+ @wh1tenoise
+ @golewski
+ @Allactaga
+ @elcodigok
+ @SlivTaMere
+ @rmaksimov
+ Melvil Guillaume (@mguillau42)
+ @LrsK
+ @abenson
+ @blshkv
+ Weidsom Nascimento (@weidsom)
+ Marcelo Gimenes (@cgimenes)
+ @xambroz
+ Baptiste Fontaine (@bfontaine)
+ @definity
+ @huntertl
+ Michael Ippolito (@spookycave)
+ @mkauschi
+ @frapava98
+ John de Kroon (@johndekroon)
+ @mtisec
+ Claude from Anthropic
Il est difficile de suivre la trace de toutes les personnes qui ont contribué à WhatWeb. Si votre nom manque, veuillez me le faire savoir.