服务器请求伪造SSRF

0x01漏洞原理

        SSRF称为服务端请求伪造,是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。


0x02危害/利用方式

(1)可以对服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

(2)攻击运行在内网或本地的应用程序(比如溢出);

(3)对内网web应用进行指纹识别,通过访问默认文件实现;

(4)攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

(5)利用file协议读取本地文件等;


0x03PHP可能引起SSRF漏洞的函数

(1)curl_exec()                #执行cURL会话

(2)file_get_contents()        #j将整个文件读入一个字符串

(3)fsockopen()                #打开一个网络连接或者一个Unix套接字连接


0x04CURL其他协议

dict协议:用于搭建在线字典服务。

gopher协议:是一种 信息查找系统,只支持文本,不支持图像,已被HTTP替代。


0x05测试方法

        从WEB功能上寻找:我们从上面的概述可以看出,SSRF是由于服务端获取其他服务器的相关信息的功能中形成的,因此我们大可以列举几种在web 应用中常见的从服务端获取其他服务器信息的的功能。

(1)通过分享功能

通过URL地址分享网页内容:

        早期分享应用中,为了更好的提供用户体验,WEB应用在分享功能中,通常会获取目标URL地址网页内容中的<tilte></title>标签或者<meta name="description" content=“”/>标签中content的文本内容作为显示以提供更好的用户体验。例如人人网分享功能中:http://widget.renren.com/*****?resourceUrl=https://www.nsfocus.com

        通过目标URL地址获取了title标签和相关文本内容。而如果在此功能中没有对目标地址的范围做过滤与限制则就存在着SSRF漏洞。

(2)转码服务

通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览:

        由于手机屏幕大小的关系,直接浏览网页内容的时候会造成许多不便,因此有些公司提供了转码功能,把网页内容通过相关手段转为适合手机屏幕浏览的样式。例如百度、腾讯、搜狗等公司都有提供在线转码服务。

(3)在线翻译

        通过URL地址翻译对应文本的内容。提供此功能的国内公司有百度、有道等。

(4)图片加载与下载,通过URL地址加载或下载图片

        图片加载远程图片地址此功能用到的地方很多,但大多都是比较隐秘,比如在有些公司中的加载自家图片服务器上的图片用于展示。(此处可能会有人有疑问,为什么加载图片服务器上的图片也会有问题,直接使用img标签不就好了? ,没错是这样,但是开发者为了有更好的用户体验通常对图片做些微小调整例如加水印、压缩等,所以就可能造成SSRF问题)。

(5)图片、文章收藏功能:此处的图片、文章收藏中的文章收藏就类似于功能一、分享功能中获取URL地址中title以及文本的内容作为显示,目的还是为了更好的用户体验,而图片收藏就类似于功能四、图片加载。

(6)未公开的api实现以及其他调用URL的功能

        此处类似的功能有360提供的网站评分,以及有些网站通过api获取远程地址xml文件来加载内容。


0x06修复方案

(1)过滤内网服务器对公网服务器请求的响应。如果Web应用是获取某一类型的文件,在把返回结果展示给用户之前应先验证返回的信息是否符合文件类型标准,比如返回信息应为图片,如果返回信息是HTML,则停止将返回信息返回客户端。

(2)统一错误提示信息,避免用户可以根据错误信息来判断远端服务器的端口状态。

(3)在内网服务器的防火墙上限制公网服务器的请求端口为HTTP等协议常用端口,如:80、443、8080、8090。

(4)若公网服务器的内网IP与内网无业务通信,建议将公网服务器对应的内网IP列入黑名单,避免应用被用来获取内网数据。

(5)内网服务器禁用不必要的协议,仅允许HTTP和HTTPS请求,防止类似于file:///、gopher://、ftp:// 等协议引起的安全问题。


0x07实际案例

(1)Wordpress 3.5.1以下版本xmlrpc.php、pingback的缺陷与SSRF

(2)discuz!的SSRF(利用php的header函数来绕过,其实就是302跳转实现协议转换)

(3)weblogic的SSRF漏洞

posted @ 2022-08-10 12:14  RichardYg  阅读(123)  评论(0编辑  收藏  举报