AMP

یک محقق امنیتی جزئیات یک آسیب‌پذیری حیاتی را در یکی از افزونه‌های محبوب و بسیار فعال برای وردپرس [۱] افشا کرده است که می‌تواند به یک مهاجم دارای سطح اختیارات پایین اجازه دهد تا یک کد موذی را بر روی صفحات AMP مربوط به یک وب‌سایت مورد هدف تزریق کند.

افزونه وردپرس آسیب‌پذیر که در این مورد مطرح است، در حقیقت “AMP for WP – Accelerated Mobile Pages” است که به وب‌سایت‌ها این امکان را می‌دهد به‌طور خودکار صفحات موبایل تسریع شده‌ی معتبر(۱) را برای پست‌های وبلاگشان و سایر صفحات وب خود تولید کنند.

AMP یا صفحات موبایل تسریع شده، یک تکنولوژی منبع باز است که توسط گوگل طراحی شده است و وب‌سایت‌ها را قادر می‌سازد تا صفحات وب را برای بازدیدکنندگان تلفن همراه آماده‌سازی کنند[۲].

اگرچه نسخه اصلی وب‌سایت Hacker News برای کاربران دسکتاپ و دستگاه‌های تلفن همراه دارای سرعت کافی است، اما شما همچنین می‌توانید نسخه AMP این وب‌سایت را در اینجا مشاهده کنید[۳].

از میان صدها افزونه که به وب‌سایت‌های وردپرس اجازه می‌دهند صفحات AMP بهینه‌سازی شده توسط گوگل را ایجاد کنند، “AMP for WP” محبوب‌ترین افزونه در میان دیگر افزونه‌ها با بیش از ۱۰۰،۰۰۰ نصب است.

این افزونه‌ی تحت تأثیر اخیراً به دلیل وجود یک کد آسیب‌پذیر، به‌طور موقت از کتابخانه افزونه‌های وردپرس حذف شد اما نه سازنده این افزونه و نه تیم وردپرس مشکل اصلی این افزونه را توضیح ندادند.

یک محقق امنیت سایبری به نام Luka Sikic از شرکت امنیت وب WebARX نسخه افزایشی و آسیب‌پذیر این افزونه را تجزیه‌وتحلیل کرد و یک آسیب‌پذیری تزریق کد را در “AMP for WP” کشف کرد که بعدها در نسخه به‌روز شده آن وصله شد.

این آسیب‌پذیری در روشی که این افزونه مجوزها را برای حساب‌های کاربری و قلاب‌های(۲) AJAX وردپرس مدیریت می‌کند، قرار دارد.

Sikic در یک پست وبلاگ که در تاریخ ۱۵ نوامبر ۲۰۱۸ منتشر شد دراین‌باره گفته است[۴]: “آسیب‌پذیری افزونه AMP در ampforwp_save_steps_data واقع شده است که برای ذخیره تنظیمات در طول نصب فراخوانی شده است. این افزونه با عنوان قلاب آژاکس wp_ajax_ampforwp_save_installer  ثبت شده است. این آسیب‌پذیری در این افزونه خاص یک مسئله حیاتی برای وب‌سایت‌هایی است که اجازه ثبت‌نام کاربر را می‌دهند.”

در تنظیمات، این افزونه گزینه‌های مدیران وب‌سایت را برای اضافه کردن تبلیغات و کد سفارشی HTML یا JavaScript در هدر یا پاورقی صفحه AMP را ارائه می‌دهد. برای انجام این کار، این افزونه از قابلیت‌های ساخته‌شده در AJAX وردپرس در پس‌زمینه استفاده می‌کند.

ازآنجاکه هر کاربر ثبت شده در یک سایت وردپرس، حتی با کمترین سطح اختیارات، مجاز است قلاب AJAX را فراخوانی کند و همچنین ازآنجایی‌که این افزونه آسیب‌پذیر بررسی نمی‌کند که آیا حساب کاربری از قلاب‌های AJAX استفاده می‌کند یا نه، هر کاربری درون سایت می‌تواند از این تابع برای تزریق یک کد سفارشی استفاده کند.

همان‌گونه که توسط این محقق در یک ویدیو[۵] نشان داده شده است، یک کاربر با کمترین سطح اختیارات می‌تواند هر درخواستی را برای فراخوانی قلاب‌های AJAX خلق کند و می‌تواند یک کد جاوا اسکریپت موذی را بر روی سایت سابمیت کند.

این آسیب‌پذیری در آخرین نسخه AMP یعنی نسخه ۰٫۹٫۹۷٫۲۰ برای WP – Accelerated Mobile Pages موردتوجه قرار گرفته است[۶].

این محقق می‌گوید: “در نسخه به‌روز شده، این افزونه مقدار wpnonce را بررسی می‌کند که آیا کاربر وارد شده می‌تواند گزینه‌ها را مدیریت کند یا نه.”

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

تازه در اواسط ماه نوامبر ۲۰۱۸ هستیم و ضعف دیگری در یک افزونه محبوب وردپرس کشف شده است که بر روی صدها هزار وب‌سایت تأثیر گذاشته است.

فقط هفته گذشته یک آسیب‌پذیری حذف دلخواه فایل در افزونه محبوب WooCommerce افشا شد که می‌توانست به یک کاربر موذی اجازه دهد تا کنترل کامل وب‌سایت‌های بر پایه وردپرس را در اختیار گیرد[۷].

منابع

[۱] https://en.wikipedia.org/wiki/WordPress

[۲] https://www.ampproject.org

[۳] https://amp.thehackernews.com/thn/2018/11/amp-plugin-for-WordPress.html

[۴] https://www.webarxsecurity.com/amp-plugin-vulnerability

[۵] https://youtu.be/G7y4ecT_ifg

[۶] https://wordpress.org/plugins/accelerated-mobile-pages

[۷] https://apa.aut.ac.ir/?p=5624

[۸] https://thehackernews.com/2018/11/amp-plugin-for-WordPress.html


(۱) valid accelerated mobile pages
(۲) hooks