SSRF攻击和防御
SSRF(Server-side Request Forgery,服务器端请求伪造)是攻击者通过向外网服务器端发起请求从而攻击内网系统。因为内网无法直接访问,而且内网和外网服务器相连。
SSRF漏洞大多存在于外网服务器提供访问其他服务器并获取数据的功能,并且没有对目标地址过滤和限制。例如:在线翻译网址内容,接收邮件的服务器地址。
内网防御一般比外网要弱,所以易受SSRF攻击。
攻击方式:将内网ip编码(绕过过滤)放在url后。根据返回错误(501,502,404,403)可以判断端口是否开放,甚至目标应用。
防御方法:
过滤:
- 过滤格式为ip的链接
- 设置url白名单或限制内网IP
- 响应处理,任何情况都不建议直接返回服务器响应内容给客户端。
- 禁用不必要的URL协议(HTTP之外的,不必要的)
- 内网认证授权