SSRF漏洞是如何产生的?
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
SSRF的漏洞原理:
服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制
SSRF可以干什么:
• 可以对外网服务器所在的内网、本地进行端口扫描,获取一些服务的banner信息 。
• 攻击运行在内网或者本地的应用程序。
• 对内网web应用进行指纹识别,通过访问默认文件实现 。
• 攻击内外网的web应用。sql注入、struct2、redis等。
• 利用file协议读取本地文件等
SSRF漏洞的寻找(漏洞常见出没位置):
1)分享:通过URL地址分享网页内容
2)转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
3)在线翻译:通过URL地址翻译对应文本的内容。提供此功能的国内公司有百度、有道等
4)图片加载与下载:通过URL地址加载或下载图片:通过URL地址加载或下载图片
5)图片、文章收藏功能
6)未公开的api实现以及其他调用URL的功能
7)从URL关键字中寻找
SSRF漏洞的验证方法:
1)因为SSRF漏洞是构造服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否是由服务器的发送的来判断是否存在SSRF漏洞
2)在页面源码中查找访问的资源地址 ,如果该资源地址类型为 http://www.xxx.com/a.php?image=(地址)的就可能存在SSRF漏洞
最后附带一张SSRF漏洞导图
SSRF漏洞防御
限制请求的端口只能为web端口,只允许访问http和https的请求(禁掉file协议)
限制不能访问内网的ip,以防止对内网进行攻击
屏蔽返回的详细信息