Comment analyser les problèmes avec sqlmap
May 27, 2023 pm 01:07 PM0x00 Présentation
Récemment, j'ai rencontré un phénomène étrange lors de l'utilisation de sqlmap pour les tests d'injection. La version supérieure de sqlmap ne peut pas détecter l'injection, mais la version inférieure peut détecter l'injection et les données peuvent être épuisées, ce qui est le cas. pas un faux positif. Après des tests de comparaison et en regardant le code source de sqlmap, j'ai trouvé deux petits trous.
Reproduction de scénario 0x01
Format du point d'injection : json
..."whereparams":[{"name":"keyWord","value":"test"}]}
Paramètres injectables : value
sqlmap Command :
python sqlmap.py -r sqlpk.txt –flush-session -vv
sqlmap v1.2.11 ne peut pas être injecté
sqlmap v1.2 injecté avec succès
Identique à la v1.2.1 0 impossible d'injection, la v1.1.12 peut être injectée
Après analyse, les deux pièges sont les suivants :
(1) Le border.xml de la v1.2.11 (/v1.2.10/v1.2.9/master) n'a pas de test de flou requête (%). Et la v1.2 (/v1.1.12/1.1.4/1.2.2) l'a.
(2) v1.2.11 (/v1.2.10/1.2.9/master) doit définir manuellement un certain paramètre de json sur * afin d'injecter ce paramètre (même si y-inject inside est sélectionné), sinon la charge utile sera suivre directement json ne peut pas être injecté, mais la v1.2 (/v1.1.12) peut par défaut appuyer sur Entrée (y) pour injecter un certain paramètre de json.
0x02 Test détaillé
points de fosse (1) :
Comprenez d'abord la composition de la charge utile de sqlmap :
//Source de l'image https://www.freebuf.com/colum...
Prenez un coup d'oeil Charge utile de test de la v1.2 :
Charge utile utilisée : %' et 5731=5731 et '%'='
Il s'agit d'une injection de champ de recherche très courante
Regardez les limites.xml de la V1.2 :
Le border.xml de la v1.2.11 n'a pas de test d'injection pour les requêtes floues !
https://github.com/sqlmapproj...
J'ai donc ajouté le test d'injection de la requête floue au fichier de la v1.2.11, et ajouté manuellement * aux paramètres d'injection (comme la valeur), et l'injection a été réussi!
Ci-joint la version ajoutée :
https://github.com/theLSA/sql...
pr a obtenu la réponse car il y avait trop de faux positifs, donc la charge utile pertinente a été supprimée, mais elle le sera limitée.
https://github.com/sqlmapproj...
Points de pit (2) :
Comparez les charges utiles de la v1.2 et de la v1.2.11 :
On peut voir que la v1.2.11 directement connecte la charge utile à la fin de json.
Ajoutez manuellement *
%22whereparams%22%3A%5B%7B%22name%22%3A%22keyWord%22%2C%22value%22%3A%22*%22%7D%5D%7D
c'est-à-dire lors de l'injection valeur du paramètre Peut être injecté avec succès !
0x03 Conclusion
Je recommande personnellement d'ajouter une charge utile de test de requête floue. Les faux positifs sont meilleurs que les faux négatifs, et il s'agit d'une injection de requête floue très courante.
Lorsque vous rencontrez des paramètres json, essayez de les ajouter manuellement* (pour certaines versions de sqlmap).
Il est recommandé d'ajouter -vv lors des tests avec sqlmap.
Ne comptez pas trop sur les outils Essayez d'utiliser des outils + des tests manuels pour être plus sûr.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Exemple d'analyse de l'injection automatisée SQLmap

Qu'est-ce que le proxy en mode oignon de SQLMAP ?

Comment analyser la défense contre les injections SQLMap et SQLi

Comment analyser les problèmes avec sqlmap

Comment implémenter l'analyse de l'injection temporelle sqlmap

L'idée du cryptage des signes de traitement sqlmap

Quelle est la méthode de configuration de l'injection sqlmap _dns ?
