mitmproxy+python程式碼篇
一、上個推文我們介紹了mitmdump的簡單操作,下面我們開始學習,mitmdump配合python指令碼的使用。第一點先講日誌輸出。請看圖片
先匯入ctx模組:from mitmproxy import ctx。這個模組主要用於日誌的輸出。日誌輸出可以控制顏色
ctx.log.info # 日誌輸出顏色為白色
ctx.log.warn # 日誌輸出顏色為黃色
ctx.log.error # 日誌輸出顏色為紅色
我們執行指令碼看看效果
我們可以看到地址、請求方式、請求體都是白色的。頭部資訊是黃色的。URL是紅色的。這邊只是做一個簡單的演示,顏色可以自己修改。
我們看到整段程式碼有兩個模組。這兩個模組在Python中稱之為函式,也可以叫做方法。def request(flow): 在這裡面request是函式名,你可以自己設定,但是我們在寫mitmdump相關指令碼的時候為了更好的辨認,所有我們統一把請求部分的程式碼命名成request,把響應部分的程式碼命名為response。括號裡(flow)是一個引數。當我們執行mitmdump的時候,每次請求會通過flow傳入我們寫的函式。這時候我們就可以看到結果啦!
二、學會了日誌輸出,會發現我們可以拿到好多資料,我們可以把這些資料儲存下來進行更多的操作。下面鵬鵬給大家講講如何對抓取的資料進行儲存。大家看程式碼:
這邊鵬鵬想把抓取到的內容儲存到JSON檔案裡所以這裡需要匯入一個JSON的包,這段程式碼需要注意的一個地方就是,在執行這段程式碼之前一定要新建兩個空的JSON檔案用來儲存請求內容和響應內容。
這時候我們去cmd介面執行後,所抓取的內容都會存入這兩個資料夾中。
程式碼詳解:request程式碼中的d只是一個變數名,可以隨便設定。d是一個字典。字典裡存著URL,請求方式和請求體。這裡可以隨著自己的需要去增減。增加辦法是“key”:“value”;因為json檔案只能存入字串格式。所以我們需要用json_d = json.dumps(d)來把他轉為字串格式;fp也是一個變數名,你可以隨便更改,它主要功能是開啟這個路徑下的JSON檔案,以追加(a+)的方式寫入,編碼為UTF-8。;fp.write(json_d + '\n')的意思是把抓取到的內容寫入json檔案,\n是換行的意思,寫入一條換一行。
以上是我這次的內容,主要講了如何輸出不同顏色的日誌和把抓取到的內容寫入JSON檔案。下期鵬鵬會講mitmdump的其他應用。歡迎大家關注公眾號“跟著鵬鵬學測試”從此測試不迷路!
掃描二維碼
關注我們
微訊號 : GZPPXCE