
간단한 Python PoC로, 조작된 SAMLResponse + RelayState 페이로드를 사용하여 Citrix NetScaler ADC/Gateway의 /cgi/logout에서 CVE-2025-12101 반사형 XSS를 확인합니다.
Citrix NetScaler ADC / Gateway 인스턴스에서 CVE-2025-12101 (/cgi/logout에서 반사 XSS)를 확인하기 위한 간단한 Python PoC입니다. 조작된 SAMLResponse + RelayState 페이로드를 사용합니다.
⚠️ 이 도구는 귀하가 소유하거나 명시적으로 테스트 승인을 받은 시스템에서만 사용하십시오.
CVE-2025-12101은 NetScaler ADC 및 NetScaler Gateway가 Gateway 또는 AAA 가상 서버로 구성될 때 영향을 미치는 반사형 크로스사이트 스크립팅 취약점입니다.
취약한 구성에서 /cgi/logout 엔드포인트는 SAML 로그아웃 응답을 처리하며, RelayState 매개변수의 공격자 제어 데이터를 적절한 인코딩 없이 반사하여 XSS가 발생할 수 있습니다.
연구 및 기술 세부 정보는 watchTowr Labs에서 제공합니다:
이 저장소는 동일한 스타일의 페이로드를 전송하고 HTTP 응답을 검사하는 최소한의 raw-TLS Python 체커를 제공합니다.
저장소를 클론하세요:
git clone https://github.com/6h4ack/CVE-2025-12101-checker.git
cd CVE-2025-12101-checker
Python 3가 설치되어 있는지 확인하세요.
메인 스크립트는 하나의 필수 매개변수 -u / --url을 허용합니다.
python3 cve-2025-12101.py -u https://www.example.com
또한 유효한 예:
python3 cve-2025-12101.py -u www.example.com
python3 cve-2025-12101.py -u http://www.example.com
URL은 내부적으로 정규화되며, 스크립트는 호스트 이름과 포트를 추출합니다(HTTPS의 경우 기본값 443, HTTP의 경우 기본값 80).
예시 (취약한 대상):
[*] 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)'
취약하지 않은 대상의 경우 다음과 같은 출력을 볼 수 있습니다:
[INFO] No XSS behaviour detected on www.example.com with this payload.
ANSI 색상을 사용하여 터미널에서 결과를 더 쉽게 확인할 수 있습니다 (취약하면 녹색, 취약하지 않거나 오류가 발생하면 빨간색).