mitmproxy的安装和使用

mitmproxy顾名思义中间人代理【man-in-the-middle proxy】,和fiddler、Charles等工具类似,通过代理方式实现对http(s)的拦截

mitmproxy 不仅可以截获请求、帮助开发者查看、分析、更可以通过自定义脚本进行二次开发,修改爬虫行为

 

mitmproxy的安装

参考https://cuiqingcai.com/5391.html

pip3 install mitmproxy

这是最简单和通用的安装方式,执行完毕之后即可完成mitmproxy的安装,另外还附带安装了mitmdump和mitmweb这两个组件。如果不想用这种方式安装,也可以选择后面列出的专门针对各个平台的安装方式或者Docker安装方式。

Windows下的安装

可以到GitHub上的Releases页面(链接为:https://github.com/mitmproxy/mitmproxy/releases/)获取安装包

证书配置

对于mitmproxy来说,如果想要截获HTTPS请求,就需要设置证书。mitmproxy在安装后会提供一套CA证书,只要客户端信任了mitmproxy提供的证书,就可以通过mitmproxy获取HTTPS请求的具体内容,否则mitmproxy是无法解析HTTPS请求的。

首先,运行以下命令产生CA证书,并启动mitmdump:

我们就可以在用户目录下的.mitmproxy目录里面找到CA证书

证书一共5个,表1-1简要说明了这5个证书。

mitmproxy-ca.pem

PEM格式的证书私钥

mitmproxy-ca-cert.pem

PEM格式证书,适用于大多数非Windows平台

mitmproxy-ca-cert.p12

PKCS12格式的证书,适用于Windows平台

mitmproxy-ca-cert.cer

与mitmproxy-ca-cert.pem相同,只是改变了后缀,适用于部分Android平台

mitmproxy-dhparam.pem

PEM格式的秘钥文件,用于增强SSL安全性

 

Windows下证书配置过程:

进入用户目录下的.mitmproxy,双击mitmproxy-ca.p12,按照引导一步步操作,不输入输入密码

在“选择证书的存储区域”时,点击第二个选项“将所有的证书都放入下列存储”,然后点击“浏览”按钮,选择证书存储位置为“受信任的根证书颁发机构”,接着点击“确定”按钮,然后点击“下一步”按钮。

 

启动 mitmproxy

mitmproxy有三种启动命令:
(1) mitmweb
— 提供一个web界面;
— 代理端口:绑定了 *:8080作为代理端口;
— 交互界面地址:localhost:8081;
(2) mitmproxy
— 提供命令行界面;
— 可以通过命令过滤请求;
(3) mitmdump
— 【TODO】

部署手机与电脑配置

安装ca证书

第一步,将电脑和手机连到同一个 WiFi 中;

第二步,获取本机的内网IP地址;

第三步,给手机WiFi配置代理

第四步,安装证书

使用手机浏览器访问 mitm.it

 

对接python

 

import json
def response(flow):
url=’https://api.amemv.com/aweme/v1/aweme/post/’
#筛选出以上面url为开头的url
if flow.request.url.startswith(url):
text=flow.response.text
#将已编码的json字符串解码为python对象
data=json.loads(text)
print(data)

然后运行命令 mitmdump -s test.py

参考https://www.imooc.com/article/80382?block_id=tuijian_wz

 

You May Also Like

About the Author: daidai5771

发表评论

电子邮件地址不会被公开。 必填项已用*标注