ssrf漏洞内网渗透_ssrf漏洞分析

ssrf漏洞分析

关于ssrf

首先简单的说一下我理解的ssrf,大概就是服务器会响应用户的url请求,但是没有做好过滤和限制,导致可以攻击内网。

ssrf常见漏洞代码

首先有三个常见的容易造成ssrf漏洞的函数需要注意

fsockopen()

file_get_contents()

curl_exec()

下面是本地搭建环境测试

fsockopen()

$host=$_GET['url'];

$fp = fsockopen("$host", 80, $errno, $errstr, 30);

if (!$fp) {

echo "$errstr ($errno)
\n";

} else {

$out = "GET / HTTP/1.1\r\n";

$out .= "Host: $host\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

while (!feof($fp)) {

echo fgets($fp, 128);

}

fclose($fp);

}

?>

9afd90e5e2aebf9c75a4b5e94e8da458.png

fsockopen本身就是打开一个网络连接或者Unix套接字连接。

file_get_contents()

if(isset($_POST['url']))

{

$content=file_get_contents($_POST['url']);

$filename='./images/'.rand().'.img';\

file_put_contents($filename,$content);

echo $_POST['url'];

$img="%5C%22%22.%24filename.%22%5C%22";

}

echo $img;

?>

92fbc69b37e779485d9ee3dfd1c60d88.png

file_get_contents是把文件写入字符串,当把url是内网文件的时候,他会先去把这个文件的内容读出来再写入,导致了文件读取。

curl_exec()

if(isset($_GET['url']))

{

$link=$_GET['url'];

//$filename='./'.rand().'.txt';

$curlobj=curl_init($link);

curl_setopt($curlobj,CURLOPT_FILE,$link);

curl_setopt($curlobj,CURLOPT_HEADER,0);

$result=curl_exec($curlobj);

curl_exec($curlobj);

curl_close($curlobj);

//fclose($link);

//file_put_contents($filename, $result);

echo $result;

}

?>

eef82ff6afceb32abadfb33a4eed34d7.png

这应该是大家最熟悉的一个函数了,因为利用方式很多最常见的是通过file dict gopher这三个协议来进行渗透。

上面是通过file协议读取文件,下面这张图是通过dict协议探测端口

3773cdb83492164a25a8e6d2f7ac7ae1.png

然后是gopher协议

166022f7332a3b8c146f24f7ca71dc86.png

gopher协议和ssrf组合能达成很多功能具体用法还要深入研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值