راهنمای کامل باگ هانتینگ در وردپرس (بخش دوم)
سلام بهروزم و با راهنمای کامل باگ هانتینگ در وردپرس (بخش دوم) در خدمتتون هستم.
اکسپلویت آسیبپذیریهای File Inclusion
قالبها و افزونههای وردپرس اغلب از توابع PHP مانند include
یا require
همراه با ورودی کنترلشده توسط کاربر استفاده میکنند، که این ممکن است به آسیبپذیری درج فایل محلی (Local File Inclusion — LFI) منجر شود.
نمونه پیلودها:
http://target.com/index.php?page=about.php
http://target.com/index.php?page=../../../../etc/passwd
http://target.com/wp-content/themes/twentytwenty/page.php?file=../../../../wp-config.php
http://target.com/wp-content/plugins/plugin-name/download.php?file=../../../../wp-config.php
http://target.com/wp-admin/admin.php?page=../../../../etc/passwd
http://target.com/?cat=../../../../../../etc/passwd
http://target.com/?author=../../../../../../wp-config.php
اگر ورودی بهدرستی اعتبارسنجی نشود، یک مهاجم میتواند مقدار پارامترِ about.php
و مانند آن را با یک فایل حساس (مثلاً /etc/passwd
) یا حتی با یک بارگذاری از راه دور جایگزین کند که میتواند به افشای اطلاعات یا اجرای کد از راه دور منجر شود.
برای خودکارسازی آزمونها، میتوانید پارامترها را با یک فهرست پیلودهای LFI فاززنی (fuzzing) کنید. برای مثال این مورد مناسب است.
سواستفاده از wp-cron.php
برای ایجاد اختلال (Denial of Service)
وردپرس از wp-cron.php
برای مدیریت وظایف زمانبندیشده استفاده میکند.
در حالی که بازدید معمول از این فایل معمولاً صفحهای خالی نمایش میدهد، هر درخواست موجب راهاندازی پردازشهای پسزمینه میشود.
مهاجمان میتوانند با ارسال درخواستهای خودکار از این رفتار سوءاستفاده کرده و سرور را بارگذاری بیشازحد کنند که منجر به ایجاد اختلال در سرویس (DoS) میشود.
./doser -t 100000 -g "https://target.com/wp-cron.php"
اگر با حدود ۱۰۰٬۰۰۰ درخواست نقطه پایانی را flood کنید و پس از بارگذاری مجدد صفحه سایت با خطای داخلی سرور ۵۰۰ (500 Internal Server Error) مواجه شود، مشکل اختلال سرویس (DoS) تأیید شده است.
این لینک می تواند برای کار شما مفید باشد.
فایل لاگ دیباگ وردپرس در معرض دسترسی
اگر WP_DEBUG
و WP_DEBUG_LOG
فعال باشند، وردپرس ممکن است یک فایل لاگ دیباگ ایجاد کند که بهصورت عمومی قابل دسترسی باشد.
این فایل میتواند اطلاعات حساس مانند خطاها، مسیرهای فایل و اطلاعات پایگاهداده را فاش کند.
مثال:
https://target.com/wp-content/debug.log
دیدن این آدرس ممکن است جزئیات داخلی را فاش کند که مهاجمان میتوانند برای اکسپلویتهای بیشتر از آن استفاده کنند.
اسکریپت نصب وردپرس
فایل install.php
برای راهاندازی وردپرس در زمان نصب اولیه استفاده میشود.
اگر این فایل روی یک سایت فعال (live) قابل دسترسی باشد، میتواند نشاندهنده پیکربندی نادرست سایت باشد یا ممکن است به مهاجم اجازه دهد که سایت را دوباره نصب یا بازنویسی (reinstall/overwrite) کند.
مثال:
https://target.com/wp-admin/install.php
بازدید از این آدرس در یک سایت فعال ممکن است صفحه نصب را نشان دهد یا به مهاجم اجازه دهد فرایند نصب را دستکاری کند.
پیشگیری:
-
پس از نصب، فایل
install.php
را حذف کنید یا دسترسی به آن را محدود نمایید. -
از مجوزهای فایل (file permissions) مناسب استفاده کنید تا از دسترسی غیرمجاز جلوگیری شود.
SSRF در وردپرس
وردپرس برخی نقاطپایانی (endpoints) را در معرض قرار میدهد که مهاجمان میتوانند از آنها برای جعل درخواست سمت سرور (Server‑Side Request Forgery — SSRF) سوءاستفاده کنند.
یک مثال رایج، API پراکسی oEmbed است که URLهای خارجی را واکشی میکند و میتواند برای وادار کردن سرور به ارسال درخواستها مورد بهرهبرداری قرار گیرد.
https://target.com/wp-json/oembed/1.0/proxy?url=attacker-controlled-url
تأثیر:
-
پیمایش/اسکن شبکه داخلی.
-
دسترسی به نقاطپایانیِ متادیتا در سرویسهای ابری (مثلاً AWS، GCP).
-
افشای دادههای حساس از سرویسهای داخلی.
ربایش زیردامنه وردپرس (WordPress Subdomain Takeover)
گاهی زیردامنههای وردپرس (مثل blog.target.com
یا shop.target.com
) هنوز به سرویسهای قدیمیای مانند میزبانی WordPress.com، GitHub Pages یا پلتفرمهای SaaS رهاشده اشاره میکنند.
اگر رکورد DNS وجود داشته باشد اما سرویس متصل دیگر ادعا (claim) نشده باشد، مهاجمان میتوانند آن منبع را ثبت کرده و کنترل زیردامنه را بهدست بگیرند که میتواند منجر به تغییر ظاهر سایت (defacement)، فیشینگ یا بهرهبرداریهای بیشتر شود.
میتوانید تشخیص را با Nuclei و استفاده از این قالب به صورت اتوماتیک انجام دهید.
directory listing فعال است
اگر directory listing بهدرستی غیرفعال نشده باشد، مهاجمان میتوانند بهصورت آزادانه دایرکتوریهای سایت را مرور کرده و به فایلهایی دسترسی پیدا کنند که هرگز برای عموم در نظر گرفته نشدهاند.
این میتواند منجر به افشای اطلاعات حساس مانند نسخههای پشتیبان، فایلهای پیکربندی، لاگها یا حتی کد منبع شود.
بهعنوان مثال، در برخی موارد، بازدید از مسیرهای مشخص میتواند فایلهای حساس یا حتی کل دایرکتوریها را در صورتی که فهرستبرداری فعال باشد، افشا کند:
https://target.com/wp-content/uploads/
https://target.com/wp-content/plugins/
https://target.com/wp-content/themes/
https://target.com/wp-includes/
https://target.com/wp-content/backup/
https://target.com/wp-admin/backup/
https://target.com/wp-includes/fonts/
همیشه بررسی کنید که آیا /wp-content/
، /wp-includes/
یا سایر پوشههای سفارشی بهصورت عمومی در دسترس هستند یا خیر، چون ممکن است بهطور ناخواسته اطلاعات حساس را فاش کنند.
برگه یادداشت (Cheat Sheet) گوگل دورک برای وردپرس
گوگلدورکها عبارتاند از پرسوجوهای ویژه جستجو که به کشف فایلهای حساس، پیکربندیهای نادرست و آسیبپذیریها در سایتهای وردپرس از طریق جستجوی گوگل کمک میکنند. در اینجا چند دورک که میتوانید استفاده کنید آمده است:
CVEهای معروف و با تأثیر بالا در وردپرس
در طول سالها، وردپرس و افزونهها/قالبهای آن هدف برخی از بحرانیترین آسیبپذیریها قرار گرفتهاند.
میتوانید CVEها را در پایگاه داده آسیبپذیری رسمی WPScan بررسی کنید.
پیشگیری و کاهش ریسک
امنیت وردپرس تنها به پیدا کردن باگها محدود نمیشود، بلکه شامل جلوگیری از سوءاستفاده از آنها نیز هست. مراحل کلیدی برای افزایش امنیت نصب وردپرس عبارتاند از:
-
بهروزرسانی وردپرس، افزونهها و قالبها
بهروزرسانی منظم باعث کاهش احتمال سوءاستفاده از CVEهای شناختهشده و حملات صفر روزه میشود. -
حذف افزونهها و قالبهای بلااستفاده
هر افزونه یک سطح حمله اضافی ایجاد میکند. آنهایی را که استفاده نمیکنید حذف کنید. -
محدود کردن دسترسی به فایلها و نقاطپایانی حساس
دسترسی عمومی به/wp-config.php
،.env
،.htaccess
،/xmlrpc.php
،/wp-admin/
و/wp-cron.php
را مسدود کنید مگر در مواقع ضروری. -
اجرای احراز هویت قوی
از رمزهای عبور قوی و یکتا استفاده کنید و احراز هویت دو مرحلهای (2FA) را برای تمامی حسابهای ادمین فعال کنید. -
محدودیت نرخ درخواستها و WAF
با استفاده از قوانین محدودسازی نرخ درخواست یا فایروال برنامههای وب (مانند Cloudflare، ModSecurity) از حملات Brute Force، سوءاستفاده از XML-RPC و DoS جلوگیری کنید. -
امنسازی نسخههای پشتیبان
مطمئن شوید که نسخههای پشتیبان خارج از ریشه وب ذخیره شده و بهصورت عمومی قابل دسترسی نیستند (مانند جلوگیری از نشت/backup.zip
). -
بررسی زیردامنه و DNS
رکوردهای DNS را بهطور منظم بررسی کنید تا از خطرات ربایش زیردامنه جلوگیری شود.
نتیجهگیری
شکار باگ در وردپرس یک منبع طلایی برای پژوهشگران امنیت است. با میلیونها وبسایت که از افزونهها و قالبهای آسیبپذیر استفاده میکنند، فرصتها بیپایان است.
چه تازهکار باشید و چه یک شکارچی باگ هانتر باتجربه، تسلط بر آسیبپذیریهای وردپرس میتواند درهای درآمد بالاتر و مهارتهای امنیتی قویتر را به روی شما باز کند.
راستی اگر به امنیت وردپرس علاقه داری و دوست داری با ایمن کردن سایتهای وردپرسی کسب درامد کنی این دوره مناسب شماست.
“راهنمای کامل باگ هانتینگ در وردپرس (بخش دوم)”