SSRF漏洞是什么,如何进行有效防护

发布于:2024-04-27 ⋅ 阅读:(26) ⋅ 点赞:(0)

SSRF全称:Server-Side Request Forgery,即,服务器端请求伪造。是一个由攻击者构造请求,在目标服务端执行的一个安全漏洞。攻击者可以利用该漏洞使服务器端向攻击者构造的任意域发出请求,目标通常是从外网无法访问的内部系统。简单来说就是利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网进行攻击。

一、SSRF漏洞形成原理

很多网站提供了从其他的服务器上获取数据的功能。通过指定的URL,网站可以从其他地方获取图片、下载文件、读取文件内容等。SSRF的实质就是利用存在缺陷的Web站点作为代理攻击远程和本地的服务器。

SSRF漏洞形成的原因大都是由于服务端提供了从其他服务器获取数据的功能但没有对目标地址做过滤与限制。攻击者可以利用改漏洞获取内部系统的一些信息(因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内网系统)。

二、SSRF漏洞主要的攻击方式

当攻击者想要访问服务器B上的服务,但是由于存在防火墙或者服务器B是属于内网主机等原因导致攻击者无法直接访问。如果服务器A存在SSRF漏洞,这时攻击者可以借助服务器A来发起SSRF攻击,通过服务器A向主机B发起请求,达到攻击内网的目的。

三、SSRF漏洞的危害

1.对外网、服务器所在内网、本地进行端口扫描

2.向内部任意主机的任意端口发送payload来攻击内网服务

3.DOS攻击(请求大文件,始终保持连接Keep-Alive Always)

4.攻击内网的web应用,如直接SQL注入、XSS攻击等

5.利用file、gopher、dict协议读取本地文件、执行命令等

四、SSRF与CSRF的区别

CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的cookie信息伪造用户请求发送至服务器;

SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或者其它服务器由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务

内网服务防御相对外网服务来说一般会较弱,甚至部分内网服务为了运维方便并没有对内网的访问设置权限验证,所以存在SSRF时,通常会造成较大的危害。如何进行漏洞检测成为必不可少的关键:

1、漏洞验证

因为SSRF漏洞是构造服务器发送请求的安全漏洞,所以我们可以通过抓包分析发送的请求是否是由服务器端发送的来判断是否存在SSRF漏洞。

在页面源码中查找访问的资源地址,如果该资源地址类型为http://www.xxx.com/a.php?image=地址就可能存在SSRF漏洞。

2、漏洞的可能出现点

(1) 分享功能:通过URL地址分享文章等,例如如下地址:

http://share.xxx.com/index.php?url=http://www.xxx.com

通过url参数的获取来实现点击链接的时候跳到指定的分享文章。如果在此功能中没有对目标地址的范围做过滤与限制则就存在着SSRF漏洞。

(2)图片加载/下载:通过URL地址加载或下载图片:

http://image.xxx.com/image.php?image=http://www.xxx.com

图片加载存在于很多的编辑器中,编辑器上传图片处加载设定好的远程服务器上的图片地址,如果没对加载的参数做限制可能造成SSRF。

(3)图片/文章收藏功能:

http://title.xxx.com/title?title=http://title.xxx.com/xxx

例如 title参数是文章的标题地址,代表了一个文章的地址链接,如果收藏功能采用了此种形式保存文章,则在没有限制参数的形式下可能存在SSRF。

(4)转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览。

(5)在线翻译:给网址翻译对应网页的内容。

(6)邮件系统:比如接收邮件服务器地址。

(7)利用参数中的关键字查找:

关键字:

share、wap、url、link、src、source、target、u、3g、display、sourceURl、imageURL、domain...

总的来说,需要从远程服务器请求资源的网站都有可能存在SSRF漏洞。

部分存在漏洞,或者可能产生SSRF的功能中做了白名单或者黑名单的处理,来达到阻止对内网服务和资源的攻击和访问。因此想要达到SSRF的攻击,需要对请求的参数地址做相关的绕过处理,常见的绕过方式如下:

