某度登錄js逆向

如有侵權(quán),請(qǐng)聯(lián)系我刪除


1、引言

? ? ? ? 本文章只做分析,不提供源碼

2、分析

? ? ? ? 首先看一下登錄鏈接和需要什么參數(shù)

登錄鏈接


參數(shù)1
參數(shù)2

好了,看login的參數(shù)初步我們需解決(token, password, rsakey, ds, tk, dv, fuid, sig, shaOne, rinfo)

參數(shù)太多了,我們一個(gè)一個(gè)參數(shù)進(jìn)行分析(注:下面分析的參數(shù)返回值不一定和上圖的一樣,原因是我邊調(diào)試邊寫文章)

2.1 token參數(shù)生成


token

token的參數(shù)需要解決的有(gid, sig, shaOne)

先看比較簡(jiǎn)單一點(diǎn)的gid是怎么生成的

全局搜索發(fā)現(xiàn)只有三個(gè)js出現(xiàn)gid


全局搜索gid

發(fā)現(xiàn)gid引用的是下圖這個(gè)方法


gid生成

還是通過全局搜索方法找shaOne參數(shù)


sig和shaOne參數(shù)生成

好了,找到這我們驗(yàn)證下是否是在這個(gè)函數(shù)生成的,清除緩存強(qiáng)制刷新頁面

和上圖加密后的值一樣,確定是從這個(gè)函數(shù)加密出來的

剩下的就是常規(guī)的操作了,一步一步扣代碼就好了。

2.2 password參數(shù)生成

? ????????再生成password參數(shù)之前先要找到rsakey是哪里生成的


rsakey


rsakey

可以看出password就是rsa算法加密出來的


password加密

2.3? ds和tk參數(shù)生成


login的ds和tk

他是由viewlog接口返回的,現(xiàn)在我們看下viewlog接口需要什么參數(shù),由下圖看起來我們需要解決(as,fs, sb,tk)參數(shù)


可以看到as是由viewlog接口,那上一個(gè)viewlog是怎么有as的呢?現(xiàn)在我們清除緩存再刷新頁面看看


as參數(shù)接口


發(fā)現(xiàn)只需傳ak參數(shù)就可以獲取as返回值,注:雖然這個(gè)接口也返回了ds和tk,但這兩個(gè)值不是login接口的

我們先定位到生成viewlog參數(shù)的地方,全局搜索viewlog


然后我們看下sb參數(shù)是由o賦值的,json格式化一下


mv 好像是鼠標(biāo)移動(dòng)的像素點(diǎn),cr好像是一些頁面參數(shù)

rzData初始化的地方


sb參數(shù)生成的地方

找到sb參數(shù)生成的地方,代碼我就不詳細(xì)說了

而fs是由aes加密生成出來的,key是as加appspi0,values是sb

tk參數(shù)則是上一個(gè)viewlog返回值

ds和tk總結(jié):

? ? ? ? 1. 首先訪問viewlog接口。參數(shù)ak=31a4dfdeb6509f5257bcac99b7be676a

? ? ? ? ?2. 再訪問viewlog接口, 參數(shù)如下:

????????????????as=上個(gè)viewlog接口返回的as

????????????????fs=通過aes加密,key是as加appspi0,values是sb

? ? ? ? ? ? ? ? sb=鼠標(biāo)移動(dòng)的像素點(diǎn),以及一些瀏覽器參數(shù),詳細(xì)請(qǐng)看sb參數(shù)生成的地方

????????????????tk=上個(gè)viewlog接口返回的tk

2.4? dv參數(shù)生成

? ? ? ? 通過全局搜索定位到dv賦值的地方,發(fā)現(xiàn)是window.LG_DV_ARG.dvjsInput進(jìn)行賦值的


? ? 再次通過全局搜索dvjsInput關(guān)鍵字,定位到生成的地方


?通過堆棧,找到e的參數(shù)生成

? ? ??

?后面就靠自己扣代碼了

2.5??fuid 和rinfo參數(shù)生成

? ? 通過fuid = 關(guān)鍵詞找到fuid生成的地方

? ??


瀏覽器指紋



? ? 總結(jié),fuid參數(shù):先生成瀏覽器指紋,通過aes加密,rinfo:將fuid參數(shù)傳入_0x2ca40c函數(shù)進(jìn)行加密

? ? 如不知瀏覽器指紋是什么請(qǐng)自行百度

2.6? sig, shaOne

? ? 請(qǐng)參考2.1? ?token生成,只是傳入的參數(shù)不一樣而已

3、Python代碼

? ??????

個(gè)別Python代碼


4、測(cè)試

? ??

5、js轉(zhuǎn)Python代碼注意的點(diǎn)

? ? ? ? 5.1? &,>>? 需要通過ctypes.c_int庫執(zhí)行

? ? ? ? ?5.2? >>> 需要js2py第三方庫進(jìn)行轉(zhuǎn)換

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 首先F12填個(gè)登陸信息,抓個(gè)包看看有些什么收獲;在發(fā)出post之前后臺(tái)Ajax加了了兩個(gè)數(shù)據(jù),如下 1.返回as、...
    Python之戰(zhàn)閱讀 2,009評(píng)論 0 0
  • 分享一個(gè)破解JS登錄的案例,源碼地址 https://github.com/GoJerry/xinBangLogi...
    GoPython閱讀 2,015評(píng)論 0 8
  • 前言 知乎登錄踩坑記。。 分析 打開主頁,登錄,抓包三連。根據(jù)響應(yīng)內(nèi)容,可以確定這個(gè)就是登錄的包: 表單內(nèi)容里直接...
    太陽花田向日葵閱讀 1,708評(píng)論 0 0
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,961評(píng)論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 8,248評(píng)論 0 4

友情鏈接更多精彩內(nèi)容