A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

简图如下


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


原理#
PHP代码演示:

Copy
$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。
以上文章转载至网络

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马