什么是SSRF

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

简图如下

想象一下当用户请求的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。

最新文章

  1. MongoDB安装与故障
  2. HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
  3. 1125mysqbinlog日志
  4. jqGird 学习记录
  5. Java设计模式6:策略模式
  6. hdu–2369 Bone Collector II(01背包变形题)
  7. 数组第K小数问题 及其对于 快排和堆排 的相关优化比较
  8. C# 实现抓取网站页面内容
  9. ***PHP请求服务curl以及json的解析
  10. VJ1061迎春舞会之三人组舞
  11. 关于android 自己实现 back键 home键
  12. 《Programming WPF》翻译 第8章 6.我们进行到哪里了?
  13. Matlab最新的官方文档中文翻译
  14. Qt:添加点击事件的Label并显示图片
  15. 配置nginx支持path_info模式
  16. rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签
  17. Spring Boot 全文搜索引擎 ElasticSearch
  18. D. Vasya and Triangle
  19. 从零搭建和配置OSX开发环境
  20. 通过改变unity中物体的alpha值实现若隐若现的效果

热门文章

  1. hdu5402 Travelling Salesman Problem
  2. 病毒侵袭持续中 HDU - 3065 AC自动机
  3. 一篇文章图文并茂地带你轻松学完 JavaScript 闭包
  4. ElasticSearch 搜索引擎概念简介
  5. Docker网络模式详解
  6. 【原创】k8s之job和Cronjob
  7. 牛客网多校第3场 C-shuffle card 【splay伸展树】
  8. 一个操作系统的实现sudo mount -o loop pm.img /mnt/floppy mount point /mnt/floppy does not exist losetup device is busy
  9. POJ - 3665 icow
  10. Celery&Flower文档笔记