IDOR – Im Sitzungsspeicher

Feb 03 2023
Zusammenfassung IDOR steht für Insecure Direct Object Reference, eine Schwachstelle, die in die Kategorie der fehlerhaften Zugriffskontrolle fällt. Kurz gesagt entsteht diese Sicherheitslücke, wenn eine Anwendung Benutzereingaben verwendet, um direkt auf ein Objekt zuzugreifen.

Zusammenfassung

IDOR steht für „Insecure Direct Object Reference“, eine Schwachstelle, die in die Kategorie der fehlerhaften Zugriffskontrolle fällt. Kurz gesagt entsteht diese Sicherheitslücke, wenn eine Anwendung Benutzereingaben verwendet, um direkt auf ein Objekt zuzugreifen. Durch die Verwendung einer Schwachstelle mit unsicheren direkten Objektreferenzen ist es möglich, eine horizontale Rechteausweitung zu erreichen, und in einigen Fällen kann dies auch zu einer vertikalen Rechteausweitung führen.

Beschreibung

Ich habe diese Sicherheitslücke in einem der privaten Programme gefunden, die doppelt vorhanden waren. Die Anwendung speicherte die Benutzer-ID im Sitzungsspeicher der Anwendung und diese Benutzer-ID war an das Benutzerkonto gebunden. Es handelte sich um einen sehr einfachen und unkomplizierten Fehler, bei dem keine Zugriffskontrollprüfung für die Benutzer-ID des Benutzerkontos durchgeführt wurde. Eine einfache Änderung des Werts führte zu einer horizontalen Rechteausweitung. Ich konnte das Konto eines anderen Benutzers verwenden und dort die verfügbaren Mittel manipulieren.

Was ist Sitzungsspeicher?

Sitzungsspeicher ist eine Webspeicher-API, die es ermöglicht, Daten für eine einzelne Sitzung in einem Webbrowser zu speichern. Die Sitzungsspeicherung ähnelt der lokalen Speicherung, der einzige Unterschied besteht jedoch darin, dass die Daten gelöscht werden, wenn der Browser geschlossen oder die jeweilige Sitzung beendet wird.

Sitzungsspeicher können zum Speichern von Benutzerdaten, wie z. B. Formulardaten, während der Sitzung eines Benutzers verwendet werden, wodurch das Benutzererlebnis verbessert wird, indem die Notwendigkeit reduziert wird, Anfragen an einen Server zu senden.

Anatomie von IDORs und Sitzungsspeicher

Im Gegensatz zu normalen IDORs sind die IDORs mit Sitzungsspeicher unterschiedlicher Natur, da sie zeitweise keine dauerhaften Änderungen vornehmen, der Schweregrad jedoch immer noch derselbe ist.

Anatomie

Normale IDORs

Bei normalem IDOR-Verhalten können Sie die Profileinstellungen des Opfers dauerhaft ändern, es sei denn, das Opfer besucht sein Profil und macht die Änderung rückgängig.

IDORs in sessionStorage

Bei dieser Art von IDORs werden die Änderungen nicht dauerhaft vorgenommen, da der Angriff über sessionStorage ausgeführt wird. Sobald der Browser geschlossen wird oder die jeweilige Sitzung endet, werden die von Ihnen vorgenommenen Änderungen (z. B. horizontale Rechteausweitung) aufgrund der Beschaffenheit von sessionStorage rückgängig gemacht.

Wie habe ich diese Sicherheitslücke gefunden?

  1. Ich bin zur Zielwebsite gegangen, wo Sie den Saldo sehen können (rechte Seite)
  2. Zielwebsite
Prüfen
Sitzungsspeicher

3. Dann habe ich die Benutzer-ID in die Benutzer-ID des Opfers geändert und die Seite neu geladen

Benutzer-ID ändern
Seite neu laden

4. Ich habe das Konto des Opfers eingegeben

Konto des Opfers

Warum ist das passiert?

Meiner Meinung nach,

Dies geschah, weil die Benutzer-ID an das Konto des Benutzers gebunden war und keine Zugriffsprüfung durchgeführt wurde, was zu dieser Sicherheitslücke führte.

Auswirkung

Jeder Benutzer kann auf die Konten eines anderen Benutzers zugreifen, was zu einer horizontalen Rechteausweitung und in manchen Fällen auch zu einer vertikalen Rechteausweitung führen kann.

Berechnetes CVSS

Vektorzeichenfolge: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L

Punktzahl: 8,3 (Hoch)

Schadensbegrenzung

Es sollte eine Zugriffsprüfung durchgeführt und eine Überprüfung aller referenzierten Objekte durchgeführt werden. Außerdem sollte eine Authentifizierungs- und Berechtigungsprüfung durchgeführt werden. Darüber hinaus sollten die IDs alphanumerisch sein, um ein Erraten zu verhindern.