1、绕过限制为某种域名:

利用@,当网站限制只能访问 http://www.xxx.com类型的域名时,可以采用http基本身份认证的方式绕过,如:http://www.xxx.com@www.xxc.com

在对@解析域名中,不同的处理函数存在处理差异,例如:

http://www.aaa.com@www.bbb.com@www.ccc.com

在PHP的parse_url中会识别 www.ccc.com,而libcurl则识别为 www.bbb.com。

2、绕过限制请求IP不为内网地址:

(1)采用短网址绕过

(2)采用进制转换,127.0.0.1 八进制:0177.0.0.1;十六进制:0x7f.0.0.1;十进制:2130706433

(3)利用[::]http://[::]:80/ 会解析为 http://127.0.0.1

(4)添加端口号,http://127.0.0.1:8080

(5)利用句号,127。0。0。1 会解析为 127.0.0.1

3、限制请求只为http协议:

(1)采用302跳转

(2)采用短地址

五、如何预防SSRF漏洞攻击

1、严格校验用户输入的URL,可以使用白名单过滤来限制输入,只允许特定的协议、主机和端口,列如限制请求的端口为 http 常用的端口,80、443、8080、8090 等。

2、不要把原始的响应数据返回给客户端,且过滤返回信息,在把返回结果展示给用户之前先验证返回的信息是否符合标准。

3、限制Web应用程序的网络访问权限,可以让远程资源访问功能使用单独的网络。

4、限制Web应用能够访问的URL范围,避免访问内网或其他敏感地址。可以配置网络访问控制列表(ACL),限制Web应用只能访问指定的外部服务。

5、建立安全监控机制,对网站进行安全监测,对业务系统进行安全监测,可以及时发现和响应潜在的安全漏洞。

网站安全监测可以对企事业单位业务系统(包括但不限于网站、小程序、API、APP)全生命周期、持续性、多维度监测的新一代云监测产品。通过结合大数据平台及404实验室安全能力,为客户提供业务系统漏洞监测、可用性监测、SSL监测、安全事件监测、内容合规监测、业务系统资产发现等多项监测能力,帮助客户全面掌握业务系统风险态势。主要的服务内容包括业务系统资产发现和业务系统漏洞监测。

业务系统资产发现:

1.可用性监测

HTTP监测

Ping监测

状态码监测

源站监测

2.安全事件监测

外链监测

坏链监测

挂马监测

挖矿监测

暗链监测

业务系统漏洞监测:

1.SSL监测

协议漏洞监测

SSL证书监测

2.内容合规监测

敏感信息监测

隐私信息监测

除此之外,网站安全监测拥有四大核心能力:

1.集众家之所长,新型漏洞感知全面

安全智脑每天对来自全球4亿+的攻击流量分析学习,持续赋能云监测(ISSM)目前累计支持10万+漏洞检测,并持续更新中。

2.404实验室安全能力加持

云监测(ISSM)是由德迅云安全倾力打造的新一代业务系统立体监测平台,协同联动Seebug漏洞社区近10万漏洞及5万PoC信息,持续不断提供全面、精准的安全监测能力。

3.智能网站业务画像监测

基于大数据持续对业务系统进行网站画像监测,精细化监测每个URL及参数,及时发现业务系统所有监测点,实现全量、增量、专项等多种精准扫描,覆盖度全面,扫描效率更高。

4.分布式监测

基于智能监测分波算法对全国超50个监测节点智能任务分配,适应不同运营商、不同线路的网络状况,模拟真实的网络环境,提供精准、迅速的监测结果,并通过可视化风险评估报表、安全报告及风险告警等手段构建完善监测体系。

总之,SSRF漏洞比CSRF漏洞的利用的局限性要小,并且SSRF漏洞对内网的一些应用危害比较大。所以在开发过程中,警惕大家要尽量避免产生SSRF漏洞。


网站公告

今日签到

点亮在社区的每一天
去签到