代码审计

PHPCMS V9最新版本后台设计缺陷导致getshell

字号+ 作者:匿名投稿 来源:转载 2016-12-24 14:41 我要评论( )

周末审计了下phpcms的最新版本,前台已经很难找到漏洞了,故看了看后台相关的代码,发现还是有一处可以拿shell的漏洞。由于默认安装后需要超级管理员权限,故该漏......

from:http://www.cnbraid.com/2016/09/14/phpcms/

0x01 背景

周末审计了下phpcms的最新版本,前台已经很难找到漏洞了,故看了看后台相关的代码,发现还是有一处可以拿shell的漏洞。由于默认安装后需要超级管理员权限,故该漏洞很鸡肋,但感觉应该会在其它cms中也存在,所以主要分享下挖掘思路~
PS:使用的测试环境是php5.6(已经移除gpc选项)

01

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,我们构造一句话木马的方法如下(审查元素或者代理改包均可):

02

04

0x04 漏洞修复

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

当然这个修补方法很暴力~


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/hack/Code/486.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
暂时未开启评论功能~