
SleuthQL est un outil développé avec Python3, conçu pour crawler en masse les adresses de sites pouvant présenter des failles SQL. Il peut également être combiné avec Burp + sqlmap pour réaliser des injections en masse. Par rapport à sqlmap qui identifie manuellement les points d'injection un par un, en monothread, c'est beaucoup plus pratique.
SleuthQL est un script python3 qui identifie les paramètres et les valeurs contenant une syntaxe de type SQL. Une fois identifiés, SleuthQL insère les identifiants SQLMap (*) dans chaque paramètre où les variables de type SQL ont été détectées.
SleuthQL nécessite un export de l'historique du proxy Burp. Pour obtenir cet export, il suffit de naviguer dans l'onglet de votre historique de proxy, de sélectionner tous les éléments et de cliquer sur « Save Items ». Assurez-vous que chaque requête est enregistrée avec un encodage base64. Lorsque SleuthQL analyse le fichier d'historique du proxy, en plus des paramètres d'URL habituels, il sera en mesure d'identifier les paramètres vulnérables parmi les types de contenu de requête suivants :
application/jsonapplication/x-www-form-urlencodedmultipart/form-dataIl y a des cas où cet outil rencontrera des limites. Notamment, s'il existe des types de contenu imbriqués (comme un paramètre encodé en base64 dans des données JSON), il ne pourra pas identifier ces paramètres. Il ne couvre pas non plus les cookies, car trop souvent, un élément tel que CloudFlare signalera un paramètre qui ne nous intéresse pas.
Le scanner de Burp Pro est excellent, mais n'est pas aussi complet que SQLMap. Ainsi, si nous pouvons prioriser les requêtes à envoyer à SQLMap de manière groupée et chercher les résultats de cette façon, nous pouvons augmenter le taux de détection des injections SQL.
Usage:
.:/+ssyyyyyyso+/:.
-/s s/.
.+| SleuthQL |y+.
-s| SQL Injection Discovery Tool |s-
.shh| |ohs.
+hhhho+shhhhhhhhhhhs/hhhhhhhhhhhhhhhh.-hh/
`shhhhhhy:./yo/:---:/:`hhhhhhhhhhhhhhhs``ohho
shhhhhhhhh-`-//::+os: +hhhhhhhhh+shhhh.o-/hhho
+hhhhhhhhh:+y/.:shy/ /hhhhhhhhh/`ohhh-/h-/hhhh/
.hhhhhhhhhsss`.yhhs` .shhhhhhhh+-o-hhh-/hh`ohhhhh`
+hhhhhhhhhhhhyoshh+. `shhhhhs/-oh:ohs.ohh+`hhhhhh/
shhhhhhhhhhhhhhhhhhh/ -//::+yhy:oy::yhhy`+hhhhhho
yhhhhhhhhhhhhhhhhhhh:-:. `+y+-/:/yhhhy.-hhhhhhhs
shhhhhhhhhhhhhhhhhhh+ :/o+:.`` -hhhhhs`.hhhhhhhho
+hhhhhhhs/hhhhhhhhhhy::/:/yhhhy: .+yy/ :hhhhhhhhh/
.hhhhhhh:.hhhhhhhhhhhhhhhhhhhhhhs/- -shhhhhhhhhh`
+hhhhhh+ /hhhhhhhhhhhhhhhhhhhhho/:`+hhhhhhhhhhh/
shhhhy+ -shhhhhhhhhhhhhhhhhhh.// yhhhhhhhhhho
`ohh+://+/.`-/++ooooooooooyhhhhy.`hhhhhhhhhho
/hhhhhhhhhso++//+++oooo+:`sh+`-yhhhhhhhhh/
.s s.
-s Rhino Security Labs s-
.+y Dwight Hohnstein y+.
./s s/.
.:/+osyyyyyyso+/-.
sleuthql.py -d example.com -f burpproxy.xml
SleuthQL is a script for automating the discovery of requests matching
SQL-like parameter names and values. When discovered, it will display
any matching parameters and paths that may be vulnerable to SQL injection.
It will also create a directory with SQLMap ready request files.
Options:
-h, --help show this help message and exit
-d DOMAINS, --domains=DOMAINS
Comma separated list of domains to analyze. i.e.:
google.com,mozilla.com,rhinosecuritylabs.com
-f PROXY_XML, --xml=PROXY_XML
Burp proxy history xml export to parse. Must be base64
encoded.
-v, --verbose Show verbose errors that occur during parsing of the
input XML.
Pour chaque requête potentiellement vulnérable, la requête paramétrée SQLMap sera enregistrée dans $(pwd)/$domain/ sous forme de fichiers texte.
Ce code est sous licence BSD 3-Clause Clear License, qui limite la responsabilité, la garantie et l'utilisation des brevets de ce code. Consultez license.txt pour plus de détails.