ssrf(服务器请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,ssrf攻击的目标是从外网无法访问的内部系统
curl造成的ssrf
<?php
<?php
function curl($url){
$ch = curl_init($url);//初始化
curl_setopt($ch,CURLOPRT_URL,False);
curl_setopt($ch,CURLOPRT_SSL_VERIFVPEER,FALSE);
$RES=curl_exec($ch);
curl_close($ch);
//echo $RES;
}
$url = $_GET['url'];
curl($url);
?>
使用file协议来获取本地文件
http://www.php.com:8080/test.php?url=file:///C:/WINDOWS/system32/drivers/etc/hosts
file_get_contents造成的ssrf
<?php
$url = $_GET[url];
echo file_get_contents($url);//使用file协议读取本地文件,也可以远程访问一个url的页面
?>
<?php
function Getfile($host,$port,$link){
$fp = fsockopen($host,intval(port),$errno,$errstr,30);//打开一个网络连接或者一个Unix套接字连接
if(!$fp)
{
echo "$errstr (error number $errro) \n";
else{
$out = "GET $link HTTP/1.1\r\n";
$out .= "HOST:$host \r\n";
$out.="Connection :Close\r\n\r\n";
fwrite($fp,$out);
$content ='';
while(!feof($fp)){
$content .= fgets($fp,1024);
}
fclose($fp);
}
}
}
echo(Getfile("127.0.0.1","80","/index.php"));
寻找ssrf漏洞
1.web功能上寻找,通过url地址分享网页内容
2.转码服务
3.在线翻译
4.图片加载与下载
5.图片,文章收藏功能
6未公开的api实现以及其他调用url的功能
ssrf绕过