读取型CSRF(JSONP劫持、CORS跨域资源读取、Flash跨域劫持)

我们只熟悉写入型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跨域劫持)有更深的了解呢?请各位师傅多多指教!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:什么是同源策略 同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。 同源:URL由协议、域名、端口和路径...
    南方小小姑娘阅读 4,158评论 0 1
  • Section1、为什么要跨域? 自古以来(1995年起),为了用户的信息安全,浏览器就引入了同源策略。那么同源策...
    不去解释阅读 3,641评论 0 0
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    Yaoxue9阅读 5,115评论 0 6
  • 本文源自一次内部关于跨域的讨论分享的总结 理解跨域的重点在于:了解跨域产生的场景、原理 跨域问题只在浏览器客户端环...
    744354889606阅读 1,800评论 0 1
  • 听说简书已经很久了,但是,一直没有怎么关注过,也从未想过要写自己的,但是,偶然间看了一个创业宝妈的简书,简...
    阿丁吖阅读 1,729评论 0 1