hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md

5.4 KiB

SOME - Same Origin Method Execution

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

WhiteIntel

WhiteIntel est un moteur de recherche alimenté par le dark web qui offre des fonctionnalités gratuites pour vérifier si une entreprise ou ses clients ont été compromis par des logiciels malveillants voleurs.

Le but principal de WhiteIntel est de lutter contre les prises de contrôle de compte et les attaques de ransomware résultant de logiciels malveillants voleurs d'informations.

Vous pouvez consulter leur site Web et essayer leur moteur gratuitement sur :

{% embed url="https://whiteintel.io" %}


Exécution de méthode de même origine

Il y aura des occasions où vous pourrez exécuter un peu de 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 d'accéder au DOM pour appeler n'importe quelle action sensible que vous pouvez trouver dedans (comme cliquer sur un bouton). Cependant, vous trouverez généralement cette vulnérabilité dans des petits points de terminaison sans rien d'intéressant dans le DOM.

Dans ces scénarios, cette attaque sera très utile, car son but est de pouvoir abuser de l'exécution JS limitée à l'intérieur d'un DOM à partir d'une page différente du même domaine avec des actions plus intéressantes.

Essentiellement, le flux de l'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 abuser de cela comme un XSS régulier.
  • Faites en sorte que la victime ouvre une page contrôlée par l'attaquant.
  • La page s'ouvrira dans une fenêtre différente (la nouvelle fenêtre aura l'objet opener faisant référence à l'initial).
  • La page initiale chargera la page où se trouve le DOM intéressant.
  • La deuxième page chargera la page vulnérable en abusant du rappel et en utilisant l'objet opener pour accéder et exécuter une action dans la page initiale (qui contient maintenant le DOM intéressant).

{% hint style="danger" %} 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 dans la même origine. C'est la raison pour laquelle, pour abuser de cette vulnérabilité, vous devez trouver une sorte de XSS dans la même origine. {% endhint %}

Exploitation

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 au 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 explicitement l'utilisation de opener.
  • Consultez également ce write-up CTF : https://ctftime.org/writeup/36068

Références