漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-067512
漏洞标题:finecms 最新版v2.3.3前台getshell
相关厂商:dayrui.com
漏洞作者: phith0n
提交时间:2014-07-05 17:56
修复时间:2014-10-03 17:58
公开时间:2014-10-03 17:58
漏洞类型:命令执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-07-05: 细节已通知厂商并且等待厂商处理中
2014-07-05: 厂商已经确认,细节仅向厂商公开
2014-07-08: 细节向第三方安全合作伙伴开放
2014-08-29: 细节向核心白帽子及相关领域专家公开
2014-09-08: 细节向普通白帽子公开
2014-09-18: 细节向实习白帽子公开
2014-10-03: 细节向公众公开
简要描述:
不指望厂商确认,我就是要打脸。官方认为自己已经修复的很干净了,在我看来还是一点用处都没有。wooyun官方能不能给我都补个rank,毕竟找了好几个getshell了。
'DR_NAME' => '海豚大众版',
'DR_UPDATE' => '2014.6.21',
'DR_VERSION' => '2.3.3',
'DR_VERSION_ID' => 20
详细说明:
还是头像上传的地方,官方认为自己已经修复的很干净了,在我看来还是一点用处都没有。
不过demo站直接把头像上传的功能给阉割了,正常头像都没法上传了,所以我就不在demo上测试了,下载最新的v2.3.3,本地测试。
版本号:
看到头像上传的代码:
我曾经用的一个方法是,构造一个部分出错的压缩包,在解压时出现错误,导致exit,但已有部分文件已解压成功,这样就能不被后面的unlink删除。另一个方法是竞争型,再php没来得及删除我们解压出来的文件时,先访问它,让它生成一个shell。
我们看finecms里是怎么修复的:
1.用一个随机目录来保存图片,这样就算我成功解压出来,猜不到目录名也访问不了,也无法产生竞争:
2.删除以后再exit出去,这样就算出错,也会删除残留的文件后再退出:
看似已经万无一失。
但finecms没想到的是,我们可以构造一个“特别”的压缩包,这个压缩包里我的shell的文件名是“../../../shell.php”,这时我们就能够把shell直接解压到根目录下,我不用猜测目录名,不用惧怕被删除,直接拿下shell。
那么,请看我怎么构造这个压缩包。
漏洞证明:
先把自己的shell改名字成aaaaaaaaaaaaaaaaaaaa.php
之所以起这个名字,就是预留一些空间,方便我之后将文件名改成../../../aaaaaaaaaaa.php而不用怕字符串长度不对。
把文件直接打包成zip,用notepad++打开:
将我画框的俩文件名的前9个字符改成../../../
然后就大功告成。
注册用户,来到头像上传处,上传头像:
抓包将刚才构造的压缩包贴进去:
然后,网站根目录下就会有你的shell了:aaaaaaaaaaa.php
修复方案:
呵呵
版权声明:转载请注明来源 phith0n@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:1
确认时间:2014-07-05 18:31
厂商回复:
六月就修复,可以测试官方演示站点
最新状态:
暂无