关于mitmdump

mitmweb : 功能强大的,python支持的网络请求抓包代理工具

  1. 不需要安装软件,直接在线(浏览器)进行抓包(包括手机端和PC端)
  2. 配合Python脚本抓包改包
  3. 抓包过程的所有数据包都可以自动保留到txt里面,方便过滤分析
  4. 使用相对简单,易上手。

环境

python Python 2.7.18

  1. mitmweb 安装,根据python环境选择了如下版本号。
    1
    pip install "mitmproxy==0.18.2"
  2. 启动mitmweb 指定端口号
    1
    mitmweb -p 8989 
    控制台输出
    Server listening at http://127.0.0.1:8081 代表启动成功。 在浏览器打开即可。

保存抓包日志

  1. 将网络请求保存到指定文件
    1
    mitmdump -p 8889 -w *.txt 

使用python脚本抓取网络请求

1
mitmweb -p 8889 -s *.py

脚本如下:

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))