Dans cet article, vous obtiendrez les informations requises de la demande afin de savoir ce que le site d'attaque doit faire pour envoyer des demandes valides au serveur vulnérable. Ensuite, vous créerez une page qui simule les demandes légitimes et incite l'utilisateur à visiter cette page tout en étant authentifié. Vous ferez également quelques itérations sur la preuve de concept de base pour le faire ressembler davantage à une attaque du monde réel, où la victime ne le remarque pas. Notez que le fichier de code pour cet article peut être trouvé sur le github de l'auteur.
Vous aurez besoin d'un compte utilisateur valide dans Bodgeit pour cet article. Cet article utilise Utilisateur @ Exemple.com
En tant que victime:
Comment faire…
Tout d'abord, vous devez analyser la demande que vous souhaitez forcer la victime à faire. Pour ce faire, vous avez besoin de Burp Suite ou d'un autre proxy configuré dans le navigateur:
Donc, c'est un POSTE
demande à http: // 192.168.56.11 / Bodgeit / mot de passe.jsp,
et n'a que le mot de passe et sa confirmation dans le corps.
mot de passe-changement CSRF.html
) avec le contenu suivant: CSRF-Change-Password-Scrit.html
: Cette fois, le formulaire a un paramètre ID et il y a un script sur la page qui soumettra son contenu lorsque la page est complètement chargée.
Remarquez comment la propriété cible du formulaire est l'iframe défini juste en dessous et que ce cadre a 0% de hauteur et de largeur.
Lorsque vous envoyez une demande d'un navigateur et que vous avez déjà un cookie appartenant au domaine cible stocké, le navigateur fixera le cookie à la demande avant son envoi. C'est ce qui rend les cookies aussi pratiques que les identifiants de session, mais cette caractéristique du fonctionnement de HTTP est aussi ce qui le rend vulnérable à une attaque comme celle que vous avez vue dans cet article.
Lorsque vous chargez une page dans le même navigateur, où vous avez une session active dans une application, le navigateur attachera automatiquement le cookie de session à cette demande. Cela se produit même s'il s'agit d'un onglet ou d'une fenêtre différent, et cette page fait une demande au domaine où la session est lancée.
Si le serveur ne vérifie pas que les demandes qu'il reçoit proviennent réellement de l'application, elle permet à un site malveillant de passer des appels au nom des utilisateurs actifs légitimes qui visitent ce site malveillant tout en étant authentifié dans le domaine cible.
Dans un test de pénétration d'application Web, le premier code que vous avez utilisé, celui avec les deux champs de texte et le Soumettre bouton, peut être suffisant pour démontrer la présence d'un défaut de sécurité. Cependant, les tests de pénétration de l'application peuvent faire partie d'un autre engagement, comme un ingénierie sociale ou un exercice d'équipe rouge. Dans ce cas, des efforts supplémentaires seront nécessaires pour empêcher l'utilisateur de la victime de soupçonner que quelque chose se passe.
Dans cet article, vous avez utilisé JavaScript pour automatiser l'envoi de la demande en définissant l'événement Onload sur la page et en exécutant la méthode de soumission du formulaire dans la fonction du gestionnaire d'événements. Vous avez également utilisé un iframe caché pour charger la réponse du changement de mot de passe, donc la victime ne voit jamais le message que son mot de passe a changé.
Si vous avez trouvé cet article intéressant, vous pouvez explorer Kali Linux Web Pénétration Test Cookbook - Deuxième édition Pour découvrir les vulnérabilités Web les plus courantes et les empêcher de devenir une menace pour la sécurité de votre site. Kali Linux Web Pénétration Test Cookbook - Deuxième édition Vous donne les compétences dont vous avez besoin pour couvrir chaque étape d'un test de pénétration - de la collecte d'informations sur le système et de l'application à l'identification des vulnérabilités grâce à des tests manuels.