漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-060479
漏洞标题:U-Mail邮件系统上传文件缺陷导致暴力getshell
相关厂商:U-Mail
漏洞作者: Ano_Tom
提交时间:2014-05-13 01:12
修复时间:2014-08-11 01:14
公开时间:2014-08-11 01:14
漏洞类型:文件上传导致任意代码执行
危害等级:高
自评Rank:10
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-05-13: 细节已通知厂商并且等待厂商处理中
2014-05-16: 厂商已经确认,细节仅向厂商公开
2014-05-19: 细节向第三方安全合作伙伴开放
2014-07-10: 细节向核心白帽子及相关领域专家公开
2014-07-20: 细节向普通白帽子公开
2014-07-30: 细节向实习白帽子公开
2014-08-11: 细节向公众公开
简要描述:
U-Mail邮件系统某处上传缺陷,导致可以暴力获取webshell
详细说明:
漏洞文件:C:\umail\WorldClient\html\client\mail\module\o_attach.php
代码:
此处为发送邮件时的上传附件函数,允许上传任意文件,在通过黑白盒测试对比分析后得知$path_target = getusercachepath( )函数执行的结果为C:\umail\WorldClient\html\client\cache\{用户的user_id},其中$file_id即为上传文件保存的随机文件名,$file_suffix即为上传附件的文件类型。
在执行上传文件时候先将文件保存为临时文件,而此临时文件是存在web目录里,默认配置是可执行的(此处演示的是官网下载的最新版,windows server 2003搭建,且都为默认配置)
漏洞产生的在哪里?
首先通过对代码的分析,没找到用户可以查看$user_id的函数,而$user_id还是有规律可循的,按用户的数量从1一直递增;临时文件存放的路径是在web目录里,默认是有脚本执行权限的;临时文件名在上传成功后,审查元素可以看到。
因而,可以暴力猜解$user_id的值,来获得我们的webshell。
漏洞演示:
首先要有一个普通的用户,此处为了说明存储文件的伪随机性,在后台添加1000个用户,如图
挑选test00877@fuck.com帐号密码password877登录后,写信,如图
选择添加附件,上传php文件,返回结果获得的文件名(php文件上传过程中的临时文件名)为13998959208,保留此页面不关闭,然后打开burpsuite构造如下请求
载入intruder,设置payloads为numbers,依次递增。
好吧,1000个用户,跑了不到5秒。结果如下
服务器状况为
漏洞证明:
如上详细描述
修复方案:
将临时文件放在非web目录下,可以参考你们的网盘文件的写法
版权声明:转载请注明来源 Ano_Tom@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2014-05-16 18:31
厂商回复:
CNVD只发现贵司官网的测试版本存在漏洞,其他实例因没有账号,无法确认。已联系深圳市福洽科技有限公司处置。
最新状态:
暂无