欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SSRF攻击原理

程序员文章站 2022-03-10 11:42:37
什么是SSRF 一个对外的Web接口,改接口能让用户控制curl命令,去访问别的web服务。 简图如下 想象一下当用户请求的 改成 ,是不是觉得原本不可能访问到内网的主机,现在就很容易就能做到了。 原理 PHP代码演示: 1.查看代码的时候检查是否使用curl_setopt( )函数; 2.在看传入 ......

什么是ssrf

一个对外的web接口,改接口能让用户控制curl命令,去访问别的web服务。

简图如下
SSRF攻击原理

想象一下当用户请求的baidu.com/x.php?image=google.com/1.jpg 改成 baidu.com/x.php?image=private.com/php.info,是不是觉得原本不可能访问到内网的主机,现在就很容易就能做到了。


原理

php代码演示:

$url = $_get['url'];
curl($url);

function curl($url){
    $ch = curl_init(); // 初始化curl会话对象
    curl_setopt($ch,curlopt_url,$url); // 抓取url并把它传递给浏览器
    curl_setopt($ch,curlopt_header,0); 
    curl_exec($ch); // 执行请求
    curl_close($ch);
}

1.查看代码的时候检查是否使用curl_setopt( )函数;
2.在看传入的url是否是来自外部;


防护

跳转的url参数只能是白名单里面的url。