当前位置:当前位置:首页 > 知识 > wordpress漏洞复现 正文

wordpress漏洞复现

[知识] 时间:2026-10-17 04:29:17 来源:力不从心网 作者:热点 点击:149次

WordPress 的洞复漏洞复现,最常被拿来做文章的洞复就是插件漏洞。核心原因不复杂:核心程序更新勤快,洞复插件可不一定。洞复去年我帮朋友处理一个被挂马的洞复站,查到最后就是洞复某个停更两年的 SEO 插件留了个任意文件上传的口子。攻击者传了个 php 小马,洞复然后整站目录都被翻了个遍。洞复

复现这类漏洞,洞复第一步不是洞复急着找 payload,而是洞复先把环境搭对。别用生产环境,洞复本地 Docker 起一个 WordPress 就行。洞复版本要卡准,洞复比如你想复现的洞复是某个插件 2.3.1 的 SQL 注入,那就得把插件版本锁死在 2.3.1,WordPress 核心版本倒不用太纠结,一般兼容范围内都行。数据库用默认的 MySQL 5.7 或 8.0 都能跑,但注意有些老插件在 PHP 8 下会直接报错,所以 PHP 版本建议降到 7.4。

环境好了,接下来是找入口点。插件漏洞通常藏在 AJAX action 里,或者 shortcode 渲染函数中。比如有个著名的漏洞是 wp_ajax_nopriv_ 钩子没做权限校验,导致未登录用户也能触发。复现的时候,打开浏览器开发者工具,看那个插件的 JS 文件里请求了哪个 admin-ajax.php?action=xxx,然后直接构造请求就行。

举个具体例子。某表单插件在处理文件上传时,只检查了 MIME 类型,没检查扩展名。你抓包把 filename="test.php" 改成 test.php.jpg,再配合 Content-Type: image/jpeg,服务器就存成了 test.php.jpg。但 Apache 有个多扩展名解析特性,.php.jpg 在某些配置下会当成 PHP 执行。这时候你访问 /wp-content/uploads/2024/06/test.php.jpg,如果返回 200 并且输出了 phpinfo(),那就成了。

不过现实往往没那么顺。很多站会装 Wordfence 或者 ModSecurity,你的请求可能直接被拦。复现时建议先把这些安全插件禁用,不然你连第一步都走不通。另外,记得把 WP_DEBUG 打开,报错信息能帮你快速定位问题。我见过有人复现失败,折腾半天才发现是 open_basedir 限制导致文件写不进去。

还有一种常见的是权限提升漏洞。订阅者用户通过某个插件的漏洞,能把自己的角色改成管理员。复现步骤也简单:先用订阅者账号登录,拿到 nonce,然后构造请求去调用插件的 update_profile 方法,把 role 参数改成 administrator。如果返回的 JSON 里 success:true,再刷新页面看用户列表,自己的角色已经变了。

复现完别急着关环境。把整个 HTTP 请求和响应保存下来,用 Burp Suite 的 Save item 功能存成文件。以后写报告或者做防御规则,直接拿这个原始流量去比对就行。另外,记得记录下漏洞触发时服务器返回的 X-Powered-By 头,有时候能帮你判断目标环境的 PHP 版本,对后续利用有帮助。

最后说个坑。有些漏洞复现文章里写的 payload 是经过 URL 编码的,你直接复制到浏览器地址栏可能不生效,因为浏览器会二次编码。这时候要么用 Burp 的 Repeater 发原始请求,要么用 curl 加 --data-urlencode 参数。我习惯用 curl -X POST --data "action=xxx&file=../../../../wp-config.php" 这种形式,清晰且可控。

复现漏洞不是为了炫技,是为了搞清楚攻击链的每一步。你亲手走一遍,才知道哪个环节最容易被忽略,防御的时候该在哪里加锁。

(责任编辑:娱乐)

相关内容
精彩推荐
热门点击
友情链接