本文最后更新于521 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
一、产生SSRF漏洞的函数
SSRF攻击可能存在任何语言编写的应用,接下来将举例php中可能存在SSRF漏洞的函数。
1、file_get_contents:
下面的代码使用file_get_contents函数从用户指定的url获取图片。然后把它用一个随即文件名保存在硬盘上,并展示给用户。
<?php
if (isset(content = file_get_contents(filename =’./images/’.rand().’;img1.jpg’;
file_put_contents($filename, $content);
echo img = "<img src="".$filename.""/>";
}
echo $img;
?>
2、sockopen():
以下代码使用fsockopen函数实现获取用户制定url的数据(文件或者html)。这个函数会使用socket跟服务器建立tcp连接,传输原始数据。
<?php
function GetFile(port,fp = fsockopen(port), $errno, fp) {
echo "$errstr (error number out = "GET out .= "Host: out .= "Connection: Close\r\n\r\n";
fp, contents=”;
while (!feof(contents.= fgets(fp);
return $contents;
}
}
?>
3、curl_exec():
cURL这是另一个非常常见的实现,它通过 PHP获取数据。文件/数据被下载并存储在“curled”文件夹下的磁盘中,并附加了一个随机数和“.txt”文件扩展名。
<?php
if (isset(link = curlobj = curl_init();
curl_setopt(curlobj,CURLOPT_URL,curlobj, CURLOPT_RETURNTRANSFER, 1);
curlobj);
curl_close($curlobj);
filename, $result);
echo $result;
}
?>
先创建一个SSRF漏洞的文件
<?php
function curl($url){
ch, CURLOPT_URL, ch, CURLOPT_HEADER, 0);
curl_exec(ch);
}
$url = url);
?>

获取百度资源

获取内部网站


