目录
SSRF简介
SSRF(server-site request forey,服务器请求伪造)是一种构造请求,由服务器发起请求的安全漏洞。
一般的情况下,SSRF的目标就是与外部隔离的内网资源
SSRF漏洞原理
服务器提供了从其他服务器获取数据的功能,但没有对内网目标地址做过滤与限制。
SSRF漏洞的验证方法
- .因为SSRF漏洞是让服务器发送请求的安全漏洞,所以我们可以通过抓包分析发送的请求是否是由服务器发送的,从而判断是否存在SSRF漏洞
- 在页面源码中查找访问的资源地址,如果该资源地址类型为www.xxx.com/url.php?image= (地址)就有可能存在SSRF漏洞
主要用途
1.对外网、服务器所在的内网、本地进行端口扫描,获取Banner信息。
2.测试运行在内网或本地的应用程序
3.利用file协议读取本地文件
产生SSRF的PHP函数
- file_get_contents()
- fsockopen()
- curl_exec()
SSRF漏洞常见位置
*所有能调用外部资源的参数都有可能存在SSRF漏洞
- 分享
- 转码服务
- 在线服务
- 图片加载与下载:通过url加载或者下载图片
- 图片、文章收藏功能
- 未公开的api实现以及其他调用URL的功能
SSRF漏洞代码分析
<?php
if(isset($_GET['url']))
{
$link =$_GET['url'];
$curlobj = curl_init($link);
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($curlobj);
echo $result;
curl_close($curlobj);
}
实例演示-读取本地文件
127.0.0.1/ssrf.php?url=file:///c:/post.txt