#Apache Struts #RCE #CVE-2017-5638
در بسیاری از تست های بلک باکس محصولات وب بیس یک نقطه ضعف خود نمایی میکند, آن نقطه ضعف عدم پیلود ریزی پیشرفته بصورت هوشمند است, یعنی معمولا برای یک #RCE ما از پیلودهای پیشفرض استفاده میکنیم برای مثال بر روی آسیب پذیری که پردازش Content-Type رخ داده پیلود مورد نظر اول مقدار multipart/form-data ارسال میکنه تا به محل پردازشی این نوع داده برسه , در مرحله بعد یک متغیر با نام dm ساخته و بواسطه اون فراخوانی میشه

@ofnl.OgnlContext@DEFAULT_MEMBER_ACCESS

در این قسمت با استفاده از فریمورک OGNL در پلتفرم Struts 2 یک دسترسی کاربر شرط شده که اگر بود یک Context ایجاد شده و بواسطه اون متغیری با نام ognlUtil پروسه initial کردن خود رو پش برده تا به پارامتر cmd رسیده و دستور مورد نظر اینجا برای پارس شدن ارسال خواهد شد,

در ادامه پیلود با استفاده از

@java.lang.System@getProperty.(os.name)

اقدام به تشخیص سیستم عامل میکنه و طبق Result که دریافت میکنه میاد مشخص کنه که کدام یک از Syntax خط فرمان رو اجرا خواهد کرد,

https://commons.apache.org/proper/commons-ognl/
@Unk9vvN