SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成,由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。
0x0 SSRF 原理
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
0x1 SSRF 场景
- 社交分享功能:获取超链接的标题等内容进行显示
- 转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
- 在线翻译:给网址翻译对应网页的内容
- 图片上传:识图,富文本编辑器上传图片
0x2 SSRF 危害
- 跨越防火墙,进入内网
- 扫描内部网络,如端口开放情况,获取banner等
- 攻击内网中脆弱主机,如redis未授权
- 拒绝服务攻击,请求大文件
- 暴力破解用户名、目录、文件路径
0x3 SSRF 防御
- 限制协议为 HTTP、HTTPS,禁止 file gopher 等协议
- 禁止 30X 跳转
- 设置 URL 白名单或者限制内网 IP 请求
- 给redis mongodb elasticsearch等服务设置口令
- 修复内网主机漏洞