首页 国际新闻 正文

2维码挟持机理及故意形为剖析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆

*严正声明:本文李开复仅用于教育和技能评论意图,制止用于不合法用处。

*本文作者:VoltCary,本文属 FreeBuf 原创奖赏方案,未经许2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆可制止转载。

之前看过其他的二维码登陆绑架缝隙,有的当地写的不是很具体,花了不少时刻去研讨二维码的原理,才弄狐影懂缝隙。为了照料更多入门新手,以自己的了解从头总结一遍,二维码登陆原理不是这儿的主题,不过有必要了解一下流程。

1.翻开登陆当地,挑选扫描二维码登陆,此刻加载二维码;

2.客户端开端轮询,即与服务器树立长衔接,来检测二维码状况;

3.用户翻开手机扫描二维码,此刻二维码为“scan”状况,网页向服务器不断向授权服务器轮询授权码;

4.用户手机看到“承认登陆2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆”按钮,点击此按钮向授权服务器恳求授权,答应此二维码授权,二维码为“confirm”状况(假如超时失效,为“timeout”状况);

5.用户点击“承认登陆”后,网页轮询到授权码,此刻带授权码恳求凭据,成功登陆网站,进入个人中心。

使用长轮询完成微信网页版扫码登录:

https://blog.csdn.net/x2145637/article/details/52795809

这儿有个疑问,二维码几十秒就会过期,怎样办?能够自己写个浏览器插件实时提取出恳求里边回来的状况参数,二维码会有必定的过期时刻,过期会有对应的2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆状况,监控此状况即可,比方状况参数securityId和二维码字符barcode,并更新securityId状况到本地,若timeout则改写二维码;攻击者从本地将barcode当字符串生成自己的二维码图片放在自己的网站上,js一向轮询本地的securityId状况

拜访https://wx2.qq.com/,页面如下:

访睛几画问此页面时,其实浏览器与服务器之间会树立一个长衔接,用于监控二维码状况。

监控接口为:

https://login.wx2.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uu全国违章查询id=YZm-nRUSFQ==&tip=1&r=-104081975&_=1550587274887

201相当于“scan”状况,手机扫描成功时二维码的状况,手机上点击后监控状况回来如下:

200相当于“confirm”状况,即用户点击田斌健康猫承认回来的状况。而且直接步氏神族回来凭据window.redirect_uri,此刻只需仿制此凭据到其它浏览器拜访,直接可登陆网页版微信。

二维码链接为:

https://login.weixin.qq.com/qrcode/Qe3ev-uOPg==

即二维码字符为Qe3ev-uOPg==,当二维码过期,只需更新此字符Qe3ev-uOPg==即可,更新二维码字符接口:

appid=wx782c26e4c19acffb&fun=new&lang=美眉打晋级zh_CN

经过上述可实时更新二维码到自己网站,不必忧虑过期问题。

无“承认登陆”按钮

第一种缝隙,用户扫描二维码直接登陆,没有任何提示,我们都知道,一般扫描二维码会有“承认登陆”等提示,假如没有此提示,简单被攻击者垂钓假造,诱导用户扫描,比方某APP扫描二维码有红包收取,用户只需扫描则被绑架,导致账号被攻击者登陆。这儿用乌云的事例演示。。

能够诈骗绑架进入交游用户的帐号:http://www.anquan.us/static/bugs/wooyun-2013-040673.html。

大凉王

交游登陆二维码扫描时无任何提示,伪装为加老友的二维码,用户以为是加老友的二维码,,其实是登陆的二维码,当用户扫描时,攻击者那儿可直接登陆用户账号,现在这种缝隙不多了,扫码时基本上都会有登陆等提示

登陆收据盗取

这个缝隙刚开端看的时分,以为是CSRF,,六十甲子因为大佬们把它归类为CSRF类型,可是我看的时分发现与传统的CSRF彻底不一样,导致一向以CSRF的思想去研讨,被误导了。其实便是收据盗取,结构凭据URL,然后绑架用户的账号。

登陆承认收据盗取,如襄果没有任何签名维护,攻击者能够直接点击获取的收据拼接链接进行登陆,其实这儿应该是在轮询过程呈现缝隙,用户扫描二维码后,客户端不断轮询恳求2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆服务器,而此次仅仅验证某个令牌等参数来承认用户,只需获取此令牌参数值,则能够假充用户。

取个乌云上的比方,比方 登陆承认恳求如下:

http://szsupport.weixin.qq.com/cgi-bin/mmsupport-bin/qrcodelogin?username=*********&key=*************&clientversion=25030133&devicetype=那些热血飞扬的日子android8&伊织萌amp;lan=zh_CN&uuid=AXBIICc4sUSDsFnefkNP&pass_ticket2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆=DebNjGnP2dJnq1bMvHvgL%2BezqqE70Ry9iWB625%2FRT8RRnwCD3tlq3qxuxG5YPzhx

其间uuid为二维码2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆字符,usename为微信号,uuid值怎样获取,文章前面部分现已讲过,usenam东岑西舅e改为要绑架用户的微信号,key值是不知道的,这儿只需知道key的值可经过此链接登陆方针微信号。

Referer获取key思路:URL跳转、引证站外图片处,把跳转的URL、图片改为攻击者自己网站的URL,只需受害用户点击 结构好的URL,会跳转到攻击者网站,黑糖群侠传全集优酷2维码挟制机理及成心形为分析-万博亚洲_manbetx 2.0下载_万博体育manbetx登陆此刻在攻击者服务器恳求包的Referer里,就会看到key值,当然假如跳转处URL有key才能够,不然就去寻觅带有key传递的当地,进行结构,只需能结构出向攻击者服务器发送一个恳求即可。

上述获取key值之后,拼接登陆恳求的链接,在浏览器里拜访如下:

点击“承认登陆”直接登陆受害用户微信账号。

二维码CSRF缝隙

为啥这儿是CSRF?上面却仅仅收据盗取,因为上面的“登陆承认”是不需要用户应试宝官网触发,结构URL后由攻击者直接触发。这儿的CSRF缝隙是因为攻击者无法替代用户直接触发“登陆承认“按钮,有必要以用户自己的身份触发,相似往常的添加、删去的CSRF,此处仅仅针对“登陆承认”的CSRF,当然,这儿还需要用户先扫描二维码,而不能让用户直接触发“登陆承认”的恳求,假如点击二维码链接就相当于扫描二维码的话,可直接结构POC。

当用户扫描二维码,结构一个躲藏iframe表单CSRF POC,用户扫描二维码时,此POC主动提交“承认登陆”的恳求,形成CSRF缝隙,这样说我们都能看懂吧。这儿我网上找了个比方做演示。

挖洞经圣德太子的愉快木造修建验 | Facebook的手机扫码登录缝隙https://cloud.tencent.com/developer/article/1044256

解释一下这个事例,洞主把“承认登陆”的链接抓包出来,用易仕顿浏览器翻开此链接,点击“Allow Login”抓包,结构CSRF秦始皇兵马俑的POC,此为第一个POC,因为短少用户扫码过程,文章前面我提到过,用户要先扫描二维码,再触发“Allow Login”的CSRF,因而才有了第二个POC,添加了扫码的过程。

*本文作者:VoltCary,本文属 FreeBuf 原创奖赏方案,未经许可制止转载。姬鹏飞之子姬赤军

声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间服务。