User Post Gallery 是wordPress/ target=_blank class=infotextkey>WordPress的一个第三方插件,该插件被许多网站运营者使用,由于代码存在远程命令执行漏洞,被许多黑客利用进行攻击网站,导致许多安装wordpress User Post Gallery插件的网站都深受影响,可导致服务器被提权拿到root管理权限,CVE编号:CVE-2022-4060。
该漏洞被爆出后,直至到今天2023年2月1号,官网也未对该漏洞进行修复,wordpress官网已经对该插件停止了对外下载,我们SINE安全通过之前的User Post Gallery老版本源码,复现了此次漏洞,并对该源代码进行了安全审计,发现确实存在远程代码执行漏洞,漏洞的具体细节我们来看下wp-upg.php代码里的upg_datatable变量,如下图:
从变量中可以看到从前端传参到Field后,将以:来进行参数的分割,其中的第2值放到$val,第3个值放到$val_param1,第4个的值放到$val_param2,以此类推的看,第5个值是放到了$val_param3里,其实这段代码就是对请求的参数开展解析和赋值的常规操作,我们再来继续看后面的一些代码,就知道到底是如何利用的,以及整体的代码逻辑。
当变量值VAL是一个函数名的时候,从前端传入的参数分别赋值到3.4.5的值上去,在这个阶段可导致植入恶意的rce代码到网站里执行,导致了该远程代码执行漏洞的产生,具体的利用poc如下:
http://127.0.0.1/admin-ajax.php?action=upg_datatable&field=field:exec:id:NULL:NULL。漏洞利用成功截图如下:
以上是我们SINE安全的于涛技术对wordpress 漏洞进行的分析和安全审计,以及整体的漏洞复现过程,如果担心您的代码也存在漏洞,也可以与我们联系,我们可提供源代码的安全审计服务,我们人工对其进行安全审计,提前找到网站存在的漏洞,将损失降到最低,以免后期网站用户量以及规模上来后再因为网站代码存在漏洞而导致损失就得不偿失了。