mitmweb : 功能强大的,python支持的网络请求抓包代理工具
- 不需要安装软件,直接在线(浏览器)进行抓包(包括手机端和PC端)
- 配合Python脚本抓包改包
- 抓包过程的所有数据包都可以自动保留到txt里面,方便过滤分析
- 使用相对简单,易上手。
环境
python Python 2.7.18
- mitmweb 安装,根据python环境选择了如下版本号。
1
| pip install "mitmproxy==0.18.2"
|
- 启动mitmweb 指定端口号
控制台输出
Server listening at http://127.0.0.1:8081 代表启动成功。 在浏览器打开即可。
保存抓包日志
- 将网络请求保存到指定文件
1
| mitmdump -p 8889 -w *.txt
|
使用python脚本抓取网络请求
脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| from mitmproxy import ctx
# 所有发出的请求数据包都会被这个方法所处理 # 所谓的处理,我们这里只是打印一下一些项;当然可以修改这些项的值直接给这些项赋值即可 def request(flow): # 获取请求对象 request = flow.request # 实例化输出类 info = ctx.log.info # 打印请求的url info(request.url) # 打印请求方法 info(request.method) # 打印host头 info(request.host) # 打印请求端口 info(str(request.port)) # 打印所有请求头部 info(str(request.headers)) # 打印cookie头 info(str(request.cookies))
# 所有服务器响应的数据包都会被这个方法处理 # 所谓的处理,我们这里只是打印一下一些项 def response(flow): # 获取响应对象 response = flow.response # 实例化输出类 info = ctx.log.info # 打印响应码 info(str(response.status_code)) # 打印所有头部 info(str(response.headers)) # 打印cookie头部 info(str(response.cookies)) # 打印响应报文内容 info(str(response.text))
|