漏洞概要
关注数(24)
关注此漏洞
漏洞标题:Finecms v2.3.2前台设计缺陷导致暴力Getshell
提交时间:2014-06-03 17:52
修复时间:2014-08-29 17:54
公开时间:2014-08-29 17:54
漏洞类型:文件上传导致任意代码执行
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情
披露状态:
2014-06-03: 细节已通知厂商并且等待厂商处理中
2014-06-08: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-08-02: 细节向核心白帽子及相关领域专家公开
2014-08-12: 细节向普通白帽子公开
2014-08-22: 细节向实习白帽子公开
2014-08-29: 细节向公众公开
简要描述:
权限竞争性上传缺陷。
版本:FineCMS for 海豚大众版 v2.3.2
详细说明:
首先,在phpcms之前的那个上传洞出来的时候,我就注意到finecms升级了一个补丁包。打开一看就是补的类似phpcms的洞,于是我知道finecms在上传头像处用的与phpcms是类似的代码。
然后phpcms后来又出了一个暴力上传的缺陷( WooYun: PHPCMS前台设计缺陷导致任意代码执行 ),我猜finecms没有补,一来看果然是这样。
先来介绍一下吧,与phpcms类似,finecms对上传头像是这样处理的:
用户上传压缩包 => php解压 => 递归删除非.jpg的文件
具体代码如下(/member/controllers/Account.php 第416行):
那么如果我上传包含这样代码的压缩包:
在上传与被删除这个时间差里访问,就能在网站根目录下生成新的php文件,那么新生成的php文件是不会被删除的。
这就是一个竞争性上传漏洞,需要我们抓住这个时间差,在上传的php文件还没被删除前访问到它,就能够暴力getshell了。
利用方法与代码详见漏洞证明。
漏洞证明:
准备一个如下php文件:
保存为1.php,放在目录1下,将目录1打包为1.zip:
然后登陆finecms,记下cookie。
如下代码,你测试的时候根据自己的情况做些修改,我就不多说了,我也是直接拿felixk3y的代码修改得到的:
运行时第一个参数是目标url,第二个参数是你的cookie:
因为我是在本地测试的,所以很快就拿下shell了(我把生成的文件放在网站根目录下,这个可以根据自己情况修改py脚本):
访问可见phpinfo:
这个跟网速也有很大关系,如果你没能及时在你上传的文件被删除前访问之,就没法生成shell了。所以有可能要测试很多次都不成功,称之为暴力getshell也不为过,拼人品了~
修复方案:
解压这种动作最好在非web目录下进行,然后把需要的文件复制到web目录下。
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-08-29 17:54
厂商回复:
最新状态:
暂无