原创 JS逆向:基於反投毒策略破解猿人學比賽第16題

1. 分析加密參數 通過分析請求,發現需要處理的加密參數是 m,另一個參數 t 爲時間戳。 2. 定位函數入口 此處可以使用兩種方法: 直接全局搜索; XHR 斷點 + 跟棧; 2.1. 直接全局搜索 由於目標函數是一個英文字母,

原创 JS逆向:Hook 技術在 JS 逆向中的相關應用 1. Hook 技術原理

1. Hook 技術原理 客戶端擁有 JS 的最高解釋權,可以決定在任何時候注入 JS,而服務器無法阻止或干預。 服務端只能通過檢測和混淆的手段,領 Hook 難度加大,但是無法直接阻止。 Hook 的目: 一是尋找函數入口; 二是分析參

原创 JS逆向:JS 中常見的加密算法及逆向特徵 1. 取鹽算法 2. 可還原加密算法

1. 取鹽算法 取鹽 算法,也叫 摘要算法,是對數據進行一系列運算後,截取一部分關鍵值進行校驗。因此運算過程 不可逆,無法還原出加密前的 初始文本。 取鹽算法得到的結果長度一般是固定的,無論輸入的消息有多長,計算出來的消息摘要的長度總是固定

原创 JS逆向:破解 sojson 混淆後的 setInterval 無限反 debugger 策略 1. setInterval 計時器 2. 跟棧分析

1. setInterval 計時器 setInterval 這個是 JS 語言當中的 定時器,它有兩個參數:第一個是要執行的代碼,第二個執行時間。 下方是 sojson 混淆後的一段代碼,其中使用了 setInterval 定時器進行

原创 JS逆向:常見的無限debugger反調試策略以及應對方法 1. 實現方式 2. 應對方法

1. 實現方式 1.1. 無限循環 for 循環 while 循環 1.2. 無限遞歸 調用自身 1.3. 兩個方法循環互調 顧名思義 1.4. 計時器 setInterval這個是 JS 語言當中的 定時器,它有兩個參數:第一

原创 JS逆向:破解某站 sign 參數加密邏輯 1. 定位代碼 2. 分析調試 3. js 代碼

目標站點:aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9pbnZpdGUvaW52aXRlLmh0bWw= 說明: 該站點較簡單,可以作爲小白練手使用,方便理解 js 逆向常規步驟。 1. 定位代碼 打開調試面板,輸

原创 JS逆向:破解某站 password 參數加密邏輯 1. 定位代碼 2. 分析調試 3. js代碼實現

目標站點:aHR0cDovL2VpcC5jaGFuZmluZS5jb20vbG9naW4uanNw 說明: 該站點較簡單,可以作爲小白練手使用,方便理解 js 逆向常規步驟。 1. 定位代碼 打開調試面板,輸入手機號、密碼,點擊登錄

原创 JS逆向:某某文書網反爬蟲JS加密策略與破解方法 1. 破解返回結果 2. 破解請求參數

1. 破解返回結果 1.1. 分析 response 打開網站,在輸入框輸入查詢關鍵字【吳*凡】,分析 response 發現找不到返回的數據,但是卻能找到以下內容: 根據經驗推測,這裏的 result 結果就是我們要抓取的數據,

原创 JS逆向:複雜混淆代碼的處理策略

1、複雜的代碼混淆 1.1. base62 編碼 其最明顯的特徵是生成的代碼以 eval(function(p,a,c,k,e,r)) 開頭。這類混淆的關鍵思想在於將需要執行的代碼進行一次編碼,在執行的時候還原出瀏覽器可執行的合法的腳本,

原创 JS逆向:基於雪碧圖的反爬策略與破解

1. 雪碧圖 1.1. 雪碧圖 雪碧圖(sprite)也叫CSS精靈, 是一CSS圖像合成技術; 該方法是將小圖標和背景圖像合併到一張圖片上,然後利用css的背景定位來顯示需要顯示的圖片部分;簡單說就是在一整張圖片中分割出自己想要的部分,

原创 JS逆向:AST 語法樹反混淆策略處理控制流平坦化

1、控制流 控制流(Control Flow),指的是 控制流基本語法包括兩種: -- 第一種:if / else 條件語句判斷; if(條件){ }; else{ }; -- 第二種:while / switch / case

原创 JS逆向:使用 jsnice 提高混淆代碼的可讀性

1、jsnice 簡介 jsnice 是一個反混淆利器之一,可以將混淆後的代碼進行更加有好的展示,從而提升代碼的可讀性; jsnice 在元素關係的建立上大部分來自於 AST 語法樹,同時採用了概率圖模型進行 推理 和 聯想,通過樣本學習

原创 JS逆向:基於 AST 語法樹的反混淆策略

。第二種實現成本較高,但是更靈活,而且更安全,更適合對抗場景,我這裏主要講一下第二種。基於語法層面的混淆器其實類似於編譯器,基本原理和編譯器類似,我們先對編譯器做一些基本的介紹。 詞法分析、語法分析 名詞解釋 token: 詞法單元,也有叫

原创 JS逆向:處理某點評網站字體反爬

1、字體反爬原理 在CSS3之前,Web開發者必須使用用戶計算機上已有的字體。但是在CSS3時代,開發者可以使用@font-face爲網頁指定字體,開發者可以將心儀的字體文件放在Web服務器上,並在Css樣式中使用它。用戶使用瀏覽器訪問W

原创 JS逆向:三元表達式嵌套

基本寫法: variable = boolean_expression ? true_value : false_value; 實例: a>b?0:1 --如果a>b,則返回0,否則返回1 i=a>b?0:1