SSRF
概述
server-side request forgery服务器端请求伪造
主要是服务端能够帮你请求资源,这样就饶过了一些网络访问控制等限制。
形成的原因大都是由于服务端提供了从其他服务器应用数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。
利用SSRF能实现以下效果:
- 扫描内网(主机信息收集,Web应用指纹识别)
- 根据所识别应用发送构造的Payload进行攻击
- Denial of service
常见位置
1)分享:通过URL地址分享网页内容
2)转码服务
3)在线翻译
4)图片加载与下载:通过URL地址加载或下载图片
5)图片、文章收藏功能
6)未公开的api实现以及其他调用URL的功能
7)从URL关键字中寻找
share wap url link src source target u 3g display sourceURl imageURL domain
利用
curl支持很多协议,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP
后端代码
防护
- 限制协议为HTTP、HTTPS协议。
- 禁止30x跳转。
- 设置URL白名单或者限制内网IP。
- 限制请求的端口为http常用的端口。