SOME - Exécution de Méthode de Même Origine
Reading time: 3 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
Exécution de Méthode de Même Origine
Il y aura des occasions où vous pouvez exécuter un javascript limité sur une page. Par exemple, dans le cas où vous pouvez contrôler une valeur de rappel qui sera exécutée.
Dans ces cas, l'une des meilleures choses que vous pourriez faire est de accéder au DOM pour appeler n'importe quelle action sensible que vous pouvez y trouver (comme cliquer sur un bouton). Cependant, vous trouverez généralement cette vulnérabilité dans de petits points de terminaison sans rien d'intéressant dans le DOM.
Dans ces scénarios, cette attaque sera très utile, car son objectif est de pouvoir abuser de l'exécution JS limitée à l'intérieur d'un DOM d'une page différente du même domaine avec des actions beaucoup plus intéressantes.
Fondamentalement, le flux d'attaque est le suivant :
- Trouver un rappel que vous pouvez abuser (potentiellement limité à [\w\._]).
- S'il n'est pas limité et que vous pouvez exécuter n'importe quel JS, vous pourriez simplement en abuser comme un XSS régulier.
- Faire en sorte que la victime ouvre une page contrôlée par l'attaquant.
- La page s'ouvrira elle-même dans une fenêtre différente (la nouvelle fenêtre aura l'objet
opener
référant à la première). - La page initiale chargera la page où se trouve le DOM intéressant.
- La deuxième page chargera la page vulnérable abusant du rappel et utilisant l'objet
opener
pour accéder et exécuter une action dans la page initiale (qui contient maintenant le DOM intéressant).
caution
Notez que même si la page initiale accède à une nouvelle URL après avoir créé la deuxième page, l'objet opener
de la deuxième page est toujours une référence valide à la première page dans le nouveau DOM.
De plus, pour que la deuxième page puisse utiliser l'objet opener, les deux pages doivent être de la même origine. C'est la raison pour laquelle, afin d'abuser de cette vulnérabilité, vous devez trouver une sorte de XSS dans la même origine.
Exploitation
- Vous pouvez utiliser ce formulaire pour générer un PoC pour exploiter ce type de vulnérabilité : https://www.someattack.com/Playground/SOMEGenerator
- Pour trouver un chemin DOM vers un élément HTML avec un clic, vous pouvez utiliser cette extension de navigateur : https://www.someattack.com/Playground/targeting_tool
Exemple
- Vous pouvez trouver un exemple vulnérable sur https://www.someattack.com/Playground/
- Notez que dans cet exemple, le serveur génère du code javascript et l'ajoute à l'HTML en fonction du contenu du paramètre de rappel :
<script>opener.{callbacl_content}</script>
. C'est pourquoi dans cet exemple, vous n'avez pas besoin d'indiquer l'utilisation deopener
explicitement. - Consultez également ce compte rendu CTF : https://ctftime.org/writeup/36068
Références
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.