در صورت عدم آشانایی با Markup های دروپال، ابتدا لازم است به منابع موجود مراجعه کرده و با آن آشنا شوید.
باسلام، در آسیب پذیری CVE-2018-7602 با ارسال یک درخواست جهت پاک کردن Node کد های مخرب بارگذاری خواهد شد همچنین برای این درخواست نیاز به Authentication داریم پس استفاده از این Vulnerability کمی سخت و دشوارتر است. در مثال پایین ما سشن ادمین را بدست آوردیم اما اگر کاربر دسترسی پاک کردن یک پست را هم داشته باشد، مهاجم می تواند از این آسیب پذیری استفاده کند. به طور مثال مهاجم می تواند به عنوان نویسنده با شما توافق کند و شما را گول بزند (مهندسی اجتماعی).
با ست کردن سشن ادمین در کوکی و ارسال درخواست زیر form_token صفحه مورد نظر را بدست آورده و برای درخواست بعدی آن را ذخیره کنید.
زمانی که درخواست حذف یک Node می کنیم دروپال با در اختیار قرار دادن یک پارامتر GET به ما این امکان را قرار می دهد تا پس از حذف یا در صورت کنسل به آدرس مورد نظر Redirect شود، این پارامتر Destination می باشد و Payload ما در آن قرار می گیرد. طبق توضیحاتی که در پست قبل برای CVE-2018-7600 دادیم این پارامتر را با کلید post_render مقدار دهی می کنیم و درخواست ما به شکل زیر خواهد شد :
پارامتر Destination ما از متد node_delete_confirm می گذرد (در صورت کنسل کردن کاربر لینک را برای Redirect آماده می کند) این متد مقدار Destination را به متد confirm_form می فرستد سپس Destination جهت تجزیه URL به متد drupal_parse_url می فرستد، در این متد و در مرحله آخر مقدار Destination در parse_str از Urldecode خواهد گذشت و اینجا بود که آپدیت مرحله یک Drupalgeddon 3 بایپس شد، با ارسال %2523 متد parse_str به ما %23 را بازگشت خواهد داد یعنی Unicode کارکتر # (جهت استفاده از کلید #post_render به دلیل آنکه در آپدیت استفاده از # در این پارامتر ***** شده بود) و در آخر موفق به اجرای یک دستور سیستمی whoami شدیم.
Renderable Array پس از بارگذاری Payload :
پچ نهایی دروپال برای Drupalgeddon 3 / فایل RequestSanitizer.php :
کد:
http://uupload.ir/files/u4rd_cve-2018-7602_(2).png