HTTP代理抓包工具介紹
有哪些好用的HTTP代理抓包工具?如果你分不清哪個工具比較好用?又有哪個比較合適使用?那么,就不要錯過今天分享的文章了。
常見的http代理有:Fiddler、Charles以及下來要介紹的Mitmproxy,Mitmproxy小巧強大,最為吸引的是它支持加入Python腳本,方便開發人員直接處理監聽到的數據。
安裝:
這步比較簡單,直接pip install mitmproxy,或者自行下載安裝包。
使用:
window下不支持使用mitmproxy,但可以使用另外兩個附帶的組件:mitmdump和mitmweb,二選一在控制臺輸入,代理開啟后默認的監聽端口為8080。mitmdump是純控制臺輸出的監聽形式,mitmweb則對應有相關的web監聽界面。
更改監聽端口?添加-p參數,如mitmdump -p 10000;想指定py腳本?帶上-s參數即可,如mitmweb -s out.py;完整的參數信息及使用應該查看官網說明,下來的示例中會介紹Python腳本的使用。
示例:
mitmproxy中定義了一系列完整的監聽流程事件,通常這并不需要我們關注太多,常見的Events莫過于request和response,完整的mitmproxy事件請點擊這里查看,下面的簡單示例或許對你有幫助: import mitmproxy.http def request(flow: mitmproxy.http.HTTPFlow): """ The full HTTP request has been read. """ flow.request.headers["User-Agent"] = "Chrome/66.0.3497.100" pretty_url = flow.request.pretty_url print(pretty_url) def response(flow: mitmproxy.http.HTTPFlow): """ The full HTTP response has been read. """ content = flow.response.content print(content)
使用總結:
在功能上多數抓包軟件大同小異,重要的還是得根據場景來選擇最合適的;我當初接觸到mitmProxy,是因為在爬取某APP數據的時候,嘗試了一段時間都沒有還原出客戶端接口加密的請求流程,后來結合使用了Appium和mitmProxy,算是部分實現了該需求。綜上,全文只是簡單淺顯的介紹了mitmproxy,而往往看官方文檔才是最完整和高效的。
不同的抓包工具各有其特點,大家要根據不同的使用場景來進行選擇,才是最為合適的搭配。