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

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

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

前言

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

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

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

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

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

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

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

搜索

在這里插入圖片描述

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

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

斷點(diǎn)

XHR斷點(diǎn)

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

DOM斷點(diǎn)

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

在這里插入圖片描述

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

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

EVENT斷點(diǎn)

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

hook

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

json
cookie
window attr
eval/Function
websocket

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

JSON.stringify
JSON.parse

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

關(guān)于cookie的hook

如果想要快速找到cookie算法的生成位置,可以對cookie進(jìn)行hook,這個是最常見的hook方案, 由于 cookie 是document里面的屬性,所以我們可以修改 document這個對象中 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);
            // 填寫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;
        }
    });
})();

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

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

相關(guān)文章

最新評論

长丰县| 家居| 措勤县| 永兴县| 靖边县| 安龙县| 乌什县| 东乌珠穆沁旗| 咸阳市| 隆德县| 合山市| 额济纳旗| 姜堰市| 阿克陶县| 富民县| 渑池县| 邮箱| 海丰县| 泰州市| 南漳县| 宁河县| 开封市| 广元市| 吴江市| 松滋市| 麻江县| 平果县| 陆河县| 聊城市| 扶绥县| 漳浦县| 濮阳市| 兴化市| 奎屯市| 武山县| 兰西县| 辽阳县| 休宁县| 沁源县| 彩票| 淮阳县|