[转载]聊着聊着我就上了你……的微信(两处都可以劫持微信登录的漏洞)_黑客技术

[转载]聊着聊着我就上了你……的微信(两处都可以劫持微信登录的漏洞)_黑客技术.

一、mac版客户端登录的劫持

mac版客户端的扫码登录确认页的请求为如下(有些以星号代替了)

http://szsupport.weixin.qq.com/cgi-bin/mmsupport-bin/qrcodelogin?username=*********&key=*************&clientversion=25030133&devicetype=Android-18&lan=zh_CN&uuid=AXBIICc4sUSDsFnefkNP&pass_ticket=DebNjGnP2dJnq1bMvHvgL%2BezqqE70Ry9iWB625%2FRT8RRnwCD3tlq3qxuxG5YPzhx

经过测试可发现,此请求无需用户扫码动作确认,也没有签名保护,其中username和uuid分别是用户的微信号和二维码字符,很容易得到。key无法被攻击者猜出,但是也可以通过别的方式得到,比如如下方式

微 信的公共账号发的文章url为这种:http://mp.weixin.qq.com/s?__biz=**********==& mid=10000001&idx=1&sn=bdc73ae816f2e7097c225b6070b1f2f2&from=singlemessage&isappinstalled=0#rd

在 微信中打开这种链接,最终的目标页会被微信浏览器加上key和pass_ticket参数,这样只要我们能在这篇文章中插入个自定义url的图片即可通过 referer偷到这个key。公众账号发表的文章不可以直接写自定义的IMG,但通过修改http请求里的参数就可以把图片地址换成我们自己服务器上的 url了

这样只要发送给受害者点击,或者欺骗他扫描此链接的二维码,然后就可以得到key,然后拼接那个扫码登录确认页请求,点击确认登录,我们的客户端就可以自动登录了

二、网页版微信登录的劫持

网页版客户端的扫码登录确认页的请求为如下(有些以星号代替了)

http://login.weixin.qq.com/confirm?uuid=e921eed1fbf84e&key=*****************&lang=zh_CN&scan=1406467880&clientversion=25030133&devicetype=Android-18

经过测试可发现,此请求也没有签名保护,但需用户扫码动作确认,其中uuid分别是二维码字符,很容易得到。key的话也可以通过如上方式获得。所以我们需要做的就是再让用户扫下码。

网页版二维码链接原文是这种https://login.weixin.qq.com/l/e921eed1fbf84e,经测试发现,可以直接把这个链接发送给用户访问,也可以达到用户扫描的效果

这样只要给受害者发送两个链接诱惑他点击,或者让他点击一个页面然后诱惑他去扫描内容中的二维码,就可以得到key,并让我们的请求合法。然后再拼接那个扫码登录确认页请求,点击确认登录,我们的网页版就可以自动登录了

漏洞证明:

首先在公众账号的内容中加入自定义图片

QQ20140731-1副本.png

mac客户端劫持:

先发送欺骗她点击

IMG_0962.PNG

然后我会收到

QQ20140731-7@2x.png

然后在浏览器点击确认登录

QQ20140731-6@2x.png

最后登录成功

QQ20140731-5@2x.png

网页版微信劫持:

先聊

1.pic.jpg

然后收到key

QQ20140731-3.png

QQ20140731-2.png

QQ20140731-1.png

修复方案:

如果没有需求,尽量公共账号发的消息文章中不允许有自定义src的图片

保护好get参数key不被referer等泄露,如果可以尽量用post

mac版的扫码登录需要做成和网页版一样,需要用户扫码确认才可以

对登录确认页的参数进行签名校验

等等……

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