mitmdump+python的使用(程式碼篇)

Kevin鵬鵬發表於2020-06-15

mitmproxy+python程式碼篇

一、上個推文我們介紹了mitmdump的簡單操作,下面我們開始學習,mitmdump配合python指令碼的使用。第一點先講日誌輸出。請看圖片

mitmdump+python的使用(程式碼篇)

       先匯入ctx模組:from mitmproxy import ctx。這個模組主要用於日誌的輸出。日誌輸出可以控制顏色

  ctx.log.info      # 日誌輸出顏色為白色
  ctx.log.warn     # 日誌輸出顏色為黃色
  ctx.log.error     # 日誌輸出顏色為紅色

  我們執行指令碼看看效果

mitmdump+python的使用(程式碼篇)

       我們可以看到地址、請求方式、請求體都是白色的。頭部資訊是黃色的。URL是紅色的。這邊只是做一個簡單的演示,顏色可以自己修改。

       我們看到整段程式碼有兩個模組。這兩個模組在Python中稱之為函式,也可以叫做方法。def request(flow): 在這裡面request是函式名,你可以自己設定,但是我們在寫mitmdump相關指令碼的時候為了更好的辨認,所有我們統一把請求部分的程式碼命名成request,把響應部分的程式碼命名為response。括號裡(flow)是一個引數。當我們執行mitmdump的時候,每次請求會通過flow傳入我們寫的函式。這時候我們就可以看到結果啦!

二、學會了日誌輸出,會發現我們可以拿到好多資料,我們可以把這些資料儲存下來進行更多的操作。下面鵬鵬給大家講講如何對抓取的資料進行儲存。大家看程式碼:

mitmdump+python的使用(程式碼篇)

       這邊鵬鵬想把抓取到的內容儲存到JSON檔案裡所以這裡需要匯入一個JSON的包,這段程式碼需要注意的一個地方就是,在執行這段程式碼之前一定要新建兩個空的JSON檔案用來儲存請求內容和響應內容。

mitmdump+python的使用(程式碼篇)

        這時候我們去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的其他應用。歡迎大家關注公眾號“跟著鵬鵬學測試”從此測試不迷路!

 

mitmdump+python的使用(程式碼篇)

掃描二維碼

關注我們

微訊號 : GZPPXCE

相關文章