#XMLRPC #Wordpress Attacks
در خصوص سرویس #XMLRPC قبلا صحبت ها زیاد کردیم اما جالبه که بدونید در ساختار آرایه های XML بیس تنها احراز هویت نمیتوان انجام داد بلکه حملات DOS و DdoS هم میتوان پیاده سازی کرد به واسطه تکنیک هایی مانند Bilion laughs Attack که به بمب XML معروف هستش, نحوه عملکرد این سبک آسیب پذیری ها به این گونه هستش که ارجای متعدد به متغییر های Invalid صورت میگیره و سرور درگیر پردازش آنها شده و دیگه منابعه سخت افزاری برای خود CMS وجود نخواهد داشت و به همین واسطه عملا از کار می افتد,

چندی پیش از این دست حملات به سایت unk9vvn.com صورت گرفت که با Limitation کردن پالیسی های سرویس XMLRPC خنثی شد, نتیجه آنکه Content های XML بیس میتواند بستر خوبی برای همه نوع حمله باشد از XXE گرفته تا Bilion laughs attack و Bruteforce, این سرویس را کاملا ایمن سازی کنید اگر از CMS محبوب Wordpress استفاده میکنید...

https://gist.githubusercontent.com/filmgirl/db07f49437580e27ae26/raw/7e7d3997fc03ba88376e8c3a791234833351747d/Test
https://en.wikipedia.org/wiki/Billion_laughs_attack
@Unk9vvN
#WordPress 5.4 to 5.8 - #Data_Exposure via #REST_API
یکی از Scope های محبوب شکارچیان باگ وب، سرویس های API هستش مثلا اخیرا روی وبسرویس های مایکروسافتی چندین آسیب پذیری که بروی Functionality های API بوده رخ داده،

از این روی دیگر وبسرویس های رایگانی که بصورت متن باز هستند هم میتونند دارای آسیب پذیری های متعددی در قسمت Backend پردازش Functionality های خود باشند،

همونطور که در تصویر میبینید یکی از توابع وبسرویس REST API که بر روی CMS مشهور Wordpress فعال هستش دارای آسیب پذیری Data Exposure یا بستر قرار داشتن داده ها هستش،

این آسیب پذیری که بر روی تابع ()json_wp_die_handler_ هستش مامور پاسخ به Request های Json Padding یا JSONP است و نتیجتا کنترلی بر callback این درخواست ها نبوده و باعث Leakage اطلاعات حساس میشود.

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-39200
https://github.com/WordPress/wordpress-develop/commit/ca4765c62c65acb732b574a6761bf5fd84595706
@Unk9vvN
#Hardening for Defense #BruteForce Attack (#Wordpress)
گاهی اوقات مسیری که مهاجمان برای حمله به یک وبسایت میروند قابل پیش بینی است برای کسانی که خودشان فعالین حوزه امنیت تهاجمی هستند،

از این روی روش هایی برای سخت کردن حملات رایجی مانند Brute Force میتواند اتخاذ شود، جدای از بحث پایین آوردن Permission نقاط ارتباطی ماشین به ماشین یعنی xmlrpc.php و قرار دادن مثلا Recaptcha گوگل بر روی فرم ها و صفحات ورود،

موردی که میتواند بسیار موثر باشد این است که شما نام کاربری اصلی و لقب حساب های سطح دسترسی ادمین رو تغییر داده و چیزی به دور از نامی که میتوان براحتی حدس زد قرار دهید، در عین حال RSS مربوط به مقالات خودتون رو هم یا محدود یا اشتباه درج نمایید،

اقدامات بالا نتیجه اسکن ابزارهایی مانند WPScan آن چیزی میشود که شما میخواهید و مهاجمان احساس میکنند نام کاربری ادمین شما را استخراج کرده اند، از طرفی به WAF خود اعلام میکنید که هرکسی به محض استفاده از نام کاربری مثلا admin که در تصویر دوم مشاهده میکنید، آنرا مسدود کند.

@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
#Wordpress #Object_Injection (CVE-2022-21663)
استفاده نا صحیح از ()unserialize@ بجای ()maybe_unserialize در نقطه انتهایی wp-admin/options.php و در پارامتر active_plugins که مقدارش بصورت Serialize در پایگاه داده ذخیره میشه، موجب شده تا آسیب پذیری Object Injection رخ بده..

موضوعی که میتونه جالب باشه اینه که عملکرد تابع ()maybe_unserialize اینطوره که اگر مقدار ورودی Object یا Array و یا Serialize باشه، میاد اون رو Double Serialize میکنه که به نوعی اثر تخریبی مقادیر داخلش رو دفع کنه،

حالا برای دور زدن میبایست توجه به این نکته کنیم که در PHP نسخه 7.4 به قبل نشانگر C در مقادیر Serialize معرف Class بوده که در تابع ()unserialize پشتیبانی میشه،

همچنین در switch های تابع ()maybe_unserialize ذکر نشده که اگر نوع داده Object و نشانگر اون C بود بیا و عملیات Double Serialize رو انجام بده، همین موضوع باعث میشه که مهاجم در طراحی POP Chain Gadget خودش، نوع Object رو با نشانگر C قرار بده و تابع ()maybe_unserialize رو دور بزنه.

@Unk9vvN
#Wordpress Core #Unauthenticated Blind #SSRF
اخیرا تحقیقاتی منتشر شده از Simon Scannell و Thomas Chauchefoin که میپردازد به یک آسیب پذیری در هسته سیستم مدیریت محتوای وردپرس که از نوع Blind SSRF بوده و بصورت Unauthenticated امکان Trigger شدن رو میده البته بواسطه تکنیک DNS Rebinding.

این آسیب پذیری در ویژگی pingback در API نقطه انتهایی XML-RPC هستش، محقق مطرح میکنه که در جریان عملیاتی کردن این روش pingback.ping، امکان اینکه دو مقدار یا value برای این Method تعریف بشه وجود داره.

نکته دیگر اینکه کد Backend، یک Handle کننده درخواست های pingback، وجود داره که دارای یک ویژگی از PHP است با نام Requests_Transport_cURL این ویژگی برای کتابخونه Requests استفاده شده و بواسطه Requests_Transport_fsockopen درخواست pingback رو Handle میکنه.

مهاجم بواسطه Validate اشتباه در جریان دریافت مقادیر، این امکان رو پیدا کرده تا با پیاده سازی وضعیت رقابتی، درخواست های متعدد خودش رو مبنی بر مجبور کردن ارسال یک درخواست جعلی، از سرور قربانی به DNS Server خودش رو پیاده سازی کنه (Race Condition) که به عبارتی یک SSRF میزنه.

@Unk9vvN