讲讲EXIF Viewer XSS漏洞的来龙去脉

前言

2016年4月21日@补天漏洞响应平台 爆出 @乌云网 存在存储型XSS漏洞,那些年exif插件做过的事——乌云存储型XSS(已被人批量打COOKIE)

3381989711

通过长图可以看到该漏洞的最终成因是因为chrome插件Exif Viewer获取图片exif信息时没有进行过滤,导致了XSS代码的执行。

随后,乌云官方也迅速提交了该漏洞到自己平台(不要问我怎么知道是乌云官方自己提交的,你猜~),如图:

并且忽略了该漏洞,并表示会对WooYun图片上传进行处理:

但是截至发稿前,乌云依旧没有对图片上传进行处理。

当然,处理了也没有什么卵用 :)

继续说

本来以为这件事情就这么过去了,然而最近,国内某安全团队利用该漏洞打到了某某某SRC审核人员的cookies,还写了文章邀请其他安全圈子的小伙伴来讨论:

我的天呐,我跟你讲,当时我就是这个表情

也就不对之前所有的事情进行评价了,反正跟我也没什么喵关系…

说重点

为什么我上面说乌云处理了图片上传也没有什么卵用?

处理图片上传的目的是为了清除exif信息,但是要触发xss并不需要图片一定在该网站的图片上

比如我们将没有清除exif信息的图片上传在我们自己的服务器上,然后在目标网站上引用,一样可以触发..

首先上传一张带有xss代码的图片到我的网站:

可以看到是可以触发XSS的,并且domain是我的网站。

随后我们将这个图片发到乌云ZONE上:

弹出的document.domain变成了zone.wooyun.org

所以 处理了图片上传也没有什么卵用 :)

为什么

写过chrome插件的人都知道,其实chrome插件就是各种js实现的,

backgroundcontent_script的什么概念我就不在这里阐述了,有兴趣的小伙伴可以去某度或某歌~

我们要识别每个页面上的图片固然是要使用content_script,然后把match设置成http://*/*或者https://*/*

后来我看了看插件的源码,的确是这样:

然而我们知道content_script的作用是插入匹配到的页面,

就像我们进行MITM攻击时候的代码注入(code injection)一样

所以他的作用域是引用图片的域,而不是某人理解的图片所在网址的域。

补天是如何防御该漏洞的?

看到这个漏洞的时候,首先对补天漏洞响应平台(http://butian.360.cn)进行了测试,

当然,是不存在的 233333

因为360的图片对exif信息进行了处理,直接清理掉了,所以还是考虑用外链的方式,

然后我抓包把360图片的地址改成了我的网站地址,但是发现结果是:

我的天呐!竟然判断图片是不是360图床的地址,不是的话就替换成空!!

正确的修复姿势

我们想要正确的修复漏洞,首先应该明白漏洞的成因,

然而这个漏洞出现的原因很明显是chrome过滤不严格

所以我们应该修复的问题是chrome插件,

当然,正确的使用和防范这样的隐患也是极好的。

修复方案

首先写一个js过滤html实体的方法:

随后在插件识别输出的时候进行过滤:

最终效果如图:

最后附上Exif Viewer的fixed版本:

链接: http://pan.baidu.com/s/1jIEVqkQ 密码: kixd

截止发稿前,漏洞已经通知插件官方并且将该修复版本发送给官方

等待修复吧 :)

结语

在一个安全人员的角度来看,这么一个chrome插件漏洞引起了不小的波澜是一件好事,

这能凸显出大家对安全的重视。

但漏洞爆出来以后,我们关注的点,应该是如何修复漏洞,而不是没完没了的胡扯,炒作。

ps:本文仅讨论技术,对涉事机构不做任何评价,如有误伤,敬请理解。

原文作者:Tuuu Nya

原文链接:http://www.hackersb.cn/hacker/140.html

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
快速访问您查看的任何图像的EXIF数据 快速访问您在Google Chrome浏览器中查看的任何图像的EXIF数据如何使用它? -右键单击任何图像/图片-选择“显示Exif数据”-然后在浏览器右侧的单独面板中显示图像/ exif信息。 顶级功能:-完全免费-只需单击鼠标右键即可获得各种信息-预览图像详细信息-支持300多个摄像头-直方图或RGB颜色重构-将exif信息自动复制到剪贴板-共享重要更新的通知-其他功能即将推出…-99%的网站不受影响。 帮助我们解决任何问题-无需注册或登录要测试什么? 在http://bit.ly/2cOdqNT上尝试这些图片http://bit.ly/2cOcvNN、http://bit.ly/2cOdD3E及更多内容权限:-此应用需要读取权限才能提供一些高级功能功能。 *没有广告软件。 没有间谍软件。 别吵了。 支持链接:http://tiny.cc/extsupport ==========当前问题========== 1.破坏了一些网站吗? -任何导入了一些(require-js)javascript的网站都可能会受到影响-解决方案:2016年10月17日,我们对其进行了修复,希望它可以解决所有问题2。PDF未打开-以.pdf结尾的所有网址均已修复-像来自Drive的蒸出的PDF文件不受影响-其他格式的PDF可以在此处进行验证-http://bit.ly/2d8lStp-如果有任何问题,请在http://tiny.cc/extsupport上共享详细信息/链接。3. CSS破解某些网站-我们已于2016年9月21日修复此问题,希望它不会破解任何新CSS其他问题? 请在http://tiny.cc/extsupport上报告它们。===============常见问题解答=============== 1.某些网站为何崩溃? -由于此扩展程序需要某些(jQuery)库才能工作,并且可能与网站的导入相互冲突。2.是否注入/ css? -是的,因为它是一个集成的扩展,需要直接从浏览器DOM处理内容-它仅注入提供EXIF数据功能所需的脚本/ css ============更改日志== ========== 2.4.1-现在支持大多数PDF格式而不会中断-固定/覆盖加载图像的问题已得到修复-网站中断的问题(很少)现在终于得到了修复2.4.0-修复了该问题CSS规则破坏了一些网站-增加了内容空间2.3.8 / 9-UI增强2.3.7-修复了曾经破坏两个网站的require-jquery.js问题2.3.6-PDF问题不可复制,请在此处进行验证-http://bit.ly/2d8lStp,并在http://tiny.cc/extsupport上报告任何问题2.3.5-修复了缺少的相机图片细节2.3.4-改进了外观-通知支持-修复了PDF开放性问题(Ref-http://prntscr.com/cj3h7i)2.2-更新了摄像头模型-添加了新的exif属性2.1-UI更新-附加验证2.0-直方图支持-错误 修复-复制到剪贴板选项1.5。*-额外的相机支持1. *-基本的exif信息显示需要快速帮助吗? 通过-http://tiny.cc/extsupport与我们联系 支持语言:English,Français,Tiếng Việt,Ελληνικά,русский,中文 (繁體)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值