本文所示漏洞已经修复,标准的二维码登陆流程如下:
- 打开 web 界面进入登陆然后加载二维码。
- 网站开始轮询,来检测二维码状态。
- 打开手机 APP 进入“扫一扫”,扫描二维码。
- 网站检测到二维码被扫描,进入被扫描后的界面,继续轮询来获取凭证 。
- 手机 APP 进入确认登陆界面 (当点击确认登陆) 网站轮询结束获取到了凭证,进入个人中心;(当取消登陆) 网站轮询设定时间自动刷新页面。(调用 key 大佬的原话)
https://login.taobao.com/member/login.jhtml?style=miniall&from=&newMini2=true
每个二维码都有个相对应的 lgToken,只要相对应的二维码被扫描且登录 ,就可以通过监听 lgToken 的值就可以获取到该账号登录的权限。
这里他一直访问2个lgToken 的链接 ,其中有个是没用的。
那怎么判断哪个是真确的 ,哪个是没用的呢 ,这你需要打开那个链接 。然后,用手机淘宝扫描那个二维码 code 的值变成 10001 就是哪个。如下图
一开始code的值都是10000 。 拿二维码扫描过后,其中一个链接就会变成10001变成10001的那个链接就是二维码对应的。
点确认登录后。
url相对应的那个链接就是登录淘宝的链接。只要复制那个url在浏览器上打开,就自己登录淘宝。
可对应的问题来了。
- 二维码太显眼几乎没人会扫。
- 扫码后,有个“您的设备位于湛江附近登录”这样的提示,也压根就没人会点登录了。
- 二维码时间久了会过期。
问题一、二维码问题 ,我先将二维码解码看看。
发现是个链接,打开就是淘宝登录的页面。
这时,我想到看个新的玩意“淘口令”。
于是
¥1wbz0I64e5k¥
打开后,和扫描的结果一样,证明思路没错。
可问题二的提醒和问题三的时间限制没解决。
于是我想到如果就在本地打开,会不会提醒就没有了。这样,时间问题也基本可以解决了。
于是我找到了 二维码的接口 https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do
于是我写了个php文件。
这个php的作用是打开https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do
获取里面的二维码图片链接和获取二维码对应的lgToken的值,并把lgToken的值保持到tb_Token.txt文件里,并调用了个二维码解码的图片接口,把二维码解码,随后页面跳转到解码后的 url 地址。
我把这个php放到我的网站里 http://www.nmd5.com/taobao.php
这样谁一访问这个php页面,就会获取到二维码相对应的lgToken值然后跳转到二维码解码后的链接。
现在只要把 http://www.nmd5.com/taobao.php转成淘口令就好 。
可是问题又来了 。
淘口令只能支持阿里的url链接转换。
于是我想到了url跳转漏洞 。
于是又去找对应的链接。
http://h5.m.taobao.com/scan/transit-sms.html?url=http://www.nmd5.com/taobao.php
找到了这个链接 。
¥7bRo0I6DBfb¥
复制淘口令到淘宝 app 里面打开。
这样只提示了位于附近登录,这样就比刚刚那个好多了。
现在基本满足要求了 。
现在写个 php 来帮我检测对应lgToken只要他一点确认登录就能获取到他的登录权限。
通过url的值就可以直接登录淘宝号了。