07 SSRF漏洞

7-1.SSRF漏洞原理介绍
1)SSRF漏洞定义
SSRF(服务端请求伪造)是一种构造请求,由服务端发起请求的安全漏洞。
一般情况下,SSRF的目标就是与外部隔离的内网资源。
2)SSRF漏洞原理
SSRF形成原因:服务端提供了从其他服务器获取数据的功能,但没有对内网目标地址做过滤与限制。
主要方式:
1、对外网、服务器所在内网、本地进行端口扫描,获取Banner信息。
2、测试运行在内网或本地的应用程序。
3、利用file协议读取本地文件等。
3)SSRF漏洞代码分析
存在SSRF漏洞代码:
<?php
function curl($url){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_exec($ch);
curl_close($ch);
}

$url = $_GET["url"];
curl($url);
?>
4)SSRF漏洞利用
利用file协议获取本地文件等

7-2.产生SSRF漏洞的代码
1)产生SSRF漏洞的PHP函数
很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片、下载文件、读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地服务器。这种形式的攻击称为服务器端请求伪造攻击。
ssrf攻击可能存在任何语言编写的应用,接下来我们将展示php中可能存在SSRF漏洞的函数。
file_get_content()、fsockopen()、curl_exec()
2)file_get_contents
下面的代码使用file_get_contents函数从用户指定的url获取图片。然后把它用一个随机文件名保存在硬盘上,并展示给用户。

3)fsockopen()
使用fsockopen函数实现获取用户指定url的数据(文件或者html)。这个函数会使用socket跟服务器建立tcp连接,传输原始数据。

4)curl_exec()

 

 

7-3.SSRF漏洞利用-探测内网资源
1)SSRF漏洞代码分析
以下代码存在SSRF漏洞

2)实验环境搭建
使用NAT网卡模式打开vm windows server 2003。
本地修改host文件,从而使得本地IP地址与自定义域名映射
3)利用SSRF进行内网资源访问
一般情况下将web应用程序暴露在互联网可以通过web浏览器进行访问。但是会将内网资源封闭起来,避免与外部交互。那么如果网站存在SSRF漏洞,利用SSRF进行内网资源访问。
4)利用SSRF进行端口扫描
提交对应参数url包含IP地址:端口号 测试端口状态
http://127.0.0.1/ssrf/ssrf.php?url=http://127.0.0.1:3306

 

posted on 2021-04-08 00:51  Ben_John  阅读(111)  评论(0编辑  收藏  举报

导航