Python爬蟲實戰JS逆向AES逆向加密爬取

2022-09-24 23:21:14 字數 1652 閱讀 2880

目錄

**:監管平台

開發工具:pycharm

開發環境:python3.7, wi程式設計客棧ndows10

使用工具包:requests,aes,json

涉及aes對稱加密問題 需要 安裝node.js環境

使用npm install 安裝 crypto-js​

確定資料 在這個網頁可以看到資料是動態返回的 但是 都是加密的 如何確定是我們需要的?

突然想到 如果我分頁 是不是會直接載入第二個頁面 www.cppcns.com然後檢視相似度 找到第乙個頁面, 我真是太聰明了

資料找到了 現在開始尋找加密 但是突然發現沒有 加密的關鍵字? 那我們通過url 下手試試 在all裡面全域性 搜尋 query/comp/list(url後面的引數)

找到這個介面 滑鼠右鍵 可以在源**檢視他

慢慢除錯 中間除錯太多了 我就不一一截圖出來了 跑到這裡 發現data 裡面的引數 和我們看到的加密一致

h(t.data)加密位置

進去h裡面 (滑鼠游標放到 h上面程式設計客棧 會顯示他的 js位址 如果沒有顯示 就是證明你還沒有執行到這裡 需要在前面打上斷點 重新整理頁面除錯)

發現這個採用aes加密演算法 使用模型cbc模式 採用填充方式為 pkcs7

aes.decrypt() # 引數說明 秘鑰 模式 偏移值

f  = 'jo8j9wgw%6hbxffn' # 秘鑰

m = '0123456789abcdef' # 偏移值

證明資料推導正確 在 return r.tostring() 打上斷點

r裡面資料正常返回

import requests

from crypto.cipher import aes

import json​

url = 程式設計客棧''

headers =

response = requests.get(url, headers=headers).text

f = 'jo8j9wgw%6hbxffn' # 秘鑰

m = '0123456789abcdef' # 偏移值

​# 轉碼 utf-8? 位元組 16進製制

m = bytes(m, encoding='utf-8')

f = bytes(f, encoding='utf-8')

​# 建立乙個aes演算法 秘鑰 模式 偏移值

cipher = aes.new(f, aes.mode_cbc, m)

# 解密

decrypt_content = cipher.decrypt(bytes.fromhex(response))

result = str(decrypt_content, encoding='utf-8')

​# okcs7 填充

length = len(result) # 字串長度

unpadding = ord(result[length - 1]) # 得到最後乙個字串的ascii

result = result[0:length - unpadding]

result = json.loads(result)['data']['list'] # dupms json.dumps() dict 格式 json的

# ​for i in result:

print(i)

python逆向爬蟲 python爬蟲js逆向

js逆向要想是想,要非常熟悉web的執行流程,針對不同 有不同的思路,這個部落格是針對人人直播的乙個爬取,先直接上 然後在講解,import requests import js2py import json headers session requests.session context js2p...

實戰 js逆向簡單逆向

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

python爬蟲之js逆向(二)

每天一更,養成好習慣從我做起。真正想做成一件事,不取決於你有多少熱情,而是看你能多久堅持。千萬別奢望光有熱情就能得償所願。今天的帶大家了解一下md5加密,目標 是有道翻譯 首先第一步開啟 我用的是google f12,檢視是否是post請求,隨便輸入乙個字,右擊檢視網頁源 ctrl f檢視是否有你想...