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

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

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

前言

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

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

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

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

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

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

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

搜索

在這里插入圖片描述

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

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

斷點

XHR斷點

以網易云音樂為例,

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

那么我們就可以在source面板的XHR斷點里面添加一個包含params的斷點,當請求的內容里面包含這個字符串的時候就會斷下來。

在這里插入圖片描述

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

DOM斷點

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

在這里插入圖片描述

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

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

EVENT斷點

在這里插入圖片描述

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

在這里插入圖片描述

點開click事件,里面有這個元素的點擊事件,不過選項還是比較多,不太容易篩選。

在這里插入圖片描述

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

hook

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

json
cookie
window attr
eval/Function
websocket

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

JSON.stringify
JSON.parse

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

關于cookie的hook

如果想要快速找到cookie算法的生成位置,可以對cookie進行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進行了hook,當獲取cookie的時候會打印cookie的值,當設置cookie的時候如果滿足要求,那么就會產生debugger斷點,斷到cookie生成的位置,從而就可以去分析加密算法了。

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

相關文章

  • JavaScript使用docx-preview和mammoth預覽Docx

    JavaScript使用docx-preview和mammoth預覽Docx

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

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

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

    微信小程序防止重復點擊按鈕的示例代碼

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

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

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

    javascript實現(xiàn)倒計時跳轉頁面

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

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

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

    原生JS+HTML5實現(xiàn)跟隨鼠標一起流動的粒子動畫效果

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

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

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

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

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

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

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

最新評論