漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-053369
漏洞标题:PPTV多应用commons-fileupload组件拒绝服务漏洞
相关厂商:PPTV(PPlive)
漏洞作者: Nebula
提交时间:2014-03-11 15:56
修复时间:2014-04-25 15:57
公开时间:2014-04-25 15:57
漏洞类型:系统/服务补丁不及时
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-03-11: 细节已通知厂商并且等待厂商处理中
2014-03-11: 厂商已经确认,细节仅向厂商公开
2014-03-21: 细节向核心白帽子及相关领域专家公开
2014-03-31: 细节向普通白帽子公开
2014-04-10: 细节向实习白帽子公开
2014-04-25: 细节向公众公开
简要描述:
RT!
详细说明:
代码逻辑错误,特殊包进入死循环,cpu 100%,造成拒绝服务(DoS):
Apache Commons FileUpload Denial-of-Service(cve-2014-0050) :
http://zone.wooyun.org/content/10508
漏洞证明:
这个漏洞比较严重啊!但一个月快过去了,我看了一下,除了阿里修复得比较好以外,一些电商好像基本没处理,不知道是不是觉得没危害还是漏洞理解有问题,发现有些电商等在java安全漏洞这一块基本是一片空白(而自己的应用绝大部分是J2EE.比如:某东)!
commons-fileupload是Apache commons系列的重要组件,J2EE中我们基本都使用该包做上传功能.比如:tomcat7已经开始完全复用该组件代码嵌入其中,所以它是受影响的(比如:http://zone.wooyun.org/content/10508 这个标题中,因为tomcat比较流行,所以只写了它,事实影响范围并非如此!)。
但这次真正有直接危害的是J2EE框架(因为其他使用该包的中间件可能都需要一些攻击条件),但一些框架是不需要的!!!
比如:Struts2或Spring等,以Struts2(为什么选它就不多说了)为例,我们不需要找一个上传功能,只要找了一个进入框架请求流程即可,就是找个框架拦截扩展名地址即可,比如:.action
Struts2并未提供自己的请求解析器,也就是就Struts2不会自己去处理multipart/form-data的请求,它需要调用其他请求解析器,将HTTP请求中的表单域解析出来。但Struts2在原有的上传解析器基础上做了进一步封装,更进一步简化了文件上传。
进入框架流程后,会经过一系列的拦截器(拦截器),也包括上传所在的拦截器!
比如:这里找了几个sturts2框架的应用:
http://passport.pptv.com/registerandlogin.do
http://tips.passport.pptv.com/getUsertipNum.do
http://home.pplive.com/login.do
那么我们怎么确认漏洞存在,因为特征不够明显,其实很简单,PoC打过去,进入死循环后,web服务器是不会有响应包的,如果漏洞不存在是会正常响应的!
比如:一直在等待响应包(这里可以用抓包工具测试),我这里用java模拟的http请求
之前:
之后:
当然,从外部看是不明显的(比如:4核八线程的cpu,我可能要发8次包才到100%),还是要上服务器查看,比如:该包是否小于1.3.1
修复方案:
如果是替换包:http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi (如果是框架,一般换最新 Commons FileUpload包就可以了)
如果是被嵌入到其他中间件,比如:tomcat,最好是换最新版本中间件
版权声明:转载请注明来源 Nebula@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2014-03-11 17:46
厂商回复:
thx~
最新状态:
暂无