漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-059783
漏洞标题:百度某功能XML实体注入(二)
相关厂商:百度
漏洞作者: gainover
提交时间:2014-05-07 15:56
修复时间:2014-06-21 15:57
公开时间:2014-06-21 15:57
漏洞类型:任意文件遍历/下载
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-05-07: 细节已通知厂商并且等待厂商处理中
2014-05-07: 厂商已经确认,细节仅向厂商公开
2014-05-17: 细节向核心白帽子及相关领域专家公开
2014-05-27: 细节向普通白帽子公开
2014-06-06: 细节向实习白帽子公开
2014-06-21: 细节向公众公开
简要描述:
嗯,回头看了看,想看看百度是怎么修复的,猜测了下百度的修复方式,然后就。。。绕过了。
详细说明:
1.首先试了试之前的测试代码,返回错误页面,那么百度是如何修复的呢?
2. 再看看是否允许定义空的DTD
返回正常。
3. 加入ENTITY试试。。
返回错误
4. 猜测,是否是过滤了 ENTITY 这个单词?
返回正常
在内容里插入 文字 ENTITY
返回错误
5. 看来,百度在这里对 ENTITY 这个单词进行了过滤。
6. 那么,可不可以不用ENTITY 这个单词来实现XXE呢?
答案是有的。
DTD 本身就支持调用外部的DTD文件,因此我们只需要在SVG里加一个外部的DTD,如下:
xxe_sys.dtd内容如下:
7. 这样我们又可以读取passwd内容了,如下图所示:
漏洞证明:
见详细说明。
修复方案:
光判断ENTITY这个词好像不靠谱,如果要从内容这个角度来过滤的话,还不如把DOCTYPE干掉吧!
版权声明:转载请注明来源 gainover@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:12
确认时间:2014-05-07 17:22
厂商回复:
感谢提交,我们会立即处理此问题。
--“百度,因你更安全”
最新状态:
暂无