速讯:python mitmproxy抓包库

来源:博客园时间:2023-06-02 17:24:53
一.简介

mitmproxy是一款用Python编写的支持HTTP(S)的中间人代理工具。它可以拦截、查看、修改、重放和保存HTTP/HTTPS流量 ,支持命令行界面和图形界面,可用于安全测试、网络调试、API开发和反向工程等场景。mitmproxy具有很高的灵活性和扩展性,可以通过插件机制进行定制化开发和功能扩展。本文注意介绍命令行模式。

二.环境配置及启动1.安装mitmproxy库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mitmproxy  # pip install mitmproxy
2.安装成功后查看版本
mitmdump  --version

若提示报错:ImportError: cannot import name "soft_unicode" from "markupsafe",大概意思是说markupsafe版本过低,但是通过pip show markupsafe查看后发现版本是2.1.2的。后来查看资料才发现这个版本的markupsafe不能用,没办法,只能卸载重新安装2.0.1的了。

卸载:pip uninstall markupsafe安装:pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple  --trusted-host pypi.tuna.tsinghua.edu.cn  markupsafe==2.0.1

安装的过程一定要加:--trusted-host pypi.tuna.tsinghua.edu.cn(下载的镜像),大概意思就是信任该下载地址。完了之后再次输入mitmdump --version就可以了。


【资料图】

3.启动mitmproxy

mitmproxy启动命令有三种,分别是mitmproxy,mitmweb,mitmdump。由于win不支持mitmproxy,所以本次只介绍后两者的用法。

1)mitmdump

mitmdump是在终端打印抓包信息,我们在终端直接输入mitmdump就可以启动了。

下面是mitmdump的一些参数,有兴趣的可以研究看看。

-h,--help:显示帮助信息-v,--version:显示版本信息-q,--quiet:静默模式,只输出警告和错误信息-s,--scripts:指定JavaScript脚本文件路径-r,--readfile:从文件中读取流量-w,--writefile:将流量写入文件-p,--listen-port:指定监听端口-P,--http-proxy:指定HTTP代理地址-U,--upstream-proxy:指定上游代理地址--ssl-insecure:禁用SSL验证--anticomp:禁用自动解压缩--no-http2:禁用HTTP/2协议--no-websocket:禁用WebSocket协议--no-anticache:禁用自动缓存--no-server-replay:禁用服务器回放模式--set:设置mitmproxy配置项,格式为key=value--showhost:显示主机名

2)mitmweb

mitmweb是将抓包信息显示在web页,在终端输入mitmweb后会自动打开浏览器进行抓包,也可以在浏览器中直接输入地址:http://127.0.0.1:8081/#/flows

mitmweb常用参数。

-h,--help:显示帮助信息;-b,--listen-host:指定mitmweb监听的IP地址;-p,--listen-port:指定mitmweb监听的端口号;--web-host:指定mitmweb UI的IP地址;--web-port:指定mitmweb UI的端口号;-s,--scripts:指定mitmweb运行的脚本文件;--anticache:启用anti-caching;--anticomp:启用anti-compression;--anticomp-decoding:启用anti-compression解码;--client-certs:指定客户端证书文件路径;--no-web-open-browser:启动mitmweb时不自动打开浏览器;--no-web-socket:禁用WebSocket协议;--no-http2:禁用HTTP/2协议;--no-web:禁用mitmweb UI。

三.抓包配置1.web

1)在终端启动mitmproxy后,我们打开电脑本地代理(win键>更改代理设置>开启使用代理服务器),端口要与启动mitmproxy一致8080。

启动完本地服务器代理后其实我们就可以看见抓包信息了,不过全是报错信息,因为浏览器还没有安装证书。

2)在浏览器输入:http://mitm.it/ 下载win证书

下载完成后直接安装即可。直接傻瓜式安装,需要注意的是将证书安装到下图存储中

3)安装完证书后发现还是没法抓包,浏览器会提示不是私密连接,这个时候我们打开dos窗口,输入以下内容。

"C:\Program Files (x86)\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors

输入完点击回车后会自动打开浏览器,此时不必理睬就行,在终端执行ctrl+c键关闭mitmproxy服务后重新开启,便可以正常抓包了。

2.Android

1)终端启动mitmproxy服务

2)dos窗口输入ipconfig/all,查看本地IPv4代理。

3)手机与电脑连接同一个局域网,开启手动代理后输入以上ip,端口为8080。

4)打开手机浏览器输入:http://mitm.it/ 下载安装Android证书,完了之后就可以正常抓包了

3.ios

与Android步骤一致,多了步证书信任,可参考:https://www.cnblogs.com/lihongtaoya/p/15196393.html

四.python代码实现

不做多余解释了直接贴代码

from mitmproxy import httpdef request(flow: http.HTTPFlow):    request_list = flow.request  # 获取请求对象    print(request_list.method, request_list.host)def response(flow: http.HTTPFlow):    responses_list = flow.response  # 获取响应对象    print(responses_list.text, responses_list.status_code)

在获取到请求和响应对象后,用对象名可直接调用自己需要的属性

编写完python代码后再终端启动mitmproxy并指定脚本文件,就可以看见打印的接口信息了

mitmweb  -s  ./lianxi/mitmproxy.py

关键词:

相关阅读

推荐阅读

速讯:python  mitmproxy抓包库

速讯:python mitmproxy抓包库

一 简介mitmproxy是一款用Python编写的支持HTTP(S)的中间人代理工具。更多

2023-06-02 17:24:53
你能接受男朋友每天比自己下班晚吗_为什么 视焦点讯

你能接受男朋友每天比自己下班晚吗_为什么 视焦

想必现在有很多小伙伴对于你能接受男朋友每天比自己下班晚吗为什么方面更多

2023-06-02 17:03:30
世界热点!区政府常务会议召开,聚焦全市绿色低碳转型样板区建设

世界热点!区政府常务会议召开,聚焦全市绿色低碳

区委副书记、区长高奕奕6月1日下午主持召开区政府第36次常务会议,听取更多

2023-06-02 16:23:33
假面骑士圣刃怪人三干部周边曾经不如龙纹骑士如今比肩过渡形态-环球聚焦

假面骑士圣刃怪人三干部周边曾经不如龙纹骑士如今

总结来说不错,这三位干部在圣刃剧情中分量和戏份非常的充足,虽然不可更多

2023-06-02 15:51:56
跨越200公里的“六一”礼物!无锡90后男幼师为9岁男童捐献造血干细胞

跨越200公里的“六一”礼物!无锡90后男幼师为9岁

恰逢“六一”国际儿童节,一场简单而温馨的欢送会在无锡市惠山区人民政更多

2023-06-02 15:15:15
10轮仅首发4次,昔日国足希望之星惨遭斯坦利冷落,沦为国安鸡肋 天天精选

10轮仅首发4次,昔日国足希望之星惨遭斯坦利冷落

2021赛季,高天意从解散的江苏苏宁加盟北京国安,加盟之后,他很快就成更多

2023-06-02 13:33:51
全面落实就业优先战略(大家谈·一起来想一起来干⑱·新时代新征程新伟业)|环球热议

全面落实就业优先战略(大家谈·一起来想一起来干

同时了解企业新增岗位和招聘条件等信息,解决园区企业用工与脱贫群众就更多

2023-06-02 13:08:28
河南上蔡:抓住晴好天气抢收小麦 要闻速递

河南上蔡:抓住晴好天气抢收小麦 要闻速递

6月1日,在河南省驻马店市上蔡县邵店镇后杨村,收割机将收获的小麦装车更多

2023-06-02 13:02:40
+ 点击查看更多精彩

精彩放送

chkdsk访问被拒绝怎么办?如何一招恢复电脑系统?
    chkdsk访问被拒绝怎么办?电脑输入chkdsk命令访问被拒绝,说明Chkd...
databases文件夹可以删除吗?c盘满了哪些文件可以删除?
    databases文件夹可以删除吗?databases一般情况下用不到,删掉没有...
u盘0字节无法格式化怎么解决?u盘被写保护应该怎么解除?
    u盘0字节无法格式化怎么解决?第一步鼠标双击计算机,进入页面,右...
耳麦说不了话是哪方面的原因如何解决?为何说话没声音但能听得见?
    耳麦说不了话是哪方面的原因如何解决?原因一:耳机被损坏了。这个...
电脑重装系统后连不上网怎么回事?重装win10无法引导进系统怎么办?
    电脑重装系统后连不上网怎么回事?1、原因一:驱动原因网卡驱动程...
开启wds是什么意思?wds状态未开启在哪里设置?
    开启wds是什么意思?WDS全称Wireless Distribution System的简称...
    最新见闻