当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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请求

3.png


之前:

1.png


之后:

2.png


当然,从外部看是不明显的(比如:4核八线程的cpu,我可能要发8次包才到100%),还是要上服务器查看,比如:该包是否小于1.3.1

4.png

修复方案:

如果是替换包:http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi (如果是框架,一般换最新 Commons FileUpload包就可以了)
如果是被嵌入到其他中间件,比如:tomcat,最好是换最新版本中间件

版权声明:转载请注明来源 Nebula@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-03-11 17:46

厂商回复:

thx~

最新状态:

暂无