Introduction
Dans le passé, de nombreux sites web populaires ont été piratés. Les pirates sont actifs et essaient toujours de pirater des sites web et de faire fuir des données. C’est pourquoi les tests de sécurité des applications web sont très importants. Et c’est là que les scanners de sécurité des applications web entrent en jeu.
Un scanner de sécurité des applications web est un logiciel qui effectue des tests automatiques en boîte noire sur une application web et identifie les failles de sécurité. Les scanners n’accèdent pas au code source ; ils effectuent uniquement des tests fonctionnels et tentent de trouver les vulnérabilités de sécurité. Différents scanners de vulnérabilité d’applications web payants et gratuits sont disponibles.
Dans ce post, nous listons les meilleurs scanners de vulnérabilité d’applications web gratuits et open-source. J’ajoute les outils dans un ordre aléatoire, donc ne pensez pas qu’il s’agit d’un classement des outils.
J’ajoute uniquement les outils open-source qui peuvent être utilisés pour trouver des vulnérabilités de sécurité dans les applications web. Je n’ajoute pas d’outils pour trouver les vulnérabilités des serveurs. Et ne confondez pas les outils gratuits et les outils open-source ! Il existe divers autres outils disponibles gratuitement, mais ils ne fournissent pas de code source aux autres développeurs. Les outils open-source sont ceux qui offrent des codes sources aux développeurs afin que ces derniers puissent modifier l’outil ou aider au développement ultérieur.
Voici les meilleurs outils open-source de test de pénétration d’applications web.
Grabber
Grabber est un scanner d’applications web qui peut détecter de nombreuses failles de sécurité dans les applications web. Il effectue des scans et indique où la vulnérabilité existe. Il peut détecter les vulnérabilités suivantes :
- Cross-site scripting
- Injection SQL
- Test d’Ajax
- Inclusion de fichier
- Analyseur de code source JS
- Contrôle des fichiers de sauvegarde
Il n’est pas rapide par rapport aux autres scanners de sécurité, mais il est simple et portable. Il ne doit être utilisé que pour tester de petites applications web, car il prend trop de temps pour analyser de grandes applications.
Cet outil ne propose aucune interface graphique. Il ne peut pas non plus créer de rapports PDF. Cet outil a été conçu pour être simple et pour un usage personnel. Si vous y pensez pour un usage professionnel, je ne le recommanderai pas.
Cet outil a été développé en Python et une version exécutable est également disponible si vous le souhaitez. Le code source est disponible, vous pouvez donc le modifier en fonction de vos besoins. Le script principal est grabber.py, qui une fois exécuté appelle d’autres modules comme sql.py, xss.py ou d’autres.
Téléchargez-le ici.
Code source sur GitHub.
Vega
Vega est un autre scanner de vulnérabilité web open-source gratuit et une plateforme de test. Avec cet outil, vous pouvez effectuer des tests de sécurité d’une application web. Cet outil est écrit en Java et offre un environnement basé sur une interface graphique. Il est disponible pour OS X, Linux et Windows.
Il peut être utilisé pour trouver l’injection SQL, l’injection d’en-tête, le listage de répertoire, l’injection de shell, le cross-site scripting, l’inclusion de fichiers et d’autres vulnérabilités d’applications web. Cet outil peut également être étendu à l’aide d’une puissante API écrite en JavaScript.
Lorsque vous travaillez avec l’outil, il vous permet de définir quelques préférences telles que le nombre total de descendants de chemin, le nombre de chemins enfants d’un nœud et la profondeur et le nombre maximum de requêtes par seconde. Vous pouvez utiliser Vega Scanner, Vega Proxy et Proxy Scanner, et également effectuer une analyse avec des informations d’identification. Si vous avez besoin d’aide, vous pouvez trouver des ressources dans la section documentation :
La documentation est ici.
Télécharger Vega ici.
Zed Attack Proxy
Zed Attack Proxy est également connu sous le nom de ZAP. Cet outil est open-source et est développé par l’OWASP. Il est disponible pour les plateformes Windows, Unix/Linux et Macintosh.
J’aime personnellement cet outil. Il peut être utilisé pour trouver un large éventail de vulnérabilités dans les applications web. L’outil est très simple et facile à utiliser. Même si vous êtes novice en matière de tests de pénétration, vous pouvez facilement utiliser cet outil pour commencer à apprendre les tests de pénétration des applications web.
Voici les principales fonctionnalités de ZAP :
- Proxy d’interception
- Scanner automatique
- Traditionnels. mais puissants spiders
- Fuzzer
- Support de socket web
- Plug-n-hack
- Support de l’authentification
- REST-based API
- Certificats SSL dynamiques
- Support des certificats numériques de carte à puce et de client
Vous pouvez soit utiliser cet outil comme un scanner en entrant l’URL pour effectuer le scan, soit vous pouvez utiliser cet outil comme un proxy d’interception pour effectuer manuellement des tests sur des pages spécifiques.
Téléchargez ZAP ici.
Wapiti
Wapiti est un scanner de vulnérabilité web qui vous permet d’auditer la sécurité de vos applications web. Il effectue des tests en boîte noire en analysant les pages web et en injectant des données. Il essaie d’injecter des charges utiles et de voir si un script est vulnérable. Il prend en charge les attaques GET et POSTHTTP et détecte de multiples vulnérabilités.
Il peut détecter les vulnérabilités suivantes :
- Divulgation de fichiers
- Inclusion de fichiers
- Cross-site scripting (XSS)
- Détection d’exécution de commande
- Injection deCRLF
- Injection deSEL et injection de XPath
- Faible configuration .htaccess
- Divulgation de fichiers de sauvegarde
- Plusieurs autres
Wapiti est une application en ligne de commande, elle peut donc ne pas être facile pour les débutants. Mais pour les experts, il sera performant. Pour utiliser cet outil, vous devez apprendre beaucoup de commandes, qui peuvent être trouvées dans la documentation officielle.
Télécharger Wapiti avec le code source ici.
W3af
W3af est un framework populaire d’attaque et d’audit d’applications web. Ce framework vise à fournir une meilleure plateforme de test de pénétration des applications web. Il a été développé à l’aide de Python. En utilisant cet outil, vous serez en mesure d’identifier plus de 200 types de vulnérabilités d’applications web, notamment l’injection SQL, le cross-site scripting et bien d’autres.
Il est livré avec une interface graphique et console. Vous pouvez l’utiliser facilement, grâce à son interface simple.
Si vous l’utilisez avec une interface graphique, je ne pense pas que vous allez rencontrer des problèmes avec l’outil. Il vous suffit de sélectionner les options, puis de lancer le scanner. Si un site web a besoin d’une authentification, vous pouvez également utiliser des modules d’authentification pour scanner les pages protégées par une session.
Nous avons déjà couvert cet outil en détail dans notre précédente série de walkthrough W3af. Vous pouvez lire ces articles pour en savoir plus sur cet outil.
Vous pouvez accéder au code source sur le dépôt GitHub ici.
Téléchargez-le sur le site officiel ici.
WebScarab
WebScarab est un cadre de sécurité basé sur Java pour analyser les applications web utilisant le protocole HTTP ou HTTPS. Grâce aux plugins disponibles, vous pouvez étendre les fonctionnalités de l’outil.
Cet outil fonctionne comme un proxy d’interception ; vous pouvez examiner les demandes et les réponses arrivant à votre navigateur et allant au serveur. Vous pouvez également modifier la demande ou la réponse avant qu’elles ne soient reçues par le serveur ou le navigateur.
Si vous êtes un débutant, cet outil n’est pas pour vous. Cet outil a été conçu pour ceux qui ont une bonne compréhension du protocole HTTP et qui peuvent écrire des codes.
WebScarab fournit de nombreuses fonctionnalités qui aident les testeurs de pénétration à travailler de près sur une application web et à trouver des failles de sécurité. Il dispose d’un spider qui peut trouver automatiquement les nouvelles URL du site web cible. Il peut facilement extraire les scripts et le HTML de la page. Le proxy observe le trafic entre le serveur et votre navigateur, et vous pouvez prendre le contrôle de la demande et de la réponse en utilisant les plugins disponibles. Les modules disponibles peuvent facilement détecter les vulnérabilités les plus courantes comme l’injection SQL, XSS, CRLF et de nombreuses autres vulnérabilités.
Le code source de l’outil est disponible sur GitHub ici.
Télécharger WebScarab ici.
Skipfish
Skipfish est un autre bel outil de sécurité des applications web. Il crawle le site web, puis vérifie chaque page à la recherche de diverses menaces de sécurité. À la fin, il prépare le rapport final.
Cet outil a été écrit en C. Il est hautement optimisé pour le traitement HTTP et utilise un minimum de CPU. Il affirme qu’il peut facilement gérer 2 000 demandes par seconde sans ajouter de charge sur le CPU. Il utilise une approche heuristique tout en crawlant et en testant les pages web, et prétend offrir une haute qualité et moins de faux positifs.
Cet outil est disponible pour Linux, FreeBSD, MacOS X et Windows.
Téléchargez Skipfish ou le code de Google Codes ici.
Ratproxy
Ratproxy est un outil d’audit de sécurité des applications web open-source qui peut être utilisé pour trouver des vulnérabilités de sécurité dans les applications web. Il prend en charge les environnements Linux, FreeBSD, MacOS X et Windows (Cygwin).
Cet outil est conçu pour surmonter les problèmes auxquels les utilisateurs sont généralement confrontés lors de l’utilisation d’autres outils proxy pour les audits de sécurité. Il est capable de faire la distinction entre les feuilles de style CSS et les codes JavaScript. Il prend également en charge l’attaque SSL man-in-the-middle, ce qui signifie que vous pouvez également voir les données passant par SSL.
Vous pouvez en savoir plus sur cet outil ici.
Téléchargez-le ici.
SQLMap
SQLMap est un autre outil de test de pénétration open-source populaire. Il automatise le processus de recherche et d’exploitation des vulnérabilités d’injection SQL dans la base de données d’un site web. Il dispose d’un puissant moteur de détection et de nombreuses fonctionnalités utiles. Ainsi, un testeur de pénétration peut facilement effectuer un contrôle d’injection SQL sur un site Web.
Il prend en charge une gamme de serveurs de bases de données, notamment MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase et SAP MaxDB. Il offre un support complet pour six types de techniques d’injection SQL : aveugle basé sur le temps, aveugle basé sur les booléens, basé sur les erreurs, requête UNION, requêtes empilées et hors bande.
Accéder au code source sur GitHub ici.
Télécharger SQLMap ici.
Wfuzz
Wfuzz est un autre outil open-source librement disponible pour les tests de pénétration d’applications web. Il peut être utilisé pour forcer brutalement des paramètres GET et POST pour des tests contre différents types d’injections comme SQL, XSS, LDAP et bien d’autres. Il prend également en charge le fuzzing des cookies, le multithreading, SOCK, le proxy, l’authentification, le brute-forcing des paramètres, le proxy multiple et bien d’autres choses encore.
Cet outil ne propose pas d’interface graphique, vous devrez donc travailler sur l’interface en ligne de commande.
Vous pouvez en savoir plus sur les fonctionnalités de l’outil ici.
Télécharger Wfuzz depuis code.google.com ici.
Grendel-Scan
Grendel-Scan est un autre bel outil de sécurité des applications web open-source. C’est un outil automatique pour trouver des vulnérabilités de sécurité dans les applications web. De nombreuses fonctionnalités sont également disponibles pour les tests de pénétration manuels. Cet outil est disponible pour Windows, Linux et Macintosh et a été développé en Java.
Téléchargez l’outil et le code source ici.
Watcher
Watcher est un scanner de sécurité web passif. Il n’attaque pas avec des charges de requêtes et ne crawle pas le site web cible. Il ne s’agit pas d’un outil distinct mais d’un add-on de Fiddler, vous devez donc d’abord installer Fiddler, puis installer Watcher pour l’utiliser.
Il analyse tranquillement les requêtes et les réponses de l’interaction avec l’utilisateur, puis établit un rapport sur l’application. Comme il s’agit d’un scanner passif, il n’affectera pas l’hébergement du site web ou l’infrastructure cloud.
Téléchargez Watcher et son code source ici.
X5S
X5S est également un module complémentaire de Fiddler destiné à fournir un moyen de trouver les vulnérabilités de scripting intersites. Ce n’est pas un outil automatique, vous devez donc comprendre comment les problèmes d’encodage peuvent conduire à un XSS avant de l’utiliser. Vous devez trouver manuellement le point d’injection et ensuite vérifier où XSS pourrait se trouver dans l’application.
Nous avons couvert X5S dans un précédent billet. Vous pouvez vous référer à cet article pour en savoir plus sur X5S et XSS.
Téléchargez X5S et le code source sur Codeplex ici.
Vous pouvez également vous référer à ce guide officiel pour savoir comment utiliser X5S.
Arachni
Arachni est un outil open-source développé pour fournir un environnement de test de pénétration. Cet outil peut détecter diverses vulnérabilités de sécurité des applications web. Il peut détecter diverses vulnérabilités comme l’injection SQL, XSS, l’inclusion de fichier local, l’inclusion de fichier distant, la redirection non validée et bien d’autres.
Téléchargez cet outil ici.
Mot final
Ce sont les meilleurs outils de test de sécurité d’applications web open-source. J’ai fait de mon mieux pour répertorier tous les outils disponibles en ligne. Si un outil n’a pas été mis à jour pendant de nombreuses années, je ne l’ai pas mentionné ici ; c’est parce que si un outil a plus de 10 ans, il peut créer des problèmes de compatibilité dans l’environnement récent.
Si vous êtes un développeur, vous pouvez également rejoindre la communauté des développeurs de ces outils et les aider à se développer. En aidant ces outils, vous augmenterez également vos connaissances et votre expertise.
Si vous voulez commencer les tests de pénétration, je vous recommanderai d’utiliser des distributions Linux qui ont été créées pour les tests de pénétration. Ces environnements sont Backtrack, Gnacktrack, Backbox et BlackBuntu. Tous ces outils sont livrés avec divers outils gratuits et open-source pour les tests de pénétration de sites Web.
Les tests de pénétration de sites Web peuvent être effectués à l’aide d’un logiciel libre.