Klickmissbrauch: Nicht nur für Klicks

tl;dr-Version

Sie können die Nutzer dazu bringen, Daten im Rahmen eines Click-through-Angriffs "einzutippen".
Demo auf YouTube : https://www.youtube.com/watch?v=VIEZ1aByFvU

PoC GitHub Repo : https://github.com/hoodoer/dragInputClickjacking

Details :

Ich hatte kürzlich einen Auftrag, bei dem ich sensible Teile einer Anwendung, mit der ich Finanzdaten ändern konnte, in einen Iframe einfügen konnte. Die Änderung der Daten, um den "Diebstahl" von Geld zu ermöglichen, erforderte jedoch, dass der Administratorbenutzer Zahlen eingab und nicht nur auf Schaltflächen in der Anwendung klickte.

In der Vergangenheit hatte ich nur Clickjacking-Angriffe verwendet, bei denen Mausklicks genutzt wurden, um bösartige Aktionen auszuführen, die in der Regel eine Sequenz von Mausklicks beinhalteten (ein einfaches Beispiel für einen Proof of Concept hier).

Beim Nachforschen habe ich Hinweise gefunden auf Hacktricks die darauf hinweisen, dass es möglich ist, "typisierte" Eingaben im Rahmen einer Click-through-Attacke zu machen, was mir bisher nicht bewusst war.

Obwohl der Nutzer direkt in die versteckten Eingabefelder der iframe-Site tippen kann, ist es unwahrscheinlich, dass er davon überzeugt wird, dies zu tun.

Ein Spiel, bei dem der Nutzer ein Bild auf ein Ziel ziehen muss, könnte jedoch eine realistischere Social-Engineering-Herausforderung darstellen.

In einem verschiebbaren HTML-Element können Sie eine Aktion auslösen, bei der ein beliebiger Text in ein Formularfeld eingegeben wird, auch wenn das Feld in der iframe-Site versteckt ist. Der Browser geht davon aus, dass es sich um eine vom Benutzer initiierte Aktion handelt, und lässt domänenübergreifende Eingaben zu.

Der Code ist recht einfach:

Der Code Datenübertragung können Sie festlegen, was "getippt" wird, wenn der Nutzer das Bild ablegt. Es muss nicht unbedingt ein Bild sein, aber es ist sicherlich ein praktisches Element, das von den Nutzern im Rahmen der Demonstration des Konzepts hin und her geschoben werden kann.

Ich habe versucht, dieses gleitende Element in einem separaten Iframe zu platzieren, den ich über die versteckte/gehackte Website legen könnte; dies schien jedoch nicht zu funktionieren, egal welche z-Reihenfolge ich verwendet habe. Offenbar funktioniert das Gleiten von einem Iframe in einen anderen bei dieser Technik nicht, sodass Sie Einschränkungen haben werden, wo Sie das gleitende Element in Ihrem Angriff platzieren können.

Im bereitgestellten Beispielcode platziere ich ihn einfach über der iframe-Anwendung und mache ihn in der Angriffsphase sichtbar, in der sie einen Eingabewert "eintippen" müssen.

Im Democode habe ich eine einfache Seite, die ein Formular zur "Gehaltsanpassung" anzeigt, nachdem Sie auf eine Schaltfläche geklickt haben. Auf diesem Formular kann ein beliebiger Betrag eingegeben und eingereicht werden, um angeblich das Gehalt eines Mitarbeiters anzupassen.

Wir fügen in der Demo der guten Ordnung halber 10 000 000 Dollar hinzu. Schließlich stehen die Feiertage vor der Tür.

Zunächst klonen wir die Datenbank und starten einen lokalen HTTP-Server :

git clone https://github.com/hoodoer/dragInputClickjacking
cd dragInputClickjacking
python3 -m http.server 80

Wenn Sie öffnen http://127.0.0.1/clickjackPoc.html auf Ihrem lokalen Rechner, wird der Proof of Concept geladen. Wenn Sie auf die Schaltfläche "Start Game" klicken, wird das Spiel gestartet und Sie können "spielen". Wenn Sie nach dem Start-Button nichts anklicken, läuft das Spiel ab, aber es wird kein Clickjacking durchgeführt. Sie können die Seite aktualisieren, um das "Spiel" neu zu starten.

Abbildung 1 - Proof-of-Concept der Klickumleitung

Sie können die iframed-Anwendung teilweise versteckt sehen. Bei einem echten Clickjacking-Angriff wäre sie vollständig verborgen. Sie können die Deckkraft der iframed-Anwendung im oberen Teil des Fensters anpassen clickjackPoc.html . Standardmäßig ist er auf 30 % festgelegt.

Sobald der Benutzer dazu veranlasst wurde, auf die erste Schaltfläche zu klicken, wird das Formular zur Anpassung der Gehaltsschecks nun in der iframed-Anwendung "angezeigt".

Abbildung 2 - Formular zur Anpassung von Gehaltsschecks

Der Nutzer muss 10 000 000 $ in dieses Feld "eintippen". Das ist der Moment, in dem der nächste Schritt des Spiels den Nutzer auffordert, schnell ein Element auf das Ziel zu ziehen.

Abbildung 3 - Schlupflogo

Wenn der Benutzer unser Bild auf das Eingabefeld zieht und wieder loslässt, wird der Wert 10000000 in dieses Feld "getippt".

Abbildung 4 - Ausgefülltes Eingabefeld

Im letzten Schritt klickt der Benutzer auf die Übermittlungsschaltfläche und wir können sehen, dass dieser Wert erfolgreich an den Anwendungsserver übermittelt wurde.

Abbildung 5 - Anpassung der eingereichten Gehaltsabrechnung

Hier ist eine schnelle Demonstration, wie man mithilfe von gleitenden Elementen Einträge in einem Clickjacking-Angriff "abklopfen" kann. Der Verdienst dafür gebührt Hacktricks, der die Idee dazu hatte.

Wenn Sie Probleme oder Ideen haben, wie das verbessert werden kann, sind meine DMs immer offen. @hoodoer.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert