跨站请求伪造SSRF测试及防御方法
前言
一、什么是SSRF
SSRF(服务器请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下,SSRF攻击的目标是外网无法访问的内网系统(正因为请求时由服务端发起的,所以服务端能请求到与自身相连而与外网隔绝的内部系统)
SSRF漏洞形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤和限制.例如,黑客操作服务端从指定URL地址获取网页文本内容,加载指定地址的图片等,利用的是服务端的请求伪造,SSRF利用存在缺陷的WEB应用作为代理攻击远程和本地的服务器
漏洞攻击方式
对外网,服务器所在内网,本地进行端口扫描,获取一些服务的banner信息.
攻击运行在内网或本地的应用程序
对内网Web应用进行指纹识别,识别企业内部的资产信息
攻击内外网的Web应用,主要是使用HTTP GET请求就可以实现的攻击(比如strust2,SQli等)
利用file协议读取本地文件等
二、SSRF实验及防御方法
1.利用SSRF进行内网探测
我们进行实验
主要是对远程包含进行讲解
我们这来使用bwapp靶场进行演示
我们自己下载bwapp在www目录下,进行实验
打开后使用默认密码bee,bug进行登录就可以了
找到漏洞模块
点击hack,我们使用火狐的HackBar进行重发信息
接下来我们利用SSRF的修改url获取信息的漏洞
我们点击go
出现网址
http://192.168.222.4/bwapp/bwapp/rlfi.php?language=lang_en.php&action=go
我们只需要修改这个文件的内容即可,我们选择一个内网端口扫描的代码文件
D:\phpStudy\WWW\bwapp\evil\ssrf-1.txt
http://192.168.222.4/bwapp/evil/ssrf-1.txt
该ssrf-1.txt文件的内容是
是一个进行端口扫描的代码
我们使用win7作为靶机进行端口扫描,设置请求post为对方的ip地址
这是win7的ip地址,点击发送
成功扫描出了对方主机的端口开放情况,实验成功。
2.SSRF防御方法
防御方法如下
总结
本次实验是对SSRF漏洞原理和利用攻击,以及防御方法进行讲解,我们在测试过程中可以找相应的测试点,远程包含点,进行测试练习,加强渗透测试的能力。