Python 爬蟲(chóng)進(jìn)階必備 | 某行業(yè)研究數(shù)據(jù)庫(kù)的返回值加密分析
第一時(shí)間關(guān)注Python技術(shù)干貨!

圖源:極簡(jiǎn)壁紙
今日網(wǎng)站
aHR0cHM6Ly93d3cuaGFuZ2hhbmdjaGEuY29tL2FnZW5jeS10aW1pbmc=
這個(gè)站是返回值加密,寫(xiě)出來(lái)就是圖個(gè)樂(lè)呵,畢竟做企業(yè)信息查詢還是頭部的兩家給力,信息時(shí)效性更高。
加密定位
可以看到請(qǐng)求返回的值中data部分是加密的

這個(gè)時(shí)候切換到Initiator選項(xiàng)卡,可以看到這個(gè)請(qǐng)求的調(diào)用過(guò)程

“除了上面的方法之外,根據(jù)請(qǐng)求的類型也可以選擇是否使用 xhr 斷點(diǎn)調(diào)試的方式找到加密
通過(guò)分析堆棧可以在feachData的位置找到解密的代碼

打上斷點(diǎn)可以看到e的位置就是請(qǐng)求返回的內(nèi)容

并且在下一行代碼就是明文了

所以整個(gè)解密的邏輯就在c["a"].decrypt()中
加密分析
重新刷新,在c["a"].decrypt()的位置重新單步進(jìn)去
可以看到下面的邏輯

這個(gè)邏輯的代碼就很清晰了
我們直接按照之前教的三要素就可以自己重寫(xiě)這個(gè)解密了
1、密鑰

就是上面的三個(gè)常量拼接出來(lái)的字符串
2、填充模式是pkcs7
3、ECB 模式
知道這幾個(gè)要素,我們?cè)?Python 還原一下這個(gè)解密的過(guò)程
import?base64
from?Crypto.Cipher?import?AES
encryptData?=?"h+Eh4yR7ppy1uly1B/m..................WvqJ7Tr8qjavnh8e"
key?=?'3sd&d24h@$udD2s*'.encode()
cipher?=?AES.new(key,?mode=AES.MODE_ECB)
data?=?str(cipher.decrypt(base64.b64decode(encryptData)),encoding='utf8')
print(data)

這樣就可以解密了。
最近在跟著龍哥學(xué) App ,更新頻率下降,希望之后能夠給大家?guī)?lái)高質(zhì)量的 APP 安全相關(guān)的文章。
好了,以上就是今天的全部?jī)?nèi)容了。
我是沒(méi)有更新就在摸魚(yú)的咸魚(yú)
收到請(qǐng)回復(fù)~
我們下次再見(jiàn)。
對(duì)了,看完記得一鍵四連,這個(gè)對(duì)我真的很重要。
