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是一个支持HTTPHTTPS的抓包程序,类似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))
View Code
原文地址:https://www.cnblogs.com/lanyinhao/p/15600649.html