打开web界面进入登陆然后加载二维码
网站开始轮询,来检测二维码状态
打开手机APP进入”扫一扫”,扫描二维码
网站检测到二维码被扫描,进入被扫描后的界面,继续轮询来获取凭证
手机APP进入确认登陆界面 (当点击确认登陆)网站轮询结束获取到了凭证,进入个人中心;(当取消登陆)网站轮询设定时间自动刷新页面。
https://login.taobao.com/member/login.jhtml?style=miniall&from=&newMini2=true
https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?lgToken=xxxxxxxxxx&defaulturl=&_ksTS=1523776773834_118&callback=jsonp119
每个二维码都有个相对应的lgToken 只要相对应的二维码被扫描且登录 就可以通过监听lgToken的值 就可以获取到该账号登录的权限
这里他一直访问2个lgToken的链接 其中有个是没用的
那怎么判断哪个是真确的 哪个是没用的呢 这你需要打开那个链接 然后 用手机淘宝扫描那个二维码 code的值变成10001 就是哪个 如下图
一开始code的值都是10000 拿二维码扫描过后 其中一个链接就会变成10001 变成10001的那个链接 就是二维码对应的
点确认登录后
url相对应的那个链接就是登录淘宝的链接 只要复制那个url在浏览器上打开 就自己登录淘宝
可对应的问题来了
1、二维码太显眼几乎没人会扫
2、扫码后 有个 您的设备位于湛江附近登录 这样的提示 也压根就没人会点登录了
3、二维码时间久了会过期
问题一 二维码问题 我先将二维码解码看看
发现是个链接 打开就是淘宝登录的页面
这时 我想到看个新的玩意 淘口令
于是
¥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的值 就可以直接登录淘宝号了
所以 最后的攻击成本 就是一个淘口令 ¥7bRo0I6DBfb¥ 只要他打开 并点确认登录 我就能拿到他的账号权限
作者:算命縖子
原文由微信公众号:IT同路人
Ps:文章仅供参考,目前漏洞已修复