faqia浅析CVE-2024-27954
CVE-2024-27954 - WordPress plugin Automatic 路径遍历漏洞根据已知的网传poc验证文件如下
根据已知条件对源码进行分析
1、定位参数值 download
对插件 automatic 源码进行正则搜索,yyds,就一个匹配项
在函数
wp_automatic_parse_request
中,判断当
$wp->query_vars['wp_automatic'] == 'download'
时,加载文件
downloader.php
再看 wp_automatic_parse_request,该函数被使用的位置是:
add_action('parse_request', 'wp_automatic_parse_request');
以上代码,add_action可推断是某种机制,参考wordpress源码如下
而 parse_request 参考wordpress源码如下
至此上面有关 download 的细节是:
parse_request 动作执行钩子函数 wp_automatic_parse_request
即,对网络请求中的参数执行 wp_automatic_parse_request 函数
当其中的参数
wp_automatic == download
包含文件 downloader.php 文件
2、定位参数 link
巧了,yyds,如下图在 downloader.php 文件中
使用php中 curl_init 函数始化一个cURL会话。发送HTTP请求(以及其他类型的网络请求)到远程服务器,并接收其响应
而 link 参数的值,处理之后被作为 cURL 的 url 选项值
并且 cURL 的 CURLOPT_RETURNTRANSFER 被设置为 1 ,可直接返回内容
最终如上图所示,该 cURL 被执行
至此
该利用链已经完整,搭建 wordpress 环境,安装 automatic 3.92.0 版本插件
使用bps进行尝试
ssrf 利用
file read
YES!!!
curl_init 没对 link 参数做验证吧 wasd71 发表于 2024-10-31 19:35
curl_init 没对 link 参数做验证吧
不知道新版本这块代码怎么改的,但是正常来说php中cURL这里面的传递的参数应该是可访问路径或者服务就可以 感谢楼主分享 普及一下,需要安装插件Automatic<3.92.1
/?p=3232&wp_automatic=download&link=file:///etc/passwd
页:
[1]