0x00 前言

SSRF服务器端请求伪造,攻击者可以利用一个web服务器作为跳板,向其他网站或web服务器本身发起攻击。例如可以使用SSRF完成一些在外网无法完成的操作。

能对外网发起请求的地方(从远程服务器请求资源)都有可能存在SSRF。转码、在线翻译、通过url加载或下载图片、分享内容等。

index.php?url=http://www.bing.com

dict:// 词典网络协议,用来探测内网信息,如主机、端口等

file:// 本地文件传输协议,用来读取内网服务器上的敏感文件等。

sftp://

gopher:// 可以用来发送各种类型的请求包

ftp://等

传参中包含协议、后缀时,说明有可能可以发起请求、任意文件读取或任意文件下载。

0x01 危害

1、探测内网信息,扫描内网存活主机、开放端口等。

2、读取内部敏感文件

3、对内网主机发起攻击:内网安全性薄弱。如DOS攻击、大文件请求、保持连接消耗服务器资源等。

4、暴力破解用户名、路径、文件等信息。

5、若内网某些服务存在漏洞,可以结合利用getshell

6、结合CSRF,造成危害更大的攻击:如利用SSRF,使内网某些主机访问恶意网址,执行攻击。

0x02 靶场复现

搭建某个输入URL进行访问的页面:

ssrf1.png

输入

http://www.bing.com

ssrf2.png

ssrf3.png

此时可以利用SSRF探测内网,如探测服务器端口信息

输入

dict://127.0.0.1:80

ssrf4.png

探测本机80端口,通过回显知道是HTTP服务,以及中间件版本。

0x03 防御

1、禁用不用的协议,只保留如http等必要协议

2、统一出错信息,避免显示敏感内容。

3、过滤返回的信息

4、限制请求的端口

5、限制内网传参

6、PHP中禁用file_get_contents()、fsockopen()、curl_exec()函数

7、加强内网访问的身份认证等