RCE im Admin-Panel der web3-Website

Dec 21 2022
Hallo Hacker… Ich hoffe, es geht allen gut. Heute werde ich Ihnen erzählen, wie ich mich in eine web3-Firma gehackt und eine Remote-Befehlsausführung in ihrem Admin-Panel erhalten habe.

Hallo Hacker…

Ich hoffe, es geht allen gut. Heute werde ich Ihnen erzählen, wie ich mich in eine web3-Firma gehackt und eine Remote-Befehlsausführung in ihrem Admin-Panel erhalten habe.

Lasst uns beginnen…

Ich habe Web3-Unternehmen gehackt und bin auf ein Unternehmen gestoßen, das seine Website im Geltungsbereich hat, aber nicht die Subdomains der Hauptdomain. Die Hauptdomäne hat keine Funktionen; Es wird nur als statische Webseite verwendet. Wenn wir auf eine Funktion klicken, wird sie zu einer Subdomain weitergeleitet, in der alle Registrierungs- und Anmeldefunktionen verfügbar sind.

Ich habe einen Fehler in der Subdomain gefunden, die aus den meisten Aktivitäten besteht. Aufgrund von Programmregeln sind Subdomains jedoch nicht im Geltungsbereich, sodass der Fehler als außerhalb des Geltungsbereichs liegend betrachtet wurde. Trotzdem zahlte mir das Unternehmen einen beträchtlichen Geldbetrag für den Fehler. Es wird keinem Programm empfohlen, Subdomänen aus dem Gültigkeitsbereich zu setzen, wenn sie mit dieser Subdomäne verknüpft sind, und die Mehrheit der Benutzeraktivitäten auf diese Subdomäne umzuleiten.

Sie haben auch das Admin-Panel in derselben Subdomain bereitgestellt.

Prozess des Testens

Lassen Sie die Website target.com sein. Da Subdomains nicht in den Geltungsbereich fallen, konzentrierte ich mich auf die Hauptwebsite, die keine Funktionen hatte, die ein gewöhnlicher Benutzer verwenden könnte. Wenn ich auf eine beliebige Registerkarte klickte, wurde ich zu einer Subdomain weitergeleitet, in der alle Funktionen verfügbar waren. Also fing ich an, auf der Subdomain zu testen.

Ich habe mit dem Port-Scannen begonnen und in den offenen Ports nichts Interessantes gefunden. Dann habe ich versucht, verschiedene Fehler wie SQL-Injection, Authentifizierungsumgehung und SSRF auszunutzen. Danach ging ich zum Verzeichnis-Fuzzing über. Ich habe verschiedene Methoden verwendet, um eine Wortliste für das Fuzzing zu sammeln, die ich im folgenden Blog erklärt habe:https:///@vamshivaran110/fuzzing-with-custom-wordlists-bb7a808d943f

Nach dem Fuzzing stieß ich auf einige interessante Verzeichnisse. Eines davon, das „/admin“-Verzeichnis, erregte meine Aufmerksamkeit, also öffnete ich es. Sie verwendeten GravCMS für die Anmeldung im Admin-Panel. Ich begann mit der Suche nach bekannten Schwachstellen in GravCMS und fand eine bekannte Schwachstelle, die zu RCE führen könnte (CVE-2021–21425).

Grav Admin Plugin ist eine HTML-Benutzeroberfläche, die Benutzern die Möglichkeit bietet, Grav zu konfigurieren und Seiten zu erstellen und zu ändern. Ein nicht authentifizierter Benutzer kann jedoch bestimmte Methoden des Administrator-Controllers ausführen, ohne dass Anmeldeinformationen erforderlich sind. Wenn diese Methoden erfolgreich ausgenutzt werden, kann dies zur Erstellung beliebiger YAML-Dateien oder zur Änderung vorhandener YAML-Dateien auf dem System führen. Diese Sicherheitsanfälligkeit kann zu Änderungen in der Konfiguration führen, z. B. Änderungen an allgemeinen Site-Informationen oder der Definition benutzerdefinierter Scheduler-Jobs. Aufgrund der Art dieser Schwachstelle kann ein Angreifer Teile einer Webseite ändern, ein Administratorkonto entführen oder Betriebssystembefehle im Kontext des Webserverbenutzers ausführen.

Ausbeutung:

  • Öffnen Sie das Zielverzeichnis unterhttps://target.xyz/admin.
  • Geben Sie zufällige Anmeldeinformationen ein und fangen Sie die Anfrage in burp ab, holen Sie sich ein Cookie und extrahieren Sie den Admin-Nonce-Wert aus dem Anmeldeformular.
  • Senden Sie die Anfrage an den Repeater und ändern Sie die Parameter wie folgt: task=SaveDefault&data[title]=PWNED&admin-nonce=(value)
  • leiten Sie die Anfrage weiter und wir können in der Antwort „200 OK“ sehen.
PWNED

Wir können die Schwachstelle auch ausnutzen, indem wir den Prozess mit dem Metasploit Framework automatisieren. Suchen Sie einfach in Metasploit nach dem Modul „GravCMS Remote Command Execution“ und stellen Sie die erforderlichen Parameter zum Exploit ein.

Danach habe ich den Bericht erstellt und mit einem ordnungsgemäßen Proof-of-Concept (POC) an das betreffende Unternehmen übermittelt. Sie waren so schlau, dass sie es einfach als „außerhalb des Geltungsbereichs“ markierten, weil es nicht die Hauptdomäne war. Welchen Sinn hat es, für eine statische Webseite „in-scope“ zu bleiben und alles in einer Subdomain zu behalten, einschließlich des Admin-Dashboards?

Nachdem sie die Wichtigkeit und die Auswirkungen des Fehlers erklärt hatten, lösten sie ihn und zahlten das Kopfgeld $$$.

Danke fürs Lesen…

Twitter: https://twitter.com/Th3Sc0rp10n

LinkedIn: https://www.linkedin.com/in/t-vamshi-2b5716165/