漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-064128
漏洞标题:Finecms v2.3.2前台getshell #1 (官网已shell)
相关厂商:dayrui.com
漏洞作者: phith0n
提交时间:2014-06-09 11:44
修复时间:2014-09-04 11:46
公开时间:2014-09-04 11:46
漏洞类型:文件上传导致任意代码执行
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-06-09: 细节已通知厂商并且等待厂商处理中
2014-06-10: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-08-04: 细节向核心白帽子及相关领域专家公开
2014-08-14: 细节向普通白帽子公开
2014-08-24: 细节向实习白帽子公开
2014-09-04: 细节向公众公开
简要描述:
看了一下你们以往对漏洞的态度,以及我上一个提交的漏洞的情况,来个狠的,希望不要再忽略了,希望给20 rank。
官方demo已shell。这是第1发。
详细说明:
问题仍然出现在头像上传处。
finecms头像上传代码沿用的phpcms,多的不说,直接看代码吧。
/member/controllers/Account.php 第412行:
看到倒数第3行,这是解压的操作。熟悉phpcms那个洞的同学应该知道,上传头像的时候先是本地flash对头像进行处理、压缩以后上传,后端进行解压。解压以后删除所有非法文件。
如代码所示,解压如果遇到错误的话,就exit。
所以,如果我们构造一个压缩包,让解压发生错误,但其中的部分内容又能够解压出来,就能exit出这个程序,就不会删除非法文件,我们的shell就能留下来。
思路就这样,利用方法及demo证明见下方。
漏洞证明:
首先构造压缩包。
准备7个php文件,直接打包:
打包好的1.zip,用UltraEdit打开编辑,将结尾处的6.php修改类似下图,保存:
我们直接用winrar解压就能发现报错了,但文件却正常地解压了出来:
要的就是这个效果。
接下来,上传。注册一个账号,登录以后来到头像上传处。选择正常图片抓包,将数据包修改成刚才生成的那个zip:
发送会发现返回包报错了:
报错了没关系,直接根据目录结构即可找到上传的这个shell,在/member/uploadfile/member/你的uid/3.php
其中,1/2/3/4/5/6/7都试一下,根据有些可能没解压出来。
demo站phpinfo证明:http://v2.finecms.net/member/uploadfile/member/639/3.php
修复方案:
给20分我就告诉你~
版权声明:转载请注明来源 phith0n@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-09-04 11:46
厂商回复:
上个月就修复了这个
最新状态:
暂无