配置mitmproxy
mitmproxy 是一個(gè)抓包程序换帜,另外還有mitmweb鲤看、mitmdump兩個(gè)關(guān)聯(lián)組件
windows下配置mitmproxy
pip install mitmproxy
mitmproxy是一個(gè)控制臺(tái)形式的抓包赏廓,不支持在cmd 上運(yùn)行想许;不過可以使用mitmdump或者mitmweb泼差,后者是一個(gè)網(wǎng)頁(yè)形式-
配置證書:設(shè)置瀏覽器的代理椭盏;chrome瀏覽器 為例:地址欄輸入 chrome://settings回車,搜索代理點(diǎn)擊打開代理設(shè)置,設(shè)置局域網(wǎng)妄辩,高級(jí)惑灵,127.0.0.1:8080; 注意檢測(cè)8080和8081端口是否被占用
# cmd netstat -ano | findstr 8080 tasklist | findstr pid taskkill /pid pid
- 終端執(zhí)行
mitmdump
開始監(jiān)聽8080端口; 瀏覽器地址欄輸入 http:mitm:it 下載 HTTPS 證書眼耀;選擇對(duì)應(yīng)的平臺(tái)點(diǎn)擊下載英支,雙擊證書添加到受信任根證書管理機(jī)構(gòu)中;這一步不做哮伟,所有的https請(qǐng)求的都會(huì)顯示SSL Error干花; 瀏覽器顯示“您的鏈接不是私密鏈接”
安裝證書.png
未安裝證書訪問網(wǎng)站出錯(cuò).png
模擬器/APP中安裝證書
將windows本地的mitmproxy-ca-cert.pem復(fù)制到模擬器上(MuMu模擬器找到模擬器上的更多里的文件共享,打開文件共享將證書拖放到這里)
安全選選:從SD卡上安裝→共享文件→點(diǎn)擊mitmproxy-ca-cert.pem安裝
mitmweb使用
進(jìn)入虛擬環(huán)境(有安裝mitmproxy包):設(shè)置好代理之后(手機(jī)或者模擬器設(shè)置代理楞黄,在同一網(wǎng)段)池凄;執(zhí)行 mitmweb;瀏覽器自動(dòng)打開頁(yè)面地址127.0.0.1:8081抓包
mitmdump使用: (需關(guān)閉mitmweb)
# 同樣進(jìn)入切換到安裝有mitmproxy包的虛擬環(huán)境鬼廓,cd到項(xiàng)目目錄下肿仑,執(zhí)行:
mitmdump -q -s addons.py --set body-size-limit=10k "~m post"
# -q 屏蔽 mitmdump 默認(rèn)的控制臺(tái)日志,只顯示自己腳本中的
# -s 入口腳本文件
# --set body-size-limit=10k 只處理小于 10k 的請(qǐng)求
# "~m post" 只處理 post 方法的請(qǐng)求
m_script.py 示例腳本
def response(flow):
"""
獲取列表頁(yè)
@param flow:
@return:
"""
if 'https://list.tmall.com/search_product.htm?' in flow.request.url:
print(f'url: {flow.request.url}')
count = re.findall(r'&s=(\d+).*', flow.request.url)
try:
count = int(count[0])
page = int(count/30)
except Exception as e:
page = 0
print(f'page: {page}')
if page > 0:
html = flow.response.text
print(html)
# save_html(index=page, data=html)