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

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