#Spring4Shell #CVE-2022-22963
چند وقتی هستش که یک آسیب پذیری از Spring Framework منتشر شده که مبتنی بر Java 8 و بر بستر Tomcat میتوانه مورد بهره برداری قرار بگیره،

این آسیب پذیری مبتنی بر deserialization نا امن مقادیر String بوده و این عملکرد نا امن بر بستر PostMappning@ رخ خواهد داد و چون مقادیر دریافتی Request بصورت POJO یا Plain Old Java Object پارس میشه و با استفاده از Setter تنظیم میشه، میتوانه خطر آفرین باشه.

حال اگر مقدار پارامتر دریافتی که بصورت POJO پارس شده، فراخوان یک کلاس باشه، اینجا امکان پیاده سازی یک زنجیره فراخوانی و تنظیم میتونه اتفاق بی افته و مقادیر فراخوانی موجبات write یک payload در یک فایل jsp رو فراهم بکنه، برای مثال:

http://localhost/spring4shell?class.module.classLoader.resources.context.parent.pipeline.first.pattern=test

حالا در جریان ترسیم یک زنجیره حمله، اول میتونه یه پیلود RCE تنظیم بشه و در ادامه فایل فرمت jsp به عنوان suffix و همینطور یه directory و prefix که میبایست shell قرار بگیره و نهایتا مقدار fileDateFormat که میبایست خالی قرار بگیره...

POC
@Unk9vvN