Zuschreibung: Umgehung der Authentifizierung durch Offenlegung von Informationen @ PortSwigger Academy
Dieser Artikel für das Lab Authentifizierungsumgehung durch Offenlegung von Informationen ist Teil meiner Walkthrough-Serie für die Web Security Academy von PortSwigger .
Lernpfad : Serverseitige Themen → Offenlegung von Informationen
Python-Skript: script.py
Beschreibung des Labors
Schritte
Analyse
Die Laboranwendung ist eine Shop-Website mit sehr interessanten Produkten. Wie üblich ist der erste Schritt die Überprüfung der Website.
Nachdem Sie ein wenig herumgeblättert und sich mit den bekannten Anmeldeinformationen angemeldet haben, wird nichts allzu Interessantes angezeigt. Zeit, die Anfragen in Burp zu überprüfen. Da ist auch nichts Interessantes.
Der Admin-Endpunkt wurde in einigen vorherigen Labs unter gefunden /admin
. Aber um zu vermeiden, dieses Wissen zu nutzen, kann ich mehrere Mittel zur Inhaltserkennung verwenden. Burp Professional verfügt über eine solche Funktionalität, und mehrere gute kostenlose Tools ermöglichen auch das Auffinden von Inhalten.
Die, die ich hier verwende, ist ffuf zusammen mit den großartigen Wortlisten, die von SecLists bereitgestellt werden :
Besuch des Endpunkts
Ich besuche diese Seite, um diese Nachricht zu erhalten:
Es werden keine weiteren Informationen gegeben.
Eine gängige Methode zur Weitergabe von Ursprungs-IPs an einen Webserver (wird in Proxy- oder Lastausgleichsszenarien verwendet) ist der X-Forwarded-For
Header. Dies funktioniert hier jedoch nicht (und die Laborbeschreibung besagt, dass es sich sowieso um einen benutzerdefinierten Header handelt).
Zwei HTTP-Verben können verwendet werden, um zusätzliche Informationen zu erhalten, OPTIONS
und TRACE
. Letzteres führt zu einem interessanten Ergebnis:
Geben Sie einen benutzerdefinierten Header an
Jetzt, da ich den Header kenne, wird der Zugriff auf die Admin-Oberfläche einfach. Ich muss sicherstellen, dass der benutzerdefinierte Header mit jeder Anfrage gesendet wird, also füge ich eine Match and Replace
Regel hinzu, um diesen neuen Header immer zu Anfragen hinzuzufügen.
Ich verwende 127.0.0.1
als Inhalt, um der Anwendung vorzutäuschen, dass die Anfrage von stammt localhost
.
Laden Sie jetzt einfach die Seite im Browser neu, greifen Sie auf das Admin-Panel zu und löschen Sie den Benutzer carlos
, um das Lab zu lösen:
Ursprünglich veröffentlicht auf https://github.com .
New to Medium? Become a Medium member to access all stories on the platform and support me at no extra cost for you!