hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md
2024-02-10 15:36:32 +00:00

6 KiB

SOME - Same Origin Method Execution

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Same Origin Method Execution

Es wird Situationen geben, in denen Sie etwas begrenztes JavaScript auf einer Seite ausführen können. Zum Beispiel, wenn Sie einen Callback-Wert kontrollieren können, der ausgeführt wird.

In solchen Fällen ist eine der besten Dinge, die Sie tun können, den DOM zu öffnen, um eine beliebige sensible Aktion auszuführen, die Sie darin finden können (wie das Klicken auf eine Schaltfläche). In der Regel finden Sie jedoch diese Schwachstelle in kleinen Endpunkten ohne interessante Dinge im DOM.

In solchen Szenarien ist dieser Angriff sehr nützlich, da sein Ziel darin besteht, die begrenzte JS-Ausführung innerhalb eines DOMs von einer anderen Seite derselben Domain mit viel interessanteren Aktionen zu missbrauchen.

Grundsätzlich sieht der Angriffsablauf wie folgt aus:

  • Finden Sie einen Callback, den Sie missbrauchen können (potenziell auf [\w\._] beschränkt).
  • Wenn er nicht begrenzt ist und Sie beliebiges JS ausführen können, können Sie dies einfach als reguläres XSS missbrauchen.
  • Lassen Sie das Opfer eine Seite öffnen, die vom Angreifer kontrolliert wird.
  • Die Seite wird sich selbst in einem anderen Fenster öffnen (das neue Fenster wird das Objekt opener auf die ursprüngliche Seite verweisen).
  • Die ursprüngliche Seite lädt die Seite, auf der sich der interessante DOM befindet.
  • Die zweite Seite lädt die verwundbare Seite, indem sie den Callback missbraucht und das Objekt opener verwendet, um eine Aktion in der ursprünglichen Seite auszuführen (die jetzt den interessanten DOM enthält).

{% hint style="danger" %} Beachten Sie, dass selbst wenn die ursprüngliche Seite nach dem Erstellen der zweiten Seite auf eine neue URL zugreift, das opener-Objekt der zweiten Seite immer noch eine gültige Referenz auf die erste Seite im neuen DOM ist.

Darüber hinaus müssen sich beide Seiten in derselben Herkunft befinden, damit die zweite Seite das Opener-Objekt verwenden kann. Aus diesem Grund müssen Sie, um diese Schwachstelle auszunutzen, eine Art XSS in derselben Herkunft finden. {% endhint %}

Ausnutzung

Beispiel

  • Sie finden ein anfälliges Beispiel unter https://www.someattack.com/Playground/
  • Beachten Sie, dass in diesem Beispiel der Server JavaScript-Code generiert und ihn auf der Grundlage des Inhalts des Callback-Parameters zum HTML hinzufügt: <script>opener.{callbacl_content}</script>. Aus diesem Grund müssen Sie in diesem Beispiel nicht explizit die Verwendung von opener angeben.
  • Überprüfen Sie auch diese CTF-Write-up: https://ctftime.org/writeup/36068

Referenzen

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!