HTTP代理抓包工具介紹
有哪些好用的HTTP代理抓包工具?如果你分不清哪個(gè)工具比較好用?又有哪個(gè)比較合適使用?那么,就不要錯(cuò)過今天分享的文章了。
常見的http代理有:Fiddler、Charles以及下來要介紹的Mitmproxy,Mitmproxy小巧強(qiáng)大,最為吸引的是它支持加入Python腳本,方便開發(fā)人員直接處理監(jiān)聽到的數(shù)據(jù)。
安裝:
這步比較簡(jiǎn)單,直接pip install mitmproxy,或者自行下載安裝包?!?br/>
使用:
window下不支持使用mitmproxy,但可以使用另外兩個(gè)附帶的組件:mitmdump和mitmweb,二選一在控制臺(tái)輸入,代理開啟后默認(rèn)的監(jiān)聽端口為8080。mitmdump是純控制臺(tái)輸出的監(jiān)聽形式,mitmweb則對(duì)應(yīng)有相關(guān)的web監(jiān)聽界面?! ?br/>更改監(jiān)聽端口?添加-p參數(shù),如mitmdump -p 10000;想指定py腳本?帶上-s參數(shù)即可,如mitmweb -s out.py;完整的參數(shù)信息及使用應(yīng)該查看官網(wǎng)說明,下來的示例中會(huì)介紹Python腳本的使用?! ?br/>
示例:
mitmproxy中定義了一系列完整的監(jiān)聽流程事件,通常這并不需要我們關(guān)注太多,常見的Events莫過于request和response,完整的mitmproxy事件請(qǐng)點(diǎn)擊這里查看,下面的簡(jiǎn)單示例或許對(duì)你有幫助: 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)
使用總結(jié):
在功能上多數(shù)抓包軟件大同小異,重要的還是得根據(jù)場(chǎng)景來選擇最合適的;我當(dāng)初接觸到mitmProxy,是因?yàn)樵谂廊∧矨PP數(shù)據(jù)的時(shí)候,嘗試了一段時(shí)間都沒有還原出客戶端接口加密的請(qǐng)求流程,后來結(jié)合使用了Appium和mitmProxy,算是部分實(shí)現(xiàn)了該需求。綜上,全文只是簡(jiǎn)單淺顯的介紹了mitmproxy,而往往看官方文檔才是最完整和高效的?! ?br/>
不同的抓包工具各有其特點(diǎn),大家要根據(jù)不同的使用場(chǎng)景來進(jìn)行選擇,才是最為合適的搭配。