最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS逆向之加密參數(shù)定位

 更新時(shí)間:2024年01月11日 09:39:56   作者:鬼手56  
越來(lái)越多的網(wǎng)站進(jìn)行數(shù)據(jù)傳輸時(shí)不使用明文傳輸,本文主要介紹了JS逆向之加密參數(shù)定位,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

當(dāng)我們對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行抓包分析之后,需要用開(kāi)發(fā)者工具對(duì)加密參數(shù)進(jìn)行全局搜索。當(dāng)搜索不到加密參數(shù)的時(shí)候,應(yīng)該采取什么解決方法去定位。

還有一個(gè)應(yīng)用場(chǎng)景是我們發(fā)現(xiàn)請(qǐng)求服務(wù)端的時(shí)候有一個(gè)cookie,而這個(gè)cookie又不是服務(wù)端返回的,那么它很有可能就是JS生成的,怎么快速定位這個(gè)cookie生成的地方。

加密參數(shù)的處理步驟

在JS逆向的過(guò)程中,當(dāng)遇到有加密參數(shù)的時(shí)候,不是上來(lái)就找函數(shù)入口進(jìn)行分析,這樣的話(huà)會(huì)走很多彎路。簡(jiǎn)單描述一下這個(gè)過(guò)程的一般流程,下面的步驟很重要,可以幫你少走很多彎路。

  • 重放攻擊
  • 刪參數(shù)進(jìn)行重放攻擊。當(dāng)你遇到一個(gè)加密參數(shù),可以嘗試刪除這個(gè)參數(shù)的情況下進(jìn)行重放攻擊,如果成功的話(huà),說(shuō)明該參數(shù)并不是必須的,可以省去分析的過(guò)程。
  • 如果重放攻擊無(wú)效,再查看參數(shù)是不是某個(gè)接口的返回值
  • 如果不是接口返回值,直接在頁(yè)面源碼里面搜索,看這個(gè)參數(shù)是否是頁(yè)面的固定值(關(guān)于這一點(diǎn),我之前就走過(guò)一次彎路,參數(shù)直 接固定在頁(yè)面里面了,結(jié)果我用各種方法愣是沒(méi)找著)
  • 如果需要定位cookie,優(yōu)先看包的返回內(nèi)容是否有set-cookie

加密參數(shù)的定位方法

如果前面的五個(gè)步驟都進(jìn)行了嘗試,還找不到參數(shù)來(lái)源的話(huà),就需要通過(guò)逆向分析的方法去找到參數(shù)的來(lái)源。一般來(lái)說(shuō)有下面幾種方案。

搜索

在這里插入圖片描述

開(kāi)發(fā)者工具里面一共有兩個(gè)搜索,這兩個(gè)搜索的作用域不一樣,一個(gè)只能搜索到當(dāng)前的頁(yè)面元素,第二個(gè)是全局的搜索,可以搜索到所有的內(nèi)容。

使用這種方案定位加密參數(shù)的位置會(huì)比較準(zhǔn)確,但是搜索到的位置會(huì)比較多,需要進(jìn)行篩選。

斷點(diǎn)

XHR斷點(diǎn)

以網(wǎng)易云音樂(lè)為例,

在這里插入圖片描述

當(dāng)我點(diǎn)擊播放按鈕的時(shí)候,可以看到這么一條請(qǐng)求,攜帶的返回?cái)?shù)據(jù)里面有音樂(lè)的url下載鏈接。如果我們能夠模擬這個(gè)請(qǐng)求,那么就可以做到下載網(wǎng)易云音樂(lè)的目的。

在這里插入圖片描述

這個(gè)請(qǐng)求里面需要攜帶兩個(gè)參數(shù),params和encSecKey

在這里插入圖片描述

那么我們就可以在source面板的XHR斷點(diǎn)里面添加一個(gè)包含params的斷點(diǎn),當(dāng)請(qǐng)求的內(nèi)容里面包含這個(gè)字符串的時(shí)候就會(huì)斷下來(lái)。

在這里插入圖片描述

這個(gè)時(shí)候我們點(diǎn)擊播放,可以看到程序已經(jīng)斷下來(lái)了,并且arguments的值就是我們想要追蹤的加密參數(shù),那么這個(gè)時(shí)候就可以通過(guò)調(diào)用堆棧向上去找到加密參數(shù)的生成位置了。

DOM斷點(diǎn)

