
XSRFProbe v3.0.0
Das Prime Cross Site Request Forgery (CSRF) Audit- und Exploitation Toolkit.
XSRFProbe
Das führende Toolkit für Cross-Site-Request-Forgery-Audit und -Exploitation.
Über
XSRFProbe ist ein fortschrittliches Toolkit für Cross-Site-Request-Forgery (CSRF/XSRF) Audit und Exploitation. Ausgestattet mit einer leistungsstarken Crawling-Engine und zahlreichen systematischen Prüfungen, kann es die meisten Fälle von CSRF-Schwachstellen, deren Umgehungen erkennen und darüber hinaus für jede gefundene Schwachstelle ausnutzbare Proof-of-Concepts generieren. Weitere Informationen zur Funktionsweise von XSRFProbe finden Sie auf dem Wiki unter XSRFProbe Internals.
XSRFProbe Wiki • Getting Started • General Usage • Advanced Usage • XSRFProbe Internals • Galerie
Einige Funktionen
- Führt eine vollständige Reihe von systematischen Prüfungen durch – unterstützt von einer Response-Diffing/Benchmark-Engine – bevor ein Endpunkt als verwundbar deklariert wird.
- Erkennt und manipuliert aktiv viele Anti-CSRF-Token-Implementierungen: Wechsel der Anfragemethode, Token-Entfernung, leere/doppelte Werte, nicht-sitzungsgebundene Tokens, Double-Submit-Cookies und Custom-Header-Tokens.
- Prüft Referer- und Origin-Validierung mit realistischen Umgehungen (Header-Entfernung, Regex/Subdomain-Tricks,
Origin: null) sowie Method-Override- und Content-Type-Umgehungen. - Analysiert SameSite-Cookie-Schutzmaßnahmen, mit optionaler Subdomain-Erkennung (via crt.sh) für Tests zur Umgehung über Schwester-Domains.
- Arbeitet mit einem leistungsstarken Crawler mit deterministischem, begrenztem Crawling und Scannen (konfigurierbar über
--max-urls,--max-depthund--crawl-timeout). - Optionale Integration von Headless Firefox (Selenium) für browserabhängige Tests und automatische Validierung generierter PoCs.
- Genaue Token-Stärke-Erkennung und Analyse mittels Entropie- und Kodierungsprüfungen.
- Kann sowohl normale als auch böswillig ausnutzbare CSRF-Proof-of-Concepts generieren.
- Standardmäßige Unterstützung für benutzerdefinierte Cookie-Werte, generische Header und einen JSON-Report – jeder Fund enthält eine Schweregradbewertung und eine Ausnutzbarkeitsvoraussetzung.
- Der Benutzer hat die Kontrolle über alles, was der Scanner tut.
- Benutzerfreundliche Interaktionsumgebung mit vollständiger Verbose-Unterstützung und detaillierter Protokollierung von Fehlern, Schwachstellen und Tokens.
Durchgeführte Schwachstellentests:
Jede von XSRFProbe durchgeführte Prüfung hat eine eindeutige Kennung. Die ID wird in der Konsolenausgabe angezeigt (z. B. [T6] VULNERABLE: ...) und als test_id-Feld jedes Fundes im JSON-Report gespeichert (zusammen mit severity und, wo relevant, einem exploitability-Hinweis unter details), sodass jeder Fund auf den genauen Test zurückgeführt werden kann, der ihn erzeugt hat.
| ID | Kategorie | Prüfung |
|---|---|---|
D1 | Token-Präsenz | Kein Anti-CSRF-Token vorhanden (allgemeine Request-Fälschung) |
D2 | Token-Präsenz | Login-Formular ohne CSRF-Token (Login-CSRF) |
T2 | Token-Manipulation | Validierung an Anfragemethode gebunden (GET ↔ POST-Wechsel) |
T3 | Token-Manipulation | Token kann vollständig weggelassen werden |
T4 | Token-Manipulation | Token nicht an die Benutzersitzung gebunden (sitzungsübergreifende Wiederverwendung) |
T5 | Token-Manipulation | Token an ein nicht-sitzungsgebundenes Cookie gebunden (z. B. csrfKey) |
T6 | Token-Manipulation | Naives Double-Submit-Cookie (Cookie == Body, keine Bindung) |
T7 | Token-Manipulation | Leerer Tokenwert akzeptiert |
T8 | Token-Manipulation | Custom-Header-Token kann weggelassen oder gefälscht werden |
M1 | Methode / Content-Type | HTTP-Methoden-Override über Parameter _method |
M2 | Methode / Content-Type | HTTP-Methoden-Override über Header X-HTTP-Method-Override |
M4 | Methode / Content-Type | Umgehung der Validierung durch alternativen Content-Type |
R0 | Referer | Referer-Header bei Formularübermittlung nicht validiert |
R1 | Referer | Referer-Validierung durch Weglassen des Headers umgangen |
R2a | Referer | Referer-Regex-Umgehung – Ziel als Angreifer-Subdomain |
R2b | Referer | Referer-Regex-Umgehung – Ziel in der Abfragezeichenfolge |
R2c | Referer | Referer-Regex-Umgehung – Ziel im Pfad |
O1 | Origin | Origin-Validierung mit Origin: null umgangen |
O2 | Origin | Origin-Validierung mit einem Subdomain-Trick umgangen |
O3 | Origin | Origin-Validierung durch Weglassen des Headers umgangen |
S2 | SameSite (Browser) | SameSite=Strict-Umgehung über clientseitigen Redirect-Gadget |
S3 | SameSite (Browser) | SameSite=Strict-Umgehung über XSS auf einer Schwester-Subdomain |
S4 | SameSite (Browser) | SameSite=Lax-Umgehung über Cookie-Refresh / OAuth-Ablauf |
C1 | Cookie-Status | Analyse des Cookie-SameSite-Attributs (None/Lax/Strict) |
C2 | Cookie-Status | Kein SameSite-Attribut bei Cookies gesetzt |
E1 | Token-Stärke | Token verwendet eine schwache/strukturierte Hash-Kodierung |
A1 | Token-Stärke | Analyse der Vorhersagbarkeit/Fälschbarkeit von Tokens nach dem Scan |
S*-Prüfungen erfordern die optionale Headless-Browser-Integration (--browser).T*/M*/R*/O*sind HTTP-Ebene-Prüfungen, die durch die Response-Diffing/Benchmark-Engine gesteuert werden.
Galerie
Sehen wir uns einige reale Szenarien von XSRFProbe in Aktion an:
Installation & Verwendung
Die vollständige Nutzungsinformation finden Sie im Wiki – General Usage und Advanced Usage.
Installation über PyPI:
XSRFProbe kann einfach mit einem Befehl installiert werden:
pip install xsrfprobe
Manuelle Installation:
- Für die Grundlagen installieren Sie zuerst das Tool:
pip install .
- Nun kann das Tool gestartet werden über:
xsrfprobe --help
- Die browserabhängigen Tests (
--browser,--auto-validate-poc) erfordern zusätzlich, dass geckodriver in IhremPATHverfügbar ist (oder über--geckodriver-pathangegeben wird). - Nach dem Testen von XSRFProbe auf einer Website wird ein Ausgabeordner namens
xsrfprobe-outputin Ihrem aktuellen Arbeitsverzeichnis erstellt. In diesem Ordner können Sie die detaillierten Protokolle und während der Scans gesammelten Informationen einsehen (übergeben Sie--jsonfür einen maschinenlesbaren Report).
Version und Lizenz
XSRFProbe ist derzeit v3.0.0 und die Arbeit ist unter der GNU General Public License (GPLv3) lizenziert.
Warnungen
Verwenden Sie dieses Tool nicht auf einer Live-Seite!
Dies liegt daran, dass dieses Tool darauf ausgelegt ist, automatisch alle Arten von Formularübermittlungen durchzuführen, was die Seite beschädigen kann. Manchmal können Sie die Datenbank beschädigen und höchstwahrscheinlich auch einen DoS auf der Seite verursachen.
Testen Sie auf einer Wegwerf-/Testumgebung/-Seite!
Haftungsausschluss
Die Nutzung von XSRFProbe zum Testen von Websites ohne vorherige gegenseitige Zustimmung kann als illegale Aktivität betrachtet werden. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze einzuhalten. Der Autor übernimmt keine Haftung und ist nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Programm verursacht werden.
Worte des Autors
Dieses Projekt basiert vollständig auf meiner eigenen Forschung und meiner eigenen Erfahrung mit Webanwendungen zu Cross-Site-Request-Forgery-Angriffen. Sie können versuchen, den Quellcode durchzugehen, um zu verstehen, wie dieses Toolkit aufgebaut wurde. Nützliche Pull-Requests, Ideen und Probleme sind sehr willkommen. Wenn Sie sehen möchten, wie XSRFProbe entwickelt wird, schauen Sie sich das Development Board an.
Erstellt mit ♡ von @0xInfection