用途
该技能用于对 WordPress 安装进行全面的安全评估,包括用户、主题与插件的枚举,漏洞扫描,凭据攻击和利用技术。WordPress 承载约 35% 的网站,因此是安全测试的重要目标。
前置条件
所需工具:WPScan(Kali Linux 预装)、Metasploit Framework、Burp Suite 或 OWASP ZAP、用于初始发现的 Nmap、cURL 或 wget。
所需知识:WordPress 架构与结构、Web 应用测试基础、HTTP 协议理解、常见 Web 漏洞(OWASP Top 10)。
输出与交付物
- WordPress 枚举报告:版本、主题、插件、用户
- 漏洞评估:已识别的 CVE 与错误配置
- 凭据评估:弱密码发现
- 利用证明:Shell 访问的文档记录
核心工作流
阶段 1:WordPress 发现
通过 cURL 检查 WordPress 标识(wordpress、wp-content、wp-includes 关键字)与常见路径(/wp-login.php、/wp-admin/、/wp-content/、/xmlrpc.php),检查 meta generator 标签;也可使用 Nmap 脚本 http-wordpress-enum 进行检测。
关键文件与目录:/wp-admin/(管理面板)、/wp-login.php(登录页)、/wp-content/(主题、插件、上传)、/wp-includes/(核心文件)、/xmlrpc.php(XML-RPC 接口)、/wp-config.php(配置文件,安全配置下不可访问)、/readme.html(版本信息)。
阶段 2:WPScan 基础枚举
支持基础扫描、带 API token 扫描、激进检测模式、输出到文件、JSON 输出与详细输出。
阶段 3:版本检测
可通过 WPScan、readme.html、RSS/Atom 订阅源、meta generator、JavaScript/CSS 文件版本号等来源识别版本。
阶段 4:主题枚举
WPScan 支持枚举全部主题(-e at)与仅漏洞主题(-e vt);也可手动抓取 wp-content/themes/ 路径,并通过 style.css、readme.txt 检查版本,用 searchsploit 搜索主题漏洞利用。
阶段 5:插件枚举
支持枚举全部插件(-e ap)、仅漏洞插件(-e vp),以及激进和混合检测模式;可手动发现 wp-content/plugins/ 路径,用 searchsploit 搜索插件漏洞利用,并检查 readme.txt 获取版本。
阶段 6:用户枚举
WPScan 用户枚举(-e u)、指定数量枚举(-e u1-100)、作者 ID 枚举(?author=)、JSON API 与 REST API 用户枚举、登录错误枚举。
阶段 7:综合枚举
组合枚举标志:at(全部主题)、vt(漏洞主题)、ap(全部插件)、vp(漏洞插件)、u(用户 1-10)、cb(配置备份)、dbe(数据库导出)。支持全激进枚举。
阶段 8:密码攻击
支持单用户与多用户爆破、密码攻击线程、XML-RPC 爆破(更快,可能绕过防护)、限速爆破,以及用 cewl 生成针对性字典。攻击方法包括 wp-login(标准登录表单)、xmlrpc、xmlrpc-multicall(每请求多个密码)。
阶段 9:漏洞利用
凭据获取后可使用 Metasploit 的 wp_admin_shell_upload 模块上传 Shell;可利用 Slideshow Gallery 等插件漏洞;也可手动利用主题/插件编辑器注入 PHP 反弹 Shell,或制作并上传恶意插件获得 webshell。
阶段 10:高级技巧
XML-RPC 利用(检查启用状态、列出可用方法、通过 multicall 爆破)、通过代理扫描(Tor、HTTP 代理、Burp Suite 代理)、HTTP 基本认证与强制 SSL/TLS。
快速参考
枚举标志:-e at 全部主题、-e vt 漏洞主题、-e ap 全部插件、-e vp 漏洞插件、-e u 用户、-e cb 配置备份、-e dbe 数据库导出。
常见路径:/wp-admin/、/wp-login.php、/wp-content/uploads/、/wp-includes/、/xmlrpc.php、/wp-json/。
约束与限制
法律考量:测试前必须获得书面授权、保持在既定范围内、记录所有测试活动、遵循负责任披露。
技术限制:WAF 可能阻止扫描;速率限制可能阻止爆破;部分插件可能存在误报;XML-RPC 可能被禁用。
检测规避:使用随机 User-Agent(--random-user-agent)、限速请求(--throttle 1000)、代理轮换、在受监控站点避免激进模式。
故障排查
WPScan 未显示漏洞:使用 API token 获取漏洞数据库、尝试激进检测模式、检查 WAF 是否阻止扫描、确认确实安装了 WordPress。
爆破被阻止:改用 XML-RPC 方法、添加限速(--throttle 500)、更换 User-Agent、检查 IP 封禁/fail2ban。
无法访问管理面板:确认凭据正确、检查双因素认证、检查 IP 白名单限制、检查登录 URL 是否被更改(安全插件)。