Maison  >  Article  >  Opération et maintenance  >  Comment analyser les problèmes avec sqlmap

Comment analyser les problèmes avec sqlmap

WBOY
WBOYavant
2023-05-27 13:07:561568parcourir

0x00 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é

Comment analyser les problèmes avec sqlmap

sqlmap v1.2 injecté avec succès

Comment analyser les problèmes avec sqlmap

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 :

Comment analyser les problèmes avec sqlmap

//Source de l'image https://www.freebuf.com/colum...

Prenez un coup d'oeil Charge utile de test de la v1.2 :

Comment analyser les problèmes avec sqlmap

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 :

Comment analyser les problèmes avec sqlmap

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...

Comment analyser les problèmes avec sqlmap

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 :

Comment analyser les problèmes avec sqlmap

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

  1. 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.

  2. Lorsque vous rencontrez des paramètres json, essayez de les ajouter manuellement* (pour certaines versions de sqlmap).

  3. Il est recommandé d'ajouter -vv lors des tests avec sqlmap.

  4. 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer