mitmproxy和Python的结合
一、安装
1.1 安装mitmproxy
直接使用pip安装即可
pip install mitmproxy
1.2在pycharm中的命令窗口输入:mitmweb 可启动
启动后可访问链接
访问成功
1.3如何抓包APP请求,打开模拟器,然后链接代理
如果无法抓到Http是请求,需要安装证书,mitmproxy安装证书地址:mitm.it
选择对应的系统进行证书安装:
二python 和mitmproxy结合
pthon代码如下,请求接口的使用
from mitmproxy import http def request(flow): request_data=flow.request request_url = request_data.url request_pr = request_data.query request_from = request_data.urlencoded_form print("----------->",request_url)
1.启动执行命令,才能在命令窗口抓找数据
mitmweb这个命令是根据使用mitmproxy工具软件定义(这里抓APP),具体可参数官方文档:https://mitmproxy.org
mitmproxy是一个支持HTTP
和HTTPS
的抓包程序,类似Fiddler、Charles的功能,只不过它通过控制台的形式操作。
此外,mitmproxy还有两个关联组件,一个是mitmdump
,它是mitmproxy
的命令行接口,利用它可以对接Python脚本,实现监听后的处理;另一个是mitmweb
,它是一个Web程序,通过它以清楚地观察到mitmproxy捕获的请求。
学习参考:https://www.jianshu.com/p/c568d9b570de
打印的响应结果:
其他响应数据命令的代码参考:https://www.cnblogs.com/lsdb/p/10106655.html
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))