ssrf原理:
是一种由攻击者构造由服务端发起请求的一个安全漏洞,其形成的原因是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。因为请求是由服务端发起的,所以它能够请求到与服务器相连而与外网隔离的内部系统
数据流:攻击者----->服务器---->目标地址
ssrf漏洞经常出现的位置:
所有能够对外发起网络请求的地方,就可能存在 SSRF 漏洞例如:
在线识图,在线文档翻译,订阅,分享:通过URL地址指定内容,由服务端负责获取并在本页面展示。
另外URL中如果存在如下关键字,也可能存在ssrf漏洞:url,link,share,src,source,target...
常用攻击手段:核心思想是利用服务器的身份攻击从外网无法访问的内部系统。
1.可以对服务器本地或者服务器所在内网进行端口扫描;
2.攻击运行在服务器本地或者内网的web站点或其他应用程序(比如溢出);
3.对内网web应用进行指纹识别,通过访问默认文件实现;
5.利用file协议读取本地文件等
防御与绕过方法:防御的目标是避免请求访问内网
1. 检查IP是否为内网IP,可以通过更改IP地址写法绕过
2.当Host是域名形式时,可以利用解析URL所存在的问题绕过,
如http://www.oldboyedu.com@192.168.0.1/ 指向的主机是192.168.0.1,www.127.0.0.1.xip.io,会自动解析到127.0.0.1。