欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2024年01月11日 09:39:56   作者:鬼手56  
越來越多的網(wǎng)站進(jìn)行數(shù)據(jù)傳輸時(shí)不使用明文傳輸,本文主要介紹了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ù)的時(shí)候,應(yīng)該采取什么解決方法去定位。

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

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

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

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

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

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

搜索

在這里插入圖片描述

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

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

斷點(diǎn)

XHR斷點(diǎn)

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

DOM斷點(diǎn)

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

在這里插入圖片描述

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

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

EVENT斷點(diǎn)

在這里插入圖片描述

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

在這里插入圖片描述

點(diǎn)開click事件,里面有這個(gè)元素的點(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下面兩個(gè)函數(shù)

JSON.stringify
JSON.parse

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

關(guān)于cookie的hook

如果想要快速找到cookie算法的生成位置,可以對cookie進(jìn)行hook,這個(gè)是最常見的hook方案, 由于 cookie 是document里面的屬性,所以我們可以修改 document這個(gè)對象中 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的時(shí)候會(huì)打印cookie的值,當(dāng)設(shè)置cookie的時(shí)候如果滿足要求,那么就會(huì)產(chǎn)生debugger斷點(diǎn),斷到cookie生成的位置,從而就可以去分析加密算法了。

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

相關(guān)文章

  • JavaScript使用docx-preview和mammoth預(yù)覽Docx

    JavaScript使用docx-preview和mammoth預(yù)覽Docx

    這篇文章主要為大家詳細(xì)介紹了兩個(gè)庫,即docx-preview和mammoth,利用它們,你就能在瀏覽器中完美預(yù)覽 Word 文檔,甚至連表格樣式,頁眉頁腳都原汁原味地呈現(xiàn)出來,下面我們來看看具體使用步驟吧
    2025-04-04
  • Javascript創(chuàng)建自定義對象 創(chuàng)建Object實(shí)例添加屬性和方法

    Javascript創(chuàng)建自定義對象 創(chuàng)建Object實(shí)例添加屬性和方法

    創(chuàng)建自定義對象的最簡單的方式就是創(chuàng)建一個(gè)Object實(shí)例,然后再為它添加屬性和方法
    2012-06-06
  • 微信小程序防止重復(fù)點(diǎn)擊按鈕的示例代碼

    微信小程序防止重復(fù)點(diǎn)擊按鈕的示例代碼

    這篇文章主要介紹了微信小程序防止重復(fù)點(diǎn)擊按鈕的示例代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 泛談JS邏輯判斷選擇器 || &&

    泛談JS邏輯判斷選擇器 || &&

    這篇文章主要介紹了JS邏輯判斷選擇器 || &&,下面我們來一起學(xué)習(xí)吧
    2019-05-05
  • javascript實(shí)現(xiàn)倒計(jì)時(shí)跳轉(zhuǎn)頁面

    javascript實(shí)現(xiàn)倒計(jì)時(shí)跳轉(zhuǎn)頁面

    本文給大家介紹了如何使用javascript實(shí)現(xiàn)倒計(jì)時(shí)跳轉(zhuǎn)到其他頁面的方法以及實(shí)現(xiàn)原理,非常的簡單實(shí)用,有需要的小伙伴可以參考下。
    2016-01-01
  • HTML+JS實(shí)現(xiàn)猜拳游戲的示例代碼

    HTML+JS實(shí)現(xiàn)猜拳游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用HTML+CSS+JS編寫一個(gè)猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 原生JS+HTML5實(shí)現(xiàn)跟隨鼠標(biāo)一起流動(dòng)的粒子動(dòng)畫效果

    原生JS+HTML5實(shí)現(xiàn)跟隨鼠標(biāo)一起流動(dòng)的粒子動(dòng)畫效果

    這篇文章主要介紹了原生JS+HTML5實(shí)現(xiàn)跟隨鼠標(biāo)一起流動(dòng)的粒子動(dòng)畫效果,涉及javascript事件響應(yīng)、數(shù)值運(yùn)算及頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • 詳解JS數(shù)組Reduce()方法詳解及高級技巧

    詳解JS數(shù)組Reduce()方法詳解及高級技巧

    reduce 為數(shù)組中的每一個(gè)元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素。接下來通過本文給大家分享JS數(shù)組Reduce()方法詳解及高級技巧,一起看看吧
    2017-08-08
  • 使用微信SDK自定義分享的方法

    使用微信SDK自定義分享的方法

    這篇文章主要介紹了使用微信SDK自定義分享的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 微信小程序之console.log()使用方法

    微信小程序之console.log()使用方法

    console.log()?是 JavaScript 中的標(biāo)準(zhǔn)內(nèi)置函數(shù),主要用于在瀏覽器的控制臺(Console)中輸出信息,幫助開發(fā)者進(jìn)行調(diào)試和跟蹤代碼運(yùn)行狀態(tài),下面給大家介紹微信小程序之console.log()使用,感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評論