it-swarm.com.de

Verwenden Sie die XSS-Sicherheitsanfälligkeit in iframe, um das übergeordnete Element zu gefährden?

Ich habe eine Site, nennen wir sie parent.com, Die ein Plugin eines Drittanbieters von child.com In einen Iframe einbettet. Ich habe eine XSS-Sicherheitslücke in child.com Gefunden.

Die eingebettete Seite von child.com Enthält ein Formular, das auf eine andere Seite in derselben Domain POST. Ich kann die Sicherheitsanfälligkeit ausnutzen, indem ich das Formular abschicke. Ich fange die Anforderung POST mit Burp ab und füge meine Nutzdaten ein. Die Nutzdaten werden dann ausgeführt.

Mein Problem ist, dass die Nutzdaten innerhalb des Iframes in der Domäne child.com Ausgeführt werden. Mein Ziel ist es, parent.com Zu kompromittieren (um ein Bug Bounty zu gewinnen). Ist es möglich, diese Sicherheitsanfälligkeit zu nutzen, um dies irgendwie zu erreichen? Kann ich das Formular beispielsweise irgendwie an parent.com Senden lassen?

5
SecurityQuy

Iframes haben ein spezielles Tag namens "Sandbox", das festlegt, wie der Inhalt des Iframes behandelt wird. Mit diesem Tag können Sie Berechtigungen detailliert festlegen, damit ein Iframe mit dem übergeordneten Tag interagieren kann. Normalerweise sind iframes ziemlich restriktiv in Bezug darauf, wie sie sich auf ein übergeordnetes Element auswirken können, wenn sie aus einer anderen Domäne geladen werden. Wenn Sie jedoch Folgendes sehen: Zulassen des gleichen Ursprungs, Zulassen von Skripten, Zulassen der Top-Navigation usw., kann dies fallspezifisch sein Möglichkeiten, es auszunutzen.

[Bearbeiten] In den meisten Fällen von iframe XSS-Angriffen wird kein beliebiger Code in die übergeordnete Website eingefügt. Stattdessen sind sie normalerweise eine der folgenden:

  1. Sie übernehmen die Kontrolle über die untergeordnete Website und ersetzen sie durch ein gefälschtes Anmeldeformular, damit die Benutzer glauben, dass sie sich auf der übergeordneten Website anmelden, um auf den Inhalt zuzugreifen, wenn Sie ihre Anmeldeinformationen wirklich phishing.
  2. Sie verteilen einen "nützlichen" Dienst, den andere Programmierer in ihre Websites einbetten und den Sie tatsächlich zum Phishing privater Informationen verwenden. Dann beten Sie für das Vertrauen der Menschen in diese anderen Websites, damit sie Ihnen etwas Nützliches geben. Beispiel: Ein Steuerklassenrechner, der Sie nach Ihrem Namen, Ihrer Adresse und Ihrer SSN fragt.
  3. Anstelle von parent.com erstellen Sie eine böse Zwillingswebsite namens parent.com, die parent.com in einem Iframe enthält, sodass es sich wie die reale Website verhält, Ihre Version der Website jedoch die privaten Informationen des Endbenutzers sammelt.

Der wahrscheinlichste Weg für Sie, dieses Szenario auszunutzen, wäre, wenn Sie das Formular durch etwas ersetzen, das wie ein Anmeldeformular für parent.com aussieht, und nicht auf parent.com posten, sondern auf etwas, das Sie tatsächlich kontrollieren Benutzeranmeldeinformationen zu stehlen.

5
Nosajimiki

Nein, dies ist wahrscheinlich nicht möglich, da iframes von Natur aus restriktiv sind. Denken Sie daran, dass alles, was ein iFrame ist, eine einfache GET-Anforderung an die Site ist, die als Quelle enthalten ist, und diese dann in die übergeordnete Site einbettet und eine weitere Interaktion mit ihr ermöglicht. Sie haben eine POST-XSS-Sicherheitsanfälligkeit innerhalb der untergeordneten Site beschrieben, die in einem Iframe nur sehr schwer automatisch ausgelöst werden kann, da es sich wiederum nur um eine GET-Anforderung handelt.

Theoretisch könnte man natürlich einen Browser-Exploit finden, mit dem man Javascript von einer untergeordneten Site auf eine übergeordnete Site ausführen kann, aber so etwas ist viel wertvoller als jede Prämie auf der übergeordneten Site. Außerdem würde es in Ihrem Fall wahrscheinlich immer noch nicht funktionieren, da Sie wieder nur POST-XSS haben.

Es ist nützlich zu beachten, dass iFrames zwar restriktiv sind, wie von anderen Benutzern und mir hervorgehoben, es jedoch eine Ausnahme für den URI javascript: Gibt. Nehmen Sie zum Beispiel einen Iframe wie folgt:

<iframe src="javascript:alert(0)"></iframe>

Wenn dies auf einer Website wäre, würden Sie nicht nur eine Warnung erhalten, sondern es wäre auch eine Warnung auf der 'übergeordneten Site', da es technisch gesehen keine untergeordnete Site gibt. Dies ist ein interessantes Verhalten und beweist, dass iFrames nicht immer so 'restriktiv' sind.

1
Cillian Collins