Js逆向分析

2022-03-23 13:51:12 字數 3341 閱讀 9544

1、知道如何尋找登入介面

2、知道如何確定js的位置

3、知道如何觀察js的執行過程

4、知道js的執行方法1、知道如何尋找登入介面

2、知道如何確定js的位置

3、知道如何觀察js的執行過程

4、知道js的執行方法a、登入的form表單中action對應的url位址

b、通過抓包分析發現,在這個url位址和請求體中均有引數,切換到手機版,引數的個數多少,分析js*、通過點選按鈕,然後點選 event listener部分**可以找到繫結的事件,對應的,只需要點選即可跳轉到js的位置

*、部分**的按鈕可能並沒有繫結js時間監聽,那麼這個時候可以通過搜尋請求中的關鍵字來找到js的位置,比如livecell1、找到js的位置之後,我們可以通過觀察js的位置,找到js具體在如何執行,後續我們可以通過python程式模擬js執行,或者使用類似js2py直接把js**轉化為python程式去執行。

2、新增斷點之後繼續點選登入,每次程式在斷點位置都會停止,通過如果該行有此變數產生,都會把變數結果展示在scoope中a、我們要登入需要對密碼進行加密和獲取rkey欄位的值

b、rkey欄位的值我們直接傳送請求rkey請求就可以獲得

c、密碼是先反轉然後rsa進行加密,js**很複雜,我們希望能通過在python中執行js來實現使用session物件傳送rkey獲取登入需要資訊,那麼首先要獲取session物件,在設定session的請求頭資訊,然後通過這個session物件來發請求

session =requests.session()

data =

#print(session.headers)

response = session.post("

", data=data)

**或參考:

大概流程:(1).知道如何尋找登入介面 (2)知道如何確定js的位置 (3)知道如何觀察js的執行過程 (4)知道js的執行方法

1.確定**的登入介面

······(1)登入的form表單中action對應的url位址

······ (2)通過抓包分析發現,在這個url位址和請求體中均有引數,切換到手機版,引數的個數多少,分析js

2,確定js的位置

······ (1)通過點選按鈕,然後點選 event listener部分**可以找到繫結的事件,對應的,只需要點選即可跳轉到js的位置

····· (2)部分**的按鈕可能並沒有繫結js時間監聽,那麼這個時候可以通過搜尋請求中的關鍵字來找到js的位置,比如livecell

3.觀察js的執行過程

····· (1)找到js的位置之後,我們可以通過觀察js的位置,找到js具體在如何執行,後續我們可以通過python程式模擬js執行,或者使用類似js2py直接把js**轉化為python程式去執行。

····· (2)新增斷點之後繼續點選登入,每次程式在斷點位置都會停止,通過如果該行有此變數產生,都會把變數結果展示在scoope中

4.執行js

觀察**中都需要那些引數

(1)我們要登入需要對密碼進行加密和獲取rkey欄位的值

(2)rkey欄位的值我們直接傳送請求rkey請求就可以獲得

(3)密碼是先反轉然後rsa進行加密,js**很複雜,我們希望能通過在python中執行js來實現

import requests

import json

import js2py

session = requests.session()

headers =

session.headers = headers

response = session.get("")

# print(response.content.decode())

n = json.loads(response.content)['data']

# - 2.根據獲取資訊對密碼進行加密

# - 準備使用者名稱和密碼

phonenum = "131..."

password = "****"

# - 使用js2py生成js的執行環境:context

context = js2py.evaljs()

# - 拷貝使用到js檔案的內容到本專案中

# - 讀取js檔案的內容,使用context來執行它們

with open("bigint.js", 'r', encoding='utf8') as f:

context.execute(f.read())

with open("rsa.js", 'r', encoding='utf8') as f:

context.execute(f.read())

with open("barrett.js", 'r', encoding='utf8') as f:

context.execute(f.read())

# - 向context環境中新增需要資料

context.t =

context.n = n

# - 執行加密密碼的js字元

js = '''

t.password = t.password.split("").reverse().join(""),

setmaxdigits(130);

var o = new rsakeypair(n.e,"",n.n)

, r = encryptedstring(o, t.password);

'''context.execute(js)

# - 通過context獲取加密後密碼資訊

# print(context.r)

password = context.r

# - 3.使用session傳送登入請求

# - url:

# - 請求方法: post

# - 資料:

# - phonenum: 15565280933

# - password: (加密後生產的)

# - c1: 0

# - rkey: rkey請求獲取的

data =

# print(session.headers)

response = session.post("", data=data)

print(response.content.decode())

# 訪問登入的資源

response = session.get("")

print(response.content.decode())

js逆向分析 有道翻譯

js加密一直是困擾資料抓取的難題,但總有辦法,總結下經驗一起學習 請求是通過非同步往伺服器傳送資料 主要有以下引數,一群看不懂的東西不用說肯定是加密資訊 ts 是系統時間戳 salt 時間戳 數字 bv user agent的md5加密 sign 一串字元加密 通過分析了解加密方式 就可以用 構造自...

實戰 js逆向簡單逆向

1.目標 獲取 的列表頁和詳情頁內容 2.進行 訪問,發現資訊內容是動態載入的 3.檢視json的介面,經過多次請求檢視,只有sign欄位是js加密的,其他欄位都是固定的 4.對sign欄位進行搜尋可以找到加密位置有md5,但是這次使用穩妥的笨辦法 5.在source選項卡中新增請求斷點 6.然後進...

逆向分析入門

軟體病毒行為特徵的分析,通過分析病毒的特徵資訊,更好地進行反病毒軟體的編寫。閉源軟體內部演算法的理解分析,進行軟體行為的模擬,優秀演算法設計思路學習和借鑑。各類軟體的破解,去除各類軟體的限制 屌絲能用各種高大上的商業軟體 解密軟體加密演算法,解密各類加密檔案。分析其遊戲軟體的演算法設計,進行各類遊戲...