3 outils de teste gratuits pour rechercher les vulnérabilités d’injection SQL
L’injection SQL (SQLi) est l’une des menaces en ligne les plus courantes. En fait, OWASP – une organisation à but non lucratif dédiée à l’amélioration de la sécurité des logiciels – répertorie en premier lieu tous les types d’injections, l’injection SQL (SQLi) constitue le principal risque en matière de sécurité des applications. Cela nous amène à la question: comment se défendre?
Le test de pénétration (ou «pentesting» en bref) consiste à simuler des attaques sur des logiciels afin de déterminer leurs faiblesses. Il est utile de détecter les vulnérabilités avant qu’elles ne soient trouvées et utilisées par les cybercriminels. À l’époque, c’était un processus long et difficile, mais c’est beaucoup plus facile maintenant, grâce aux outils.
Les outils de Pentesting – également appelés outils de test d’intrusion – permettent d’automatiser et d’accélérer le processus de simulation d’attaques et de détecter les vulnérabilités des logiciels. Ils aident les pirates éthiques à tester les logiciels dans un style meilleur et efficace. Cela dit, voyons quels sont les meilleurs outils de test pour tester l’injection SQL. Mais avant tout, examinons brièvement l’injection de base dans SQL.
Sommaire
Qu’est-ce que l’injection SQL (SQLi)?
L’injection SQL est une technique d’injection de code utilisée pour attaquer une base de données. Dans la mesure où une base de données se trouve derrière chaque logiciel, le logiciel est violé si la base est violé. C’est crucial, car SQLi peut être utilisé pour contourner les mesures de sécurité des applications, par exemple un formulaire de connexion permettant aux membres privilégiés de mettre à jour les données d’un titulaire de compte bancaire.
L’injection SQL a généralement lieu lorsque vous demandez à l’utilisateur des entrées et qu’il entre une instruction SQL que vous exécutez à votre insu sur votre base de données. Par exemple, si vous demandez à l’utilisateur son identifiant et qu’il entre «1051 OU 1 = 1», il s’agit d’une attaque par injection.
Voyons le en action. Supposons que votre logiciel utilise cette requête pour confirmer l’identité de l’utilisateur: «SELECT * FROM User_Data WHERE User_ID = Input_Here». Ensuite, s’il entre «1051 OU 1 = 1», la requête devient «SELECT * FROM User_Data WHERE User_ID = 1051 OU 1 = 1». Dans la mesure où «1 = 1» est toujours vrai et qu’il est joint par OU, la requête est vraie. Ainsi, l’utilisateur est identifié comme valide, même s’il ne l’est pas!
Quelle est la solution? La solution recommandée consiste à valider toutes les entrées et à basculer vers des requêtes paramétrées et des instructions préparées. Cependant, vous risquez de manquer l’une de ces techniques par erreur dans votre logiciel, n’est-ce pas? Ceci est connu comme un bogue ou une vulnérabilité, qui doit être trouvé et corrigé pour éviter une attaque.
Mais comment trouver les vulnérabilités? C’est là que les outils de pentesting sont utiles; ils vous aident à trouver des bogues dans votre logiciel afin que vous puissiez les corriger. Et la seule méthode pour empêcher une cyberattaque consiste à corriger les bugs ou les failles de votre logiciel. Cela dit, voyons les meilleurs outils de pentesting.
Outils de recherche des vulnérabilités SQLi
1. OWASP ZAP
Le proxy Zed Attack (ZAP) OWASP est l’un des outils de sécurité gratuits les plus populaires. C’est un logiciel à code source ouvert qui vous aide à détecter les vulnérabilités de vos applications Web au cours des phases de développement et de test. Il comporte de nombreuses fonctionnalités avancées pour répondre aux demandes des testeurs expérimentés.
Il est spécialement conçu pour tester les applications Web (et non les logiciels de bureau ou les applications mobiles). En outre, il fonctionne sur toutes les plateformes populaires (y compris Docker), grâce à sa base de code écrite en Java. Sa caractéristique la plus intéressante est qu’il est extensible et flexible; vous pouvez utiliser ses add-ons gratuits pour répondre à des besoins particuliers.
Cela dit, voyons quelques-unes de ses fonctionnalités qui aident à détecter les bugs:
- Comprend une option d’analyse automatisée pour les tests de lancement automatique sur un site Web donné et le test de tous les types de vulnérabilités de sécurité.
- Caractéristiques du mode headless pour développer un logiciel d’automatisation.
- Caractéristiques des API pour contrôler presque toutes ses fonctionnalités.
2. w3af
w3af, qui signifie «plateforme d’attaque et d’audit d’applications Web», est une plateforme de test de sécurité conçu pour vous aider à sécuriser vos applications Web. C’est un autre testeur de vulnérabilité gratuit et à code source ouvert qui vous aide à détecter et à exploiter les vulnérabilités de sécurité des applications Web. Il se vante de sa capacité à détecter plus de 200 vulnérabilités, y compris l’injection de clics et l’injection SQL.
Voyons sa liste de fonctionnalités, ce qui est superbe, vu que c’est un outil gratuit, comme ci-dessous:
- Prend en charge l’automatisation à l’aide de son propre ensemble de scripts (fichiers texte comportant leurs commandes sur chaque ligne, tout comme les scripts batch de Windows).
- Prend en charge divers types de journalisation – console, fichiers texte et même rapports par courrier électronique – pour aider votre futur outil d’automatisation à connaître les résultats.
- Prend en charge un moteur de fuzzing pouvant injecter des charges utiles dans presque toutes les parties des demandes HTTP; il est également personnalisable à partir de la page des paramètres.
- Prend en charge l’extension de l’outil en écrivant des plugins (scripts en Python).
3. sqlmap
Outil de tests de pénétration open source, sqlmap automatise le processus de recherche et d’exploitation des bogues SQLi. Il est livré avec un puissant moteur de détection, qui offre des fonctionnalités supersoniques pour un testeur de pénétration expert. De plus, il intègre une variété de commutateurs, allant de la prise d’empreintes digitales à la base de données et de la surextraction de données à l’accès au système de fichiers de bas niveau sur le système d’exploitation de la base de données.
Ce n’est que le début. La liste de ses fonctionnalités est énorme, voyons donc les meilleures:
- Prend en charge les bases de données les plus courantes, notamment IBM DB2, Microsoft Access, Microsoft SQL Server, MySQL, Oracle, PostgreSQL et SQLite.
- Prise en charge de toutes les principales techniques d’injection, à savoir Classic SQLi, y compris ses sous-types (SQLi basé sur les erreurs et SQLi basée sur Union), Blind SQLi, y compris ses sous-types (Blind basé sur le booléen et SQLi basé sur le temps), SQLi hors bande et injection SQL basée sur les requêtes empilées.
- Prend en charge la reconnaissance des types de hachage de mot de passe et leur résolution.
- Prend en charge la recherche à l’intérieur et le vidage des tables selon vos paramètres.
- Prend en charge l’exécution de commandes sur le système d’exploitation sous-jacent et la réception de leurs sorties standard si la base de données est prise en charge.
Il s’agit des outils de test de pénétration permettant de de détecter les vulnérabilités d’injection SQL dans vos applications Web. Il est suggéré de commencer par OWASP ZAP car il peut tester des sites Web et vous informer sur les liens ou les pages vulnérables. Ensuite, vous pouvez utiliser les autres outils de ces liens ou pages Web pour détecter les bogues SQLi. Enfin, vous devez corriger ces vulnérabilités pour des raisons de sécurité.