6.SSRF(服务端请求伪造)

6.1什么是ssrf

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞

6.2原理

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制

一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)

6.3ssrf的利用

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

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

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

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

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

6.4ssrf漏洞出现位置

所有调外部资源的参数都有可能存在ssrf漏洞

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

2)转码服务

3)在线翻译

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

5)图片、文章收藏功能

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

7)从URL关键字中寻找

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

6.5绕过方法

1)更改IP地址写法(8进制、10进制、16进制)

2)利用解析URL所出现的问题

6.6防范方法

6.6.1黑名单

1)过滤10.0.0.0/8 、172.16.0.0/12、192.168.0.0/16、localhost私有地址​、IPv6地址

    2)过滤file:///、dict://、gopher://、ftp:// 危险schema

    3)​对返回的内容进行识别

6.6.2白名单

1)使用地址白名单

    2)对返回内容进行识别

6.6.3无法使用白名单

   首先禁用 CURLOPT_FOLLOWLOCATION;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致

你可能感兴趣的:(十大漏洞,安全)