目录

Web安全-SSRF漏洞

1. 漏洞描述

SSRF (Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞。一般情况下,SSRF 攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统)

2. 漏洞原理

SSRF漏洞的形成原因大多是因为:

服务端提供了从其他服务器应用获取数据的功能且未对目标地址做过滤或限制处理

如:攻击者操作服务端从指定URL地址获取网站内容

3. 利用方式

  • 对内网或本地进行端口扫描,获取端口服务的banner信息
  • 攻击运行在内网或本地的应用程序
  • 对内网web应用进行指纹扫描,获取企业单位内部的资产信息
  • 利用file协议读取敏感文件

4. SSRF支持的协议

1. http协议:

通过HTTP协议进行内网端口探测,通过返回的时间和长度来判断端口是否开放

1
<https://ip/ssrf.php?url=http://127.0.0.1:3389>

2. file协议

通过file协议来读取文件信息

1
<https://ip/ssrf.php?url=file:///etc/passwd>

3. dict协议

通过dict协议来探测服务信息

1
<https://ip/ssrf.php?url=dict://127.0.0.1:3306>

4. gopher协议

通过gopher协议探测端口,发送get请求和攻击redis服务

1
<https://ip/ssrf.php?url=gopher://127.0.0.1:3306>

5. 漏洞防御

  • 禁止跳转
  • 过滤返回信息
  • 禁止不需要的协议
  • 设置URL白名单
  • 统一错误信息