二維碼安全之看我如何登錄你的淘寶賬號
本文所示漏洞已經修復,標準的二維碼登陸流程如下:
- 打開 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的值就可以直接登錄淘寶號了。