微信存储xss绕过过滤可弹窗可钓鱼他人账号

漏洞详情

披露状态:

2014-02-02: 细节已通知厂商并且等待厂商处理中
2014-02-06: 厂商已经确认,细节仅向厂商公开
2014-02-09: 细节向第三方安全合作伙伴开放
2014-02-16: 细节向核心白帽子及相关领域专家公开
2014-02-26: 细节向普通白帽子公开
2014-03-18: 细节向实习白帽子公开
2014-05-03: 细节向公众公开

简要描述:

之前看到某大牛爆出微信<a>的xss,随后又试了试,虽然过滤了href,但是还能绕过过滤。

详细说明:

在两个账号上面进行测试。。。

首先看一下微信版本,5.2,最新版本:

QQ截图20140202185333.jpg



然后试一试之前大牛所谓的代码:

QQ截图20140202185214.jpg



href="javascript"的那个直接就被过滤了,那就试一试href="url"的情况吧:

QQ截图20140202185310.jpg



rt,本地没有问题,但是登陆另一个账号就不行了,url被过滤了。。。

QQ截图20140202185934.jpg



打开消息看看,成了这个样子。。。

QQ截图20140202190133.jpg



于是突发奇想,试一试两个href,他会不会只过滤一个呢?发送代码:

<a href="www.wooyun.org" href="www.wooyun.org">baidu</a>



登录另一个账号,结果正如我所猜想。。。

QQ截图20140202191149.jpg



打开连接

QQ截图20140202191250.jpg



从显示的连接看,的确没有过滤第一个href,结果把www.wooyun.org" href="当做链接,那么接下来就好说了。。。用这个代码来突破限制:

<a href="javascript:window.alert(1);" href="任意url">xss</a>



QQ截图20140202192036.jpg



这里有三个关键点,一个是js代码后的;必不可少,还有就是第二个url一定要正确,只要可以被过滤即可,第三个是”xss“处一定要写点东西,否则就会失败。。。然后登录另一个账号,我弹~

QQ截图20140202192225.jpg



screen_20140202_1429.png



利用跳转钓鱼也so easy了

<a href="javascript:window.location.href='钓鱼url';" href="任意url">xss</a>



发送代码:

QQ截图20140202192718.jpg



QQ截图20140202192752.jpg



注意这里的钓鱼url前一定要加http://,否则无法就会失败。。。

登录另一个账号,果断跳转。。。

QQ截图20140202193004.jpg



QQ截图20140202193023.jpg

漏洞证明:

screen_20140202_1429.png





QQ截图20140202193023.jpg

修复方案:

再过滤吧。。。

版权声明:转载请注明来源 一剑萧寒@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-02-06 14:33

厂商回复:

非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无


漏洞评价: