Mitmproxy:篡改获取请求:用脚本替换请求中字符串"data: 123"的所有实例



我正在使用mitmproxy,我对它仍然相当陌生(已经使用它几天了)。现在我正在尝试拦截get请求,并将字符串的所有实例替换为"data: 123",例如"data: 456",然后恢复信息流,目的是从应用程序中获取某个响应。我已经到了我成功拦截我想要的url的地步,但我不明白如何创建一个脚本来替换"data: 123"的所有实例,或者如果它甚至可以在拦截时这样做。任何帮助都是感激的!get请求看起来像这样。替换所有实例的原因是数据似乎重复了几次(不必要的?),手动替换每个实例是不可行的。

    "text": {
    "data": "123",
    "size": 36,
    "style": "bold",
    "name": "text1",
    "hOffset": 250,
    "vOffset": 100,
    "alignment": "center",
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
    "text": {
    "data": "123",
    "size": 36,
    "style": "bold",
    "name": "text1",
    "hOffset": 250,
    "vOffset": 100,
    "alignment": "center",
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}

请注意,我拦截的实际数据更大,并且没有像这样很好地格式化,因此需要脚本。我已经看过https://github.com/mitmproxy/mitmproxy上的例子,但似乎没有什么对我想做的事情有帮助。

任何帮助和指导,为我的问题找到一个解决方案是非常感激的!!

您可以在文档中给出的实现示例中的handle_requests方法中获取和修改get请求路径。

def handle_request(self, flow):
  request = flow.request
  # ---------------------------------
  # Play with the GET path with regex
  # Add 'import re'
  newPath = re.sub(r"data:123", "data:456", request.path)
  # ---------------------------------
  flow.request.path = newPath
  flow.reply()

相关内容

  • 没有找到相关文章

最新更新