
Einfacher Python PoC zur Überprüfung von Citrix NetScaler ADC/Gateway auf reflektiertes XSS (CVE-2025-12101) auf /cgi/logout unter Verwendung eines manipulierten SAMLResponse + RelayState Payloads
Einfacher Python Proof of Concept zum Überprüfen von Citrix NetScaler ADC / Gateway-Instanzen auf CVE-2025-12101 (reflektierte XSS auf /cgi/logout) mittels eines manipulierten SAMLResponse- + RelayState-Payloads.
⚠️ Verwenden Sie dieses Tool nur auf Systemen, die Ihnen gehören oder für die Sie ausdrücklich autorisiert wurden, Tests durchzuführen.
CVE-2025-12101 ist eine reflektierte Cross-Site-Scripting-Schwachstelle, die NetScaler ADC und NetScaler Gateway betrifft, wenn diese als Gateway oder AAA-Virtual-Server konfiguriert sind.
In anfälligen Konfigurationen verarbeitet der Endpunkt /cgi/logout SAML-Logout-Antworten und spiegelt möglicherweise vom Angreifer kontrollierte Daten aus dem Parameter RelayState ohne ordnungsgemäße Kodierung wider, was zu XSS führt.
Forschung und technische Details stammen von watchTowr Labs:
Dieses Repository bietet einen minimalen raw-TLS Python-Checker, der denselben Payload-Stil sendet und die HTTP-Antwort inspiziert.
Klonen Sie das Repository:
git clone https://github.com/6h4ack/CVE-2025-12101-checker.git
cd CVE-2025-12101-checker
Stellen Sie sicher, dass Python 3 installiert ist.
Das Hauptskript akzeptiert einen einzigen erforderlichen Parameter: -u / --url.
python3 cve-2025-12101.py -u https://www.example.com
Ebenfalls gültig:
python3 cve-2025-12101.py -u www.example.com
python3 cve-2025-12101.py -u http://www.example.com
Die URL wird intern normalisiert; das Skript extrahiert den Hostnamen und den Port (standardmäßig 443 für HTTPS und 80 für HTTP).
Beispiel (für ein anfälliges Ziel):
[*] Testing target: www.example.com:443
===== RAW HTTP RESPONSE BEGIN =====
HTTP/1.1 302 Object Moved
Content-Type: text/html
...
<script>alert(1)</script>
...
===== RAW HTTP RESPONSE END =====
[+] HTTP status code: 302
[+] Payload '<script>alert(1)</script>' reflected: True
[VULNERABLE] XSS confirmed on www.example.com with payload '<script>alert(1)</script)'
Für ein nicht anfälliges Ziel sehen Sie etwa Folgendes:
[INFO] No XSS behaviour detected on www.example.com with this payload.
ANSI-Farben werden verwendet, um das Ergebnis im Terminal besser sichtbar zu machen (grün für anfällig, rot für nicht anfällig / Fehlerzustände).