Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用mitmproxy动态修改HTTPS响应数据包_Python_Linux_Packet Capture_Mitmproxy_Tampering - Fatal编程技术网

Python 使用mitmproxy动态修改HTTPS响应数据包

Python 使用mitmproxy动态修改HTTPS响应数据包,python,linux,packet-capture,mitmproxy,tampering,Python,Linux,Packet Capture,Mitmproxy,Tampering,我试图实现一个mitmproxy插件脚本,以篡改特定的https数据包数据——顺便说一句,它是通过mitmproxy的证书注入动态解密的 我正在关注一个非常类似的问题,以及来自mitmproxy文档的问题,但到目前为止没有任何成功 我的目标数据包来自https://api.example.com/api/v1/user/info 下面是我编写的整个python脚本,以便根据上述来源篡改此数据包数据: from mitmproxy import ctx class RespModif:

我试图实现一个mitmproxy插件脚本,以篡改特定的https数据包数据——顺便说一句,它是通过mitmproxy的证书注入动态解密的

我正在关注一个非常类似的问题,以及来自mitmproxy文档的问题,但到目前为止没有任何成功

我的目标数据包来自
https://api.example.com/api/v1/user/info

下面是我编写的整个python脚本,以便根据上述来源篡改此数据包数据:

from mitmproxy import ctx

class RespModif:
    def _init_(self):
        self.num = 0

    def response(self, flow):
        ctx.log.info("RespModif triggered")

        if flow.request.url == "https://api.example.com/api/v1/user/info":
            ctx.log.info("RespModif triggered -- In the if statement")   
            self.num = self.num + 1
            ctx.log.info("RespModif -- Proceeded to %d response modifications "
                         "of the targetted URLs" % self.num)

addons = [
    RespModif()
]
查看事件日志,我可以看到第一个日志信息(“RespModif触发”)正在报告到日志中,但其他两个日志信息(从
if
语句内部完成)从未报告过,这意味着
if
语句永远不会成功

我的代码有问题吗?
如何使
if
语句成功


PS:目标URL绝对正确,而且我使用的是来自客户端应用程序的注册帐户,该应用程序正在被mitmproxy嗅探

您是否尝试过使用
pretty\u url
属性?
比如:

if flow.request.pretty_url == "https://api.example.com/api/v1/user/info":
    ....
pretty\u url
属性处理完整域名,而
url
仅处理相应的ip地址。

另外,记录
pretty_url
的内容应允许查看确切的url,并提供代码实际执行情况的更多可见性。

是的,我刚刚尝试过,不幸的是也不起作用。。。我也尝试过其他有效的URL,
if
语句也无法成功!这怎么可能?您可以通过打印flow.request.url或flow.request来调试它。很高兴能看到准确的url。先生,你的建议让我终于成功了!!Thanx很多,但请在回答中添加您的评论,并解释pretty_url是如何处理域名的,而url只处理ip地址,所以我可以接受答案!我不太清楚:)我只是搜索了一下,提出了一个小小的建议。。。