Web安全原理(4)——SSRF
1.SSRF简介
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。
2.SSRF原理
(1) 成因:由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。
(2)理解:假设A网站为所有用户均可访问的外网网站,而B网站是A网站所在内网中的一个网站,只有内网用户能够访问。现在用户向A发送服务请求,A收到请求后便会响应用户请求。假设此时攻击者恶意构造一个URL,URL里面包含了B网站的域名相关信息。那么A收到请求后,若对请求参数没有进行过滤限制,那么A便会向B再发送请求,最终将B的相关数据响应给内网外的用户。
(3)攻击方式:
- 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息;
- 攻击运行在内网或本地的应用程序(比如溢出);
- 对内网Web应用进行指纹识别,通过访问默认文件实现;
- 利用 file 协议读取本地文件等;