Mitmproxy: вмешательство в запрос get: заменить все экземпляры строки "data: 123" в запросе скриптом
Я работаю с mitmproxy, и я все еще довольно новичок в этом (использовал его в течение нескольких дней). Прямо сейчас я пытаюсь перехватить запросы на получение и заменить все экземпляры строки, например "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 но, похоже, ничто не помогает с тем, что я пытаюсь сделать.
Любая помощь и руководство по поиску решения для моей проблемы очень ценится!!!
1 ответ
Вы можете получить и изменить путь запросов GET в методе handle_requests в примере реализации, приведенном в документе.
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()