SSRF漏洞
一、漏洞介绍
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。
攻击者A通过有SSRF漏洞的服务器B来访问B所在内网的其他主机。
二、产生原因
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。
服务器从其他服务器获取数据,但没有对目标地址做严格的过滤和限制。
三、漏洞危害
窃取、破坏内网数据。
四、应用场景
过url分享链接、加载下载图片,在线转码、翻译。
五、漏洞利用
file:/// :读取文件
dict:// :端口扫描
gopher:// :传数据包
数据包url转码,(参数=值,参数不转),%0a前面要加%0d,转2~3次。
六、限制绕过
- http://xxx@127.0.0.1
- 使用localhost代替127.0.0.1
- 添加端口号80、8080
- 短地址
- ip地址转换进制
七、防御与修复
- 过滤返回信息
- 统一错误信息(防端口扫描)
- 限制请求都隘口为http常用端口,80、443、8080、8090。
- 黑名单内网ip
- 禁用不需要的协议,仅允许http和https请求。