Python爬蟲進階 | 實戰案例分析無限Debugger如何繞過

今天繼續和你們研究JS逆向,很多小夥伴在JS逆向的時候遇到過無限debugger的反爬,今天就拿一個網站練練手感覺下無限debugger。

分析請求

先打開此次的目標網站--淘大象(taodaxiang.com/credit2)python

打開「開發者工具」就自動進入debug,咱們先格式化看看能不能經過重寫函數解決。segmentfault

顯然不是很好解決,因此咱們試試經過「條件斷點」的方法繞過這個反爬。函數

咱們在 3393 與 3395 行右鍵添加「Add Conditional breakpoint」並在出現的對話框中輸入「false」,這個時候無限debbuger的反爬就被咱們繞過了。工具

雖然這裏很快就繞過了反爬可是「條件斷點」有必定的侷限性,這裏推薦一篇文章以供學習,就再也不贅述。學習

segmentfault.com/a/119000001…網站

解決完反爬措施,咱們刷新頁面查看頁面請求,很快就定位到請求接口、加密參數等信息。加密

請求接口:spa

加密參數 sign :debug

定位加密位置

經過抓包請求咱們定位到了接口和加密參數,咱們試着經過搜索sign關鍵字定位一下加密位置。3d

經過搜索咱們找到三個包含關鍵字的文件,經過檢索文件,很快定位到了sign值加密的位置:

分析加密

很明顯這個js文件通過必定程度的混淆,如今有兩種方法解決:

一是直接扣代碼,繞過debugger以後扣這個代碼不要太簡單。

二是通讀加密,直接改寫成python加密。

這個加密比較簡單,總體是md5加密這點經過分析請求能夠猜到,屢次請求加密都不變,接下來就是分析是哪些字段加密成md5值。

這裏比較明顯的是js中的兩段代碼:

_0x2c114b['XDFEp']這個方法是將字符串拼接

_0x2c114b['zANjZ']這個方法是取字符串的MD5值

通過斷點調試,發現最後字符串是由「查詢的關鍵字」+ 「固定的key」+ 「查詢的關鍵字」+ 「type參數值」拼接成的。

比對兩種方式,經過python方法改寫更加方便,主要代碼以下:

from hashlib import md5
def md5value(s):
	a = md5(s.encode()).hexdigest()
	return a
複製代碼

到這裏此次的分析的網站 -- 淘大象 就被咱們攻克了,此次的網站加密不是很難主要難點是分析時的無限debugger,其實其餘同類型的網站還有不少,你們能夠參考文章中提到的方法本身試試~

相關文章
相關標籤/搜索