0x01 背景

由于默认安装后需要超级管理员权限,故该漏洞很鸡肋,但感觉应该会在其它cms中也存在,所以主要分享下挖掘思路~ PS:使用的测试环境是php5.6(已经移除gpc选项)

pshell

0x02 漏洞分析

漏洞起源: yoursite\phpsso_server\phpcms\modules\admin\system.php下的uc函数:

将表单中的数据$data按照键值对遍历并以如下形式存储到$uc_config变量里:

上面只是对$k变量进行了字母转大写处理,然后就写到yoursite\phpsso_server\caches\configs\uc_config.php中了,所以这里应该可以构造一句话木马写入到uc_config.php中,从而拿到webshell。

转载请注明:小残博客

0x03 漏洞证明

通过观察uc_config.php,我们构造一句话木马的方法如下(审查元素或者代理改包均可)

pshell

获取shell

pshell1

解决方案

临时解决方案我这里引入了特殊字符的数组$array_key_safe = array(“,”, “;”, “‘“, “(“, “)”, “\“); 然后在foreach循环时对$k进行过滤如下: