概述
SSRF(Server-Side Request Forgery)服务器端请求伪造,是一种由攻击者构造请求,服务器端发起请求的安全漏洞。当然之所以要这样曲折,是因为SSRF的目标一般是外网无法访问的内部系统,所以需要用服务器端发送。
SSRF原理
SSRF形成的原因在于服务器端提供了从其它服务器应用获取数据的功能且没有对目标地址做过滤和限制。通过该漏洞我们可以攻击内网的服务器,获取相应的资源信息,利用file协议读取内部网络文件等。
如下代码所示,是造成SSRF漏洞的典型代码,主要介绍下某些函数的功能。
<?php
function curl($url){
$ch = curl_init(); // 初始化curl组件
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch); // 抓取URL并把它传递给浏览器
curl_close($ch); // 释放curl资源
}
$url = $_GET['url'];
curl($url);
?>