我们只熟悉写入型csrf,像修改用户信息……今天介绍一下读取型CSRF,使用DoraBox这个靶场来演示一波!

地址:https://github.com/Acmesec/DoraBox

JSONP劫持

现在所有支持JavaScript的浏览器都使用同源策略,才诞生了JSONP(JSON with padding),远程调用json文件来实现数据传递的技术,它的特点是可以跨域读取数据。

以DoraBox中JSONP劫持模块为例子:

观察代码:

如果callback为空,则输出json格式的info;

如果callback值不为空,则对这个值做一个过滤后输出json格式的info。

构造如下jsonp.html:

打开链接,获取到json值,即获取到用户敏感信息。

修复建议

对refer进行限制;

打乱响应主体内容;

使用token;

CORS跨域资源读取

CORS允许浏览器向跨域服务器发出XmlHttpRequest请求,CORS与JSONP的区别:是JSONP的升级版,JSONP只能通过get方式请求,CORS支持get和post请求。

CORS跨域原理:向header中注入Access-Control-Allow-Origin服务端过判断请求头中的参数是否被允许的域来决定请求源是否有权限获取数据。

以DoraBox中CORS跨域资源读取为例子:

查看响应头:

*表示所有的请求源的所有形式的请求,都被允许访问数据,这样也就造成了一个跨域读取敏感信息的漏洞。

构造如下cors.html,创建XMLHttpRequest对象为xhr,通过ajax的onreadystatechange判断请求状态,如果请求已完成,且相应已就绪,则弹出返回文本。

访问cors.html,触发cors漏洞,如下:

修复建议:

加强对access-control-allow-orign的控制;

Flash跨域劫持

假设a.com有一个SWF文件,这个文件是想要获取 b.com 的 userinfo 的返回响应主体,SWF首先会看在 b.com 的服务器目录下有没有 crossdomain.xml 文件,如果没有就会访问不成功,如果有 crossdomain.xml ,则会看crossdomain.xml 文件的内容里面是否设置了允许 a.com 域访问,如果设置允许了,那么 a.com 的SWF文件就可以成功获取到内容。所以要使Flash可以跨域传输数据。

其中,b.com下的crossdomain.xml文件内容如果是如下的,那么就存在Flash跨域问题。

修复建议:

加强对access-access-from的控制;

到这里,大家是不是对读取型CSRF(JSONP劫持、CORS跨域资源读取、Flash跨域劫持)有更深的了解呢?请各位师傅多多指教!

php csrf jsonp,读取型CSRF(JSONP劫持、CORS跨域资源读取、Flash跨域劫持)相关推荐

  1. 手绘10张图,把CSRF跨域攻击、JWT跨域认证说得明明白白的

    作者 | 写代码的明哥 来源 | Python编程时光 这篇文章本应该是属于 HTTP 里的一部分内容,但是我看内容也挺多的,就单独划分一篇文章来讲下. 什么是跨域请求 要明白什么叫跨域请求,首先得知 ...

  2. 「安全系列之CSRF」如何防范csrf攻击

    背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,又时常遭遇网络劫持 ...

  3. (29.1)【CSRF详解】CSRF原理、利用过程、分类、举例、工具……

    目录 CSRF 一.简介: 二.CSRF与XSS的区别: XSS CSRF 三.原理: 四.基本流程: 五.危害: 六.分类: 站外攻击: 站内攻击: 七.举例: Get提交方法: Post提交方法: ...

  4. 什么是CSRF,怎么防范CSRF!

    学习web安全就一定不能不知道CSRF,那么什么是CSRF呢?对于CSRF攻击我们应该如何进行防御呢?小编这里就整理了CSRF的介绍.原理以及防御方法来帮助大家认识CSRF. 一.什么是CSRF? C ...

  5. Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式

    文章目录 Django CSRF 什么是CSRF? Django CSRF Django CSRF 中间件 Django,Ajax提交csrf_token处理 Django 设置 cookie 中的 ...

  6. Django 中CSRF中间件 'django.middleware.csrf.CsrfViewMiddleware',

    1.Django中CSRF中间件的工作原理及form表单提交需要添加{% csrf_token %}防止出现403错误 CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站 ...

  7. 什么是csrf攻击如何避免,CSRF攻击与防御

    一.什么是CSRF攻击 CSRF攻击的全称为跨站脚本伪造,也称为One Click Attack或者Session Eiding,通常缩写为CSRF或者XSRF.CSRF通过伪装来自受信任的用户的请求 ...

  8. 【CSRF】学习关于CSRF攻击和防范

    文章目录 1.CSRF攻击是什么 2.CSRF攻击如何实现 2.1 使用GET请求的CSRF的攻击例子 2.2 使用post请求的CSRF攻击 3.如何防御CSRF攻击 3.1 什么是CSRF令牌 3 ...

  9. 乐鑫esp8266学习rtos3.0笔记:esp产品 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

最新文章

  1. 如何快速融入团队(二)
  2. UDP千兆以太网FPGA_verilog实现(五、以太网帧的结构)
  3. rds基于什么开发_为什么不学基于TypeScript的Node.js服务端开发?
  4. 职场警示录:栽在邮件上的N种死法
  5. 微型计算机内存为8m,通常说一台微机的内存容量为8M,指的是_______。
  6. java farm tycoon_Idle Farm Tycoon
  7. python字符子串_子字符串和子序列(Python),子串,python
  8. python编程(python开发的三种运行模式)
  9. 开源GIS(六)——openlayers中overlay强大功能
  10. sitemap.xml文件生成工具
  11. 在云测平台对手机进行兼容性测试
  12. 【存储】存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN、存储池和存储卷)
  13. 【图像压缩】基于matlab余弦变换及霍夫曼编码jpeg压缩和解压【含Matlab源码 2086期】
  14. 32g的u盘速度测试软件,ToShiBa 东芝4G 8G 16G 32G 64G U盘量产教程(已测)
  15. 使用Maxima求解常微分方程~
  16. java基于springboot+vue的驾校报名预约管理系统 nodejs
  17. 华为手机便捷好用的原因,终于被我找到了
  18. 线程进程计算之多任务同步进行
  19. 2000~2009十大创业新模式
  20. 3.9使用ValidationSummary控件

热门文章

  1. 一加7 Pro 5G版也来了:入网工信部 售价将破5000元
  2. 三星Galaxy Note 10 Pro渲染图曝光:挖孔屏+前摄居中
  3. 三大运营商一季度财报出炉:营收集体下降
  4. 苹果高通虽已和解 但5G iPhone最快仍要明年才能推出
  5. 史上最奢华AirPods登场 售价直接翻四倍却还算良心
  6. 入驻商户卖隐形眼镜护理液 饿了么遭监管警告
  7. 程序员想早点下班被经理拒绝,一气之下要辞职,经理慌了
  8. python list中append()与extend()用法
  9. syslog和syslog-ng详解
  10. 深入探索多线程优化方法