
Das Prime Cross Site Request Forgery (CSRF) Audit- und Exploitation Toolkit.
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
Origin: null) sowie Method-Override- und Content-Type-Umgehungen.--max-urls, --max-depth und --crawl-timeout).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.
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.
Sehen wir uns einige reale Szenarien von XSRFProbe in Aktion an:
Die vollständige Nutzungsinformation finden Sie im Wiki – General Usage und Advanced Usage.
XSRFProbe kann einfach mit einem Befehl installiert werden:
pip install xsrfprobe
pip install .
xsrfprobe --help
--browser, --auto-validate-poc) erfordern zusätzlich, dass geckodriver in Ihrem PATH verfügbar ist (oder über --geckodriver-path angegeben wird).xsrfprobe-output in Ihrem aktuellen Arbeitsverzeichnis erstellt. In diesem Ordner können Sie die detaillierten Protokolle und während der Scans gesammelten Informationen einsehen (übergeben Sie --json für einen maschinenlesbaren Report).XSRFProbe ist derzeit v3.0.0 und die Arbeit ist unter der GNU General Public License (GPLv3) lizenziert.
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!
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.
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
| 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 |