SSRF漏洞介绍
根据我国网络安全法,仅用于网络安全学习
由攻击者构造请求,由服务器端发起的请求安全漏洞,一般情况子下SSRF攻击目标是外网无法访问的内部系统。(服务器能请求到与自身相连而与外网隔离的内部系统)
SSRF漏洞原理
由服务器端提供提供了从其他服务器应用获取数据功能且没有对目标地址进行过滤与限制。
例如:黑客操作服务端从指定url获取地址获取网页文本内容,加载指定地址和图片等;利用服务端的请求伪造
SSRF利用存在的缺陷的web应用作为代理攻击远程和本地的服务器。
攻击方式
1、对外网、服务器所在的内网、本地进行端口扫描
2、攻击运行在内网或本地的应用程序
3、对内网WEB应用进行指纹识别
4、利用file协议读取本地文件
5、攻击内外网的web应用,主要使用httpGET请求就可以实现攻击
代码分析
获取GET参数中的URL,通过url_init()初始化curl组件,将参数url带入curl_setopt(
c
h
,
C
U
R
L
O
P
T
U
R
L
,
ch,CURLOPT_URL,
ch,CURLOPTURL,url,$url);然后调用
curl-exec请求url
由于服务端将banner返回给客户端,根据banner判断主机由哪些服务;
实验
页面ssrpf.php的功能是过去get参数的url,若将页面请求url篡改为百度,页页面跳转到百度页面。
篡改url网址为本地文件,ssrf.php=file:///C:/Windows/win.ini读取本地文件
如下图所示,这就是服务器请求伪造原理
SSRF漏洞修复建议
限制请求的端口只能为web端口,只允许访问http和https
限制不能访问的内网IP
屏蔽返回信息