Как использовать MITMPROXY для репликации функции Charles Map Remote

Я пытаюсь воспроизвести функциональность, предоставляемую функции Map Remote в Charles с помощью MITMPROXY в OS X 10.9. Что я хочу сделать, так это заменить любой запрос на желанный url.com запросом на желанный url.ca (я открыт для любого ответа, который говорит мне, как воспроизвести данную функциональность в Charles с помощью бесплатного программного обеспечения).

Я нашел этот ответ и этот вопрос, оба из которых выглядели так, будто должны помочь, и я написал приведенный ниже сценарий.

#!/usr/bin/env python

def redirect_request(context, flow):
    host = flow.get_url()

    if 'desiredurl' in host:
        flow.set_url(host.replace('com','ca'))

Я mitmdump -s path/to/script.py на своем iMac, а затем, как обычно, подключаю свой iPad к своему iMac через порт 8080 и вижу проходящий трафик в окне терминала, но при посещении wanturl.com я по-прежнему перенаправляюсь на желанный url.com, а не на желанный url.ca. Таким образом, я попробовал следующее:

#!/usr/bin/env python

def response(context, flow):
    if 'desiredurl' in flow.request.host:
        flow.request.host.replace('com','ca')

Тем не менее, запросы по-прежнему направляются на желанный url.com, а не на желанный url.ca. Почему это?


person John Coxon    schedule 30.09.2014    source источник


Ответы (1)


Вы уверены, что это должно работать? Я имею в виду, что заголовок «Host» - это просто заголовок HTTP. Например, вы можете отправить запрос на Google.com с заголовком Microsoft.com. Вероятно, где-то должно быть другое свойство для изменения цели (IP, имя хоста, которое будет преобразовано в IP-адрес). Вообще говоря, цель — это то же самое, что и заголовок узла в протоколе HTTP, но это не обязательно должно быть так.

person Simon    schedule 28.10.2014