SSRF漏洞详解与利用

今天继续给大家介绍渗透测试相关知识,本文主要内容是SSRF漏洞详解与利用。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SSRF漏洞简介

SSRF漏洞,即Service-Side Request Forgery,服务端请求伪造。SSRF漏洞产生于服务器端,攻击者可以利用SSRF漏洞,冒充服务器发起请求。这样一来,收到攻击的服务器就称为了攻击者的跳板或中间人,从而被攻击者利用。
SSRF漏洞攻击流程如下图所示:
SSRF漏洞详解与利用_第1张图片
SSRF漏洞通常产生于服务器提供的访问其他外部应用的场景,这些场景通常由分享、转码、翻译、图片的分布与下载、图片文章等收藏以及未公开的API等。这些功能如果没有对用户的输入进行严格的过滤,就可能导致SSRF漏洞。
SSRF漏洞与CSRF漏洞不同,CSRF漏洞在于攻击者冒充访问服务器的用户,而服务器没有对用户发送的身份信息进行验证,过度的相信了cookie的作用,而SSRF漏洞在于攻击者直接利用了服务器自身的漏洞,攻击了服务器本身。

二、SSRF漏洞危害

SSRF漏洞危害主要有以下3点:
1、攻击内网
利用SSRF漏洞,攻击者可以利用服务器的身份发送请求,借此可以探测目标系统内网各个主机和网络设备及其端口服务情况,进行信息收集,并且可以针对内网进行GET型的Web攻击。利用SSRF漏洞,可以轻易突破目标系统防火墙的安全防护。
2、读取文件
利用SSRF漏洞,攻击者可以读取服务器内部常用文件。
3、获取站点webshell
利用SSRF漏洞,攻击者可以远程加载webshell,从而使得攻击者可以得到目标站点的shell权限。

三、SSRF漏洞攻击常用协议

SSRF漏洞攻击常用协议如下所示:
1、FTP协议
FTP协议可以用于探测目标系统端口的开放情况,开放的端口和非开放的端口在响应时间上是不同的。
2、Gopher协议
利用Gopher协议,可以更加灵活的构造Web请求。
3、Dict协议
利用Dict协议,可以探测主机、服务信息。
4、file协议
file协议可以读取目标服务器系统中的文件。
5、http和https协议
http协议和https协议可以发起http和https请求。

四、SSRF漏洞实战演示

最后,我们利用pikachu靶场对SSRF漏洞进行实战演示。
pikachu靶场SSRF漏洞部分页面如下所示:
SSRF漏洞详解与利用_第2张图片

(一)利用SSRF漏洞读取文件

我们可以利用file协议读取目标系统中的文件。利用SSRF漏洞读取目标系统文件结果如下所示:
SSRF漏洞详解与利用_第3张图片

(二)利用SSRF漏洞探测端口

我们还可以使用Dict协议来探测目标系统内网设备端口开放情况,以及收集目标端口信息。
我们使用SSRF漏洞探测内网3306端口(开放)结果如下所示:
SSRF漏洞详解与利用_第4张图片
我们使用SSRF漏洞探测内网3307端口(不开放)结果如下所示:
SSRF漏洞详解与利用_第5张图片
我们使用SSRF漏洞探测内网80端口(开放)结果如下所示:
SSRF漏洞详解与利用_第6张图片
我们使用SSRF漏洞探测内网81端口(不开放)结果如下所示:
SSRF漏洞详解与利用_第7张图片

(三)利用SSRF漏洞得到webshell

此外,我们还可以利用公网服务器,构造webshell,然后使用菜刀链接,这样就可以获取目标服务器的shell权限了,结果如下所示:
SSRF漏洞详解与利用_第8张图片
SSRF漏洞详解与利用_第9张图片

五、SSRF漏洞安全防护

对SSRF漏洞的防护,主要是限制用户的输入,可以从协议上、地址上等进行限制,或者是对返回的信息进行识别。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(渗透测试,SSRF,Web安全,渗透测试,信息安全)