关键字
mitmproxy
, python
,app
,http
,https
前言
我们使用代理软件拦截http或者https请求常见的有Fiddler 和 Charles。这两款软件虽然比较强大,但是如果我们想实现python抓取一些app数据进行分析的话,今天介绍一款更方便的工具mitmproxy
安装mitmproxy
如果我们本机安装了pip 或者pip3
pip install mitmproxy --ignore-installed six
或者直接
brew install mitmproxy
或者下载安装包手动安装下载地址,安装完成后配置环境变量
启动
直接mitmproxy 命令默认在端口8080上启动一个mitmproxy 本地的代理服务
mitmproxy
当然也可以使用如上命令 添加 -p 自定义启动的端口如,mitmproxy -p 8888
使用mitmweb命令会同时在8080端口和8081端口启动两个服务,访问8081端口是一个web页面,实时显示访问数据
mitmweb
#app抓包
配置手机代理
手机代理和通用的代理配置一样,在wifi网络的高级里面设置手动,并输入pc端的ip地址,端口号是上面启动mitmproxy的端口默认8080
https抓包
浏览器访问 http://mitm.it 下载对应的pem证书并安装。然后在手机端打开需要抓包的app就可以正常读取app请求每个页面的数据包
测试抓取指定app接口数据
编写python程序并使用命令为test.py程序如下然后使用 mitmweb -s wlw.py
命令启动服务
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import json
from mitmproxy import ctx
def response(flow) :
url = "https://xxx/handle/execute.jhtml"
if flow.request.url.startswith(url) :
text = flow.