漏洞概要
关注数(24)
关注此漏洞
漏洞标题:国际php框架slim架构上存在XXE漏洞(XXE的典型存在形式)
提交时间:2015-11-27 10:57
修复时间:2016-01-11 15:32
公开时间:2016-01-11 15:32
漏洞类型:任意文件遍历/下载
危害等级:高
自评Rank:15
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2015-11-27: 积极联系厂商并且等待厂商认领中,细节不对外公开
2016-01-11: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
歪果仁也没你想的那么屌。
这个漏洞简直典型到炸了,可称之为『开源应用中教科书式的XML实体注入漏洞』。
详细说明:
slimphp是一个知名的php轻框架,以其现代化的设计思路闻名。
至今用户已超过100w:
官方网站: http://www.slimframework.com/
这个漏洞存在于最新版(3.0)中。
首先用conposer安装之
看其文档: http://www.slimframework.com/docs/objects/request.html#the-request-body
获取POST数据,是利用getParsedBody方法,而这个方法对POST的处理,是按照content-type来区分和解析的:
很典型的问题,在这篇帖子里也提到过: http://zone.wooyun.org/content/19908
有时候框架会帮开发者一些他可能并不需要的『忙』,比如slimphp这里,常规的POST的content-type为application/x-www-form-urlencoded,但只要我将其修改为application/json,我就可以传入json格式的POST数据,修改为application/xml,我就可以传入XML格式的数据。
这个特性将会导致两个问题:
1.WAF绕过
2.可能存在的XXE漏洞
WAF绕过这个肯定不用说了,常规的WAF一般只检测application/x-www-form-urlencoded的数据,一旦修改数据类型则将通杀各大WAF。
XXE是本漏洞的重点。
我们看到解析body的代码:
实际上解析代码是作为回调函数写在Request类的构造方法里了。
可见这里直接调用了simplexml_load_string解析$input,造成XML实体注入漏洞。
所以,用slim framework 3.0开发的CMS,只要获取了POST数据,都将受到此XXE漏洞的影响。
漏洞证明:
编写一个最简单的demo页面,只有一个获取POST信息并输出的功能:
搭建在三个白帽里:http://520fdc0ca2c37864f.jie.sangebaimao.com/
正常请求:
触发XXE漏洞并读取/etc/passwd:
修复方案:
在slimphp2中,官方是对这块进行一定处理了:
不知为何在3.0版本中官方就无视这个问题了。
我猜可能有两个原因:
感觉前者的可能性较大。
所以解决方案也还是按照2中的方案进行。
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞Rank:15 (WooYun评价)
漏洞评价:
评价
-
2015-11-27 10:59 |
DloveJ ( 普通白帽子 | Rank:1184 漏洞数:212 | Web安全测试培训 QQ269787775)
-
2015-11-27 11:03 |
白非白 ( 普通白帽子 | Rank:455 漏洞数:62 | ♫ Freedom - Anthony Hamilton ♫)
这个漏洞简直典型到炸了,可称之为『开源应用中教科书式的XML实体注入漏洞』
-
2015-11-27 11:53 |
猪猪侠 ( 普通白帽子 | Rank:3650 漏洞数:282 | 你都有那么多超级棒棒糖了,还要自由干吗?)
-
2015-11-27 12:11 |
h3hz ( 实习白帽子 | Rank:42 漏洞数:5 )
-
2015-11-27 12:12 |
1937nick ( 普通白帽子 | Rank:123 漏洞数:40 | 水能载舟,亦能煮粥。物尽其用,人尽其能。)
-
2015-11-27 12:16 |
phith0n ( 普通白帽子 | Rank:681 漏洞数:112 | 一个想当文人的黑客~)
-
2015-11-27 12:37 |
zeracker ( 普通白帽子 | Rank:1077 漏洞数:139 | 多乌云、多机会!微信公众号: id:a301zls ...)
-
2015-11-27 13:57 |
Stardustsky ( 路人 | Rank:4 漏洞数:3 | ……)
-
2015-11-27 14:23 |
ksss ( 普通白帽子 | Rank:515 漏洞数:84 | 近乖者乖,近坏者坏)
-
2015-12-03 14:46 |
HackBraid ( 核心白帽子 | Rank:1807 漏洞数:287 | HackBraid昵称的由来是一款名为Braid的游戏...)
-
2015-12-03 19:48 |
寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | ☯☯☯☯☯☯☯☯☯☯)
-
2015-12-04 01:25 |
秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)