前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战笔记之二维码劫持漏洞

实战笔记之二维码劫持漏洞

作者头像
C4rpeDime
发布2022-04-26 19:54:17
1.4K0
发布2022-04-26 19:54:17
举报
文章被收录于专栏:黑白安全黑白安全

----------------------------思考了一段时间情报类的实战笔记不适合未经脱敏地外放以后,我会去掉具体细节跟大家分享思路。这次面向白帽子师傅们,分享一个实战中碰到的二维码劫持漏洞案例------------------------------------0x01 场景再现vue类型的网站,登录口,有三种登陆方式。(ps:你要是只看到了两

----------------------------

思考了一段时间

情报类的实战笔记

不适合未经脱敏地外放

以后,我会去掉具体细节

跟大家分享思路。

这次面向白帽子师傅们,

分享一个实战中

碰到的二维码劫持漏洞案例

0x01 场景再现

vue类型的网站,登录口,有三种登陆方式。

(ps:你要是只看到了两种登陆方式,抬头反思三秒钟)

选择扫码登录,弹出“微信扫码登录”

直觉告诉我,这里可能存在漏洞。

0x02 漏洞分析

微信扫码后,显示需要关注该网站的公众号

待微信绑定公众号后,即可注册/登录。

注册了一个账号后。

再进行扫码登录

扫码>> 弹出“前往包含的公众号”

 “点击授权”

微信网页跳转,>>>点击确认登录

会发现浏览器Web端页面跳转,

登录成功!

分析

①浏览器Web端分析

回到最开始的地方,Web端网站的扫码登录入口点

此时,浏览器进入二维码轮循状态,

不断向服务器发送请求,

判断是否扫描了二维码。

点开任意一个轮循环发送的请求数据包

你会发现post body的其中一个参数,“loginId”。

记住这个值:f4a891xxxxxxxx

②微信客户端分析

在扫码前往公众号后,需要“点击授权”确认后,即可成功登录。

我们在微信PC端,提取这个“点击授权”的URI超链,进行分析

https://xxxx.com/#/login/auth?loginId=f4a891xxxxxxxxxxxxxxx

发现携带了参数loginId值,并且与上一步中的loginId值相同!

有什么用呢?

一旦受害者扫码

攻击者能否“代替”对方点击授权,如何代替?

因为我们有了loginId,通过自行构造出“点击授权”的URI

构造漏洞利用思路:

两个身份:受害者,攻击者。

前提条件:受害者注册了该网站,可用微信扫码直接登录

攻击场景:攻击者打开该网站,选择微信扫码登录。

截图,截取二维码发给受害者。

受害者扫码>>点击“前往该公众号”

攻击者获取loginId  构造“点击授权”的URI链接

从而完成账户入侵

0x03 漏洞复现

① 打开登录网站

②点击扫码登录

③记录轮循数据包的loginId值f4a89xxxxxxxxxx

④直接截取web端登录的二维码图片,发给受害者

有个前提:

 二维码在有效期内,因为时间过长,二维码会失效

受害者视角

受害者扫码

此时,我们视角转换,

不需要关心受害者会接下来进行什么操作,

他都已经沦陷了

攻击者视角

通过loginId值的拼接

自行构造出URI

https://xxxx.com/#/login/auth?loginId=f4a89xxxxxxxxxx

攻击者微信客户端直接打开该链接

点击“确认登录”

OK

Web端浏览器页面跳转

使用受害者账户登录成功!

至此,完成复现。

总结

如果要真正用到社工钓鱼,可以自行搭建一个服务器

用于对接该网站的扫码登录入口

从而保证二维码更新,不失效。

这个,已经看过很多大师傅写过了

就不再重复。

希望有用,如果没有

我想下篇或许会有。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-02),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档