宣告:本文只作學習研究,禁止用于非法用途,否則后果自負,如有侵權,請告知洗掉,謝謝!
文章目錄
- 前言
- 一、頁面分析
- 二、引數分析
- 三、引數破解
- 3.1 h5Fingerprint解密
- 3.2 password解密
- 總結
前言
又是好久沒寫文章了,上周在肝易盾的驗證碼,只解決了無感驗證,發現自己還是不太行,需要繼續學習呀,
這篇給大家帶來的是美團登入介面的加密破解,是一個RSA型別的加密,
網站:https://passport.meituan.com/account/unitivelogin
一、頁面分析
進入網頁后隨便輸入賬號密碼,找到登入的介面

二、引數分析
抓到登入介面后,看看里面的引數,其中password,csrf,h5Fingerprint這幾個引數比較特殊
然后看看原始碼里面是否有某些引數,發現原始碼中有我們需要的csrf引數,其余兩個引數是加密的,


三、引數破解
3.1 h5Fingerprint解密
因為h5Fingerprint這個引數比較特殊,我們直接搜這個引數,成功找到加密位置

然后下斷點除錯,進入utility.getH5fingerprint方法,呼叫了下圖的兩個函式,再進行或操作,其中Rohr_Opt.reload這個函式比較熟悉,在我這篇美團美食文章里有講過,我們進入這個方法看看是不是一樣的

點進去看發現是一個sojson的混淆,你可以替換一下,或者AST一下,這里我就懶得搞了,直接下斷點除錯

進去后看到這個函式,在return的地方下斷點

走到這引數e是一個json,先轉字符產再Oe方法,然后再一個btoa轉義

字串e包含如下引數,其中cts、ts都是時間戳,由于部分登入會出現滑塊,這里的mT就是滑動軌跡,如果沒出現驗證碼可以寫死,sign是之前請求回傳url加密,方法是btoa(Oe(JSON.stringify(url), {to: "string"})),其他瀏覽器環境都可以寫死

然后摳一下那幾個方法,就可以得到h5Fingerprint引數

3.2 password解密
加密入口在這里,上一行是RSA公鑰的生成,直接扣JSEncrypt的RSA加密代碼,你也可以自己寫

扣下代碼后運行下,看著還挺像

總結
到此password、h5Fingerprint的加密已經搞定了,我們輸入正確的賬號密碼,看看能否登入,可以看到回傳的結果是正確的,加密代碼太長,就不貼出來了,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248044.html
標籤:其他
上一篇:詳解大型前端專案知識點
下一篇:[CTFSHOW]JWT