所謂的DOM斷點(diǎn),其實(shí)就是通過(guò)給頁(yè)面的DOM節(jié)點(diǎn)附帶的事件添加斷點(diǎn)。

在這里插入圖片描述

我們可以通過(guò)頁(yè)面的選擇器定位到這個(gè)按鈕,然后右鍵break on下斷,當(dāng)這個(gè)節(jié)點(diǎn)或者屬性發(fā)生改變的時(shí)候,程序會(huì)斷下,但是在這個(gè)案例里面這個(gè)DOM斷點(diǎn)并不會(huì)生效。

這個(gè)斷點(diǎn)的應(yīng)用場(chǎng)景是頁(yè)面的元素或者屬性發(fā)生改變的時(shí)候,在登陸的場(chǎng)景里面用的比較多。

EVENT斷點(diǎn)

在這里插入圖片描述

首先用選擇器選擇播放按鈕,然后在EventListener里面有這個(gè)元素的所有的事件

在這里插入圖片描述

點(diǎn)開(kāi)click事件,里面有這個(gè)元素的點(diǎn)擊事件,不過(guò)選項(xiàng)還是比較多,不太容易篩選。

在這里插入圖片描述

然后也可以在source頁(yè)面的Event Listener Breakpoints里面,把需要下斷的事件打勾,就可以直接斷下來(lái)。

hook

我們也可以通過(guò)hook的方式,通過(guò)hook一些關(guān)鍵函數(shù),來(lái)獲取到一些信息,下面都是一些HOOK了以后對(duì)逆向有幫助的點(diǎn)

json
cookie
window attr
eval/Function
websocket

以json為例,可以去Hook下面兩個(gè)函數(shù)

JSON.stringify
JSON.parse

通過(guò)HOOK這兩個(gè)方法,打印參數(shù),就可以拿到所有的json相關(guān)的字符串,也就相當(dāng)于在網(wǎng)站里面加入了一個(gè)日志系統(tǒng)。其他幾個(gè)HOOK點(diǎn)的應(yīng)用也是類(lèi)型。

關(guān)于cookie的hook

如果想要快速找到cookie算法的生成位置,可以對(duì)cookie進(jìn)行hook,這個(gè)是最常見(jiàn)的hook方案, 由于 cookie 是document里面的屬性,所以我們可以修改 document這個(gè)對(duì)象中 cookie屬性的描述符。

(function () {
    'use strict';
    var cookie_cache = document.cookie;
    Object.defineProperty(document, 'cookie', {
        get: function () {
            return cookie_cache;
        },
        set: function (val) {
            console.log('Setting cookie', val);
            // 填寫(xiě)cookie名
            if (val.indexOf('填cookie名') != -1) {
                debugger;
            }
            var cookie = val.split(";")[0];
            var ncookie = cookie.split("=");
            var flag = false;
            var cache = cookie_cache.split("; ");
            cache = cache.map(function (a) {
                if (a.split("=")[0] === ncookie[0]) {
                    flag = true;
                    return cookie;
                }
                return a;
            })
            cookie_cache = cache.join("; ");
            if (!flag) {
                cookie_cache += cookie + "; ";
            }
            return cookie_cache;
        }
    });
})();

上面的代碼對(duì)對(duì)象屬性的cookie進(jìn)行了hook,當(dāng)獲取cookie的時(shí)候會(huì)打印cookie的值,當(dāng)設(shè)置cookie的時(shí)候如果滿(mǎn)足要求,那么就會(huì)產(chǎn)生debugger斷點(diǎn),斷到cookie生成的位置,從而就可以去分析加密算法了。

到此這篇關(guān)于JS逆向之加密參數(shù)定位的文章就介紹到這了,更多相關(guān)JS 加密參數(shù)定位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

广平县| 南华县| 广水市| 沙洋县| 横峰县| 师宗县| 望江县| 江西省| 葵青区| 嵊泗县| 稻城县| 虹口区| 乐山市| 临邑县| 临洮县| 德化县| 洛南县| 临泉县| 桂平市| 淮安市| 惠水县| 锦州市| 楚雄市| 许昌县| 苍梧县| 拉萨市| 囊谦县| 平凉市| 精河县| 阿勒泰市| 五大连池市| 五台县| 嘉禾县| 惠来县| 巧家县| 宣威市| 同江市| 武强县| 同心县| 扬州市| 团风县|