【问题标题】:Mitmproxy: Tampering with get request: Replace all instances of string "data: 123" in request with scriptMitmproxy:篡改获取请求:用脚本替换请求中字符串“数据:123”的所有实例
【发布时间】:2015-10-05 14:21:22
【问题描述】:

我正在使用 mitmproxy,但我对它还是很陌生(已经使用了几天)。现在我正在尝试拦截获取请求,并替换字符串的所有实例,例如用“数据:456”替换“数据:123”,然后恢复信息流,意图从应用程序中获取某个响应.我已经成功拦截了我想要的 URL,但我不明白如何创建一个脚本来替换“数据:123”的所有实例,或者在拦截时是否可以这样做。任何帮助表示赞赏!获取请求看起来像这样。替换所有实例的原因是因为数据似乎重复(不必要?)多次,手动替换每个实例是不可行的。

    "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 上的示例,但似乎对我正在尝试做的事情没有任何帮助。

非常感谢为我的问题找到解决方案的任何帮助和指导!!!

【问题讨论】:

    标签: python regex proxy mitmproxy inline-scripting


    【解决方案1】:

    您可以在文档中给出的实现示例中的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()
    

    【讨论】:

      猜你喜欢
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 2020-04-01
      • 2012-02-16
      相关资源
      最近更新 更多