最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

京東滑塊js逆向

2023-08-04 20:10 作者:灰色de世界  | 我要投稿

?

聲明:文章內(nèi)容僅供參考學(xué)習(xí),如有侵權(quán)請聯(lián)系作者進(jìn)行刪除。


之前寫過一篇selenium自動化的思路:京東滑塊

本次介紹下js逆向的思路


js逆向步驟:

????????通過接口獲取兩張驗(yàn)證碼圖片 ——>? 在內(nèi)存里面處理圖片 ——>? 通過opencv計(jì)算出缺口的距離 ——>? 模擬封裝滑塊的軌跡參數(shù)? ——>? 逆向加密軌跡的參數(shù) ——>? 加密并請求驗(yàn)證接口。


首先,在京東登錄頁面輸入任意的賬號密碼點(diǎn)擊登錄,即可觸發(fā)滑塊

在F12下,隨意拖動滑塊,可以獲取到以下3個(gè)接口

通過接口返回值可以判斷出第二個(gè)接口是獲取圖片的接口,第三個(gè)接口是驗(yàn)證滑塊的接口。

圖片接口的bg是背景圖,patch是滑塊都是base64編碼的

????????和之前不同的是網(wǎng)頁上面的base64編碼多了一個(gè)頭

opencv測算滑塊距離代碼如下

有一個(gè)需要注意的是,js逆向里面距離是需要額外加上一個(gè)初始值的,在23-25之間。

回到第三個(gè)接口,從參數(shù)上面看,很明顯d是滑塊軌跡加密的參數(shù)

通過多次觸發(fā)接口,我們可以發(fā)現(xiàn),除了d外,c和s也是會變化的;

通過參數(shù)搜索,可以確定c是圖片接口返回值里challenge的值

s?是某個(gè)接口返回值里_jdtdmap_sessionId的值

雖然e的值不變,但是值挺長的(沒辦法忽視0_0),后面查了下發(fā)現(xiàn)是cookie里面的

接下來就輪到加密d上面了

從堆棧里面尋找運(yùn)行了哪些js文件,這個(gè)接口只運(yùn)行一個(gè)js文件,從submit可以推測第二個(gè)可能就是我們需要的斷點(diǎn)位置

?進(jìn)入里面發(fā)現(xiàn)過于簡單,直接斷點(diǎn),重新觸發(fā)滑塊

可以知道b就是我們要封裝的軌跡,前面a['getCoordinate']就是加密方法

進(jìn)入加密里面

結(jié)合之前堆棧的內(nèi)容,可以知道,加密都在這個(gè)文件里面,可以整個(gè)文件直接拿(也可以扣取出加密的部分⊙?⊙)

通過js運(yùn)行的部分

發(fā)現(xiàn)結(jié)構(gòu)簡單(這京東是把所有驗(yàn)證都扔給軌跡識別了是吧? Σ(っ °Д °;)っ

直接上代碼

關(guān)于滑塊軌跡的模擬,這個(gè)網(wǎng)上的代碼挺多的,我直接參考翻譯了一個(gè)python的版本出來

源碼底下自己拿

我來簡要說下思路≡ω≡

? ? ? ? ?首先,復(fù)制參數(shù)b的軌跡,這個(gè)軌跡需要正?;瑒雍妥詈髞砘鼗蝿觾蓚€(gè)種

? ? ? ? ?注意:晃動的軌跡x是要從0開始的,可以通過擴(kuò)大F2的大小,壓縮頁面的大小

? ? ? ? ?然后,將計(jì)算得到的距離 +?復(fù)制的正常滑動軌跡的初始距離來截取正?;瑒拥膮^(qū)間

? ? ? ? 重點(diǎn),取當(dāng)前時(shí)間戳前9位和復(fù)制下的正常軌跡的時(shí)間后4位,拼接成完整的時(shí)間

? ? ? ? 之后,通過復(fù)制的晃動軌跡 +?最終軌跡的值來模擬晃動;時(shí)間處理和上面差不多

結(jié)果如下

以下是源碼鏈接

??????? https://gitee.com/tkgzone/CSDN.git


京東滑塊js逆向的評論 (共 條)

分享到微博請遵守國家法律
鄢陵县| 中宁县| 平遥县| 崇明县| 白城市| 雷波县| 苗栗县| 德惠市| 叶城县| 方正县| 澄江县| 五峰| 子洲县| 攀枝花市| 霍邱县| 通山县| 庐江县| 宁陵县| 黑水县| 沂源县| 明星| 葫芦岛市| 彰武县| 神木县| 罗平县| 天津市| 余干县| 巨鹿县| 和平县| 齐齐哈尔市| 湖南省| 哈巴河县| 老河口市| 互助| 迭部县| 沙雅县| 余干县| 正安县| 深水埗区| 墨竹工卡县| 黑龙江省|