Игра в имитацию с помощью прокси-сервера

1656661817 igra v imitacziyu s pomoshhyu proksi servera

от Sumit Gupta

Руководство по использованию прокси-сервера (mitmproxy) для получения нужного ответа

Zy98n3y2PSPX-VPuOC3AEZ-Y5R2yHB-pZHDg

Скажем, вы разрабатываете функцию в веб-приложении электронной коммерции.
Вы должны показать баннер «Товар отсутствует» на странице «Корзина», когда товар отсутствует.

Вы достигли конечной точки /cart и эта конечная точка возвращает что-то вроде этого.

[  {    "name": "SomeShoes",    "soldOut": false,    "price": "$50",    "quantity": 1,    ...  }]

Ты получаешь soldOut как true когда товар распродан.
Чтобы облегчить развитие, вам нужно смоделировать это поведение.

Некоторые способы сделать это:

  1. Вы добавляете товар в корзину, затем входите как другой пользователь, чтобы купить весь доступный запас. Это имитирует, что продукта нет в наличии для первого пользователя.
  2. Вы добавляете товар в корзину, затем изменяете данные или изменяете код в серверном API, чтобы убедиться, что товар распродан.

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

Что, если бы вы могли взломать свой путь и изменить ценность soldOut к true без одного из вышеперечисленных методов?

Введите прокси-сервер

Прокси-сервер позволяет видеть ответ от сервера и изменять его еще до поступления во внешнюю программу. Вы можете перехватить /cart Вызов API и изменение значения soldOut к true в ответе.

Представьте, сколько времени вы сэкономите. Все что вы хотели, это проверить, как выглядит ваш распроданный баннер, когда он появляется, если вообще выглядит.

Никто не хочет менять мир, чтобы убедиться, что он получает правду, а не ложь.

Выбор прокси-сервера

Есть много прокси-серверов, которые позволят вам это сделать, и один из них mitmproxy.

mitmproxy – это бесплатный инструмент с открытым кодом для Windows, Linux и Mac.

Вот как использовать mitmproxy (приведенные ниже команды предназначены для Mac, но они также должны работать в Linux).

Установка

Мак: brew install mitmproxy
Другие: Вы можете найти инструкцию по установке здесь.

mitmproxy имеет командную строку и веб-интерфейсы.

Веб-интерфейс

Для запуска прокси-сервера используйте команду:

Мак: mitmweb --port 9000 --web-port 9001
Windows: mitmweb.exe --listen-port 9000 --web-port 9001

здесь,--port и --listen-port используется для указания порта, на котором будет работать прокси-сервер --web-port используется для указания порта для веб-интерфейса сервера.

Теперь откройте URL-адресlocalhost:9001
Ниже приведен веб-интерфейс прокси-сервера, где вы можете увидеть каждый проходящий через него запрос.

uvCnTTOtuRfs2sOHlKBiAz9jCjj3kj-Ht8lc
веб-интерфейс mitmproxy

Теперь нам нужно маршрутизировать все сетевые запросы через него.

Для этого я использую Firefox, поскольку он поддерживает добавление настроек прокси и сертификатов только для Firefox.

Примечание: можно использовать телефон/эмулятор Android или любой другой клиент.

Настройка Firefox

YPmKXNFtsRWVSjMYtHM0zsoJiLq75JXlaQx1

Настройки прокси

Установите и откройте Firefox.
В настройках выберите «Параметры подключения».

Здесь вы вручную добавите конфигурацию прокси. Если вы придерживаетесь этого руководства, добавьте localhost в HTTP-прокси и порт как 9000.
Также удалите текст «Нет прокси».

Установка сертификата mitmproxy

Для работы mitmproxy необходимо установить сертификат. В противном случае ваш браузер не позволит вам ничего получить.

НЕ устанавливайте эти сертификаты в вашей системе. УСТАНАВЛИВАЙТЕ ИХ ТОЛЬКО НА КЛИЕНТ(в этом руководстве клиентом является Firefox). Установка этих сертификатов в вашей системе является уязвимым местом безопасности.

Это еще одна причина, почему я выбираю Firefox. Firefox позволяет устанавливать сертификаты только для себя.

SX6Wo4zS7ffCrfxSHvu1sIOVmmvCOYUqRNts

Откройте URL-адрес «mitm.it» в Firefox и нажмите «Другой”, чтобы установить сертификат. Установите флажок «Доверять этому ЦС для идентификации веб-сайтов».

Приведенный выше шаг установит сертификат mitmproxy только в Firefox.

Не устанавливайте сертификат, щелкая Apple, Windows или Android, если ваш клиент не является виртуальной машиной Windows, симулятором iOS/эмулятором Android или настоящим телефоном, который вы хотите использовать в качестве клиента.

Мы закрыты и загружены

Нажмите любой URL-адрес и проверьте веб-интерфейс mitmproxy. Вы найдете свой запрос/ответ там.

Изменение запроса и ответа

Чтобы изменить запрос и ответ, необходимо сначала перехватить запрос.
Когда вы перехватываете запрос, он останавливается дважды. Один раз, когда он поступает на сервер и второй раз, когда ответ поступает от сервера.

Чтобы перехватить его, добавьте шаблон URL в текстовое поле «Перехватить».

IRivZaC9hACTqxJ3-KRh2l8pAGLJ9k2AgzFg

На изображении выше я перехватил URL-адрес, содержащий «localhost». Запросы отображаются в левом нижнем поле. Текущий запрос приостанавливается, поскольку он перехвачен. Вы можете изменить запрос здесь.

Теперь перейдите на вкладку Поток и нажмите кнопку восстановления.

6EiQGKSOM8Gq6d0VFwOqR7Yh5SV4iGY4kV4c

Теперь ваш запрос поступил на сервер и ответ поступит. Этот запрос снова будет приостановлен, но на этот раз он вернется в Firefox, и вы также можете изменить ответ.

Момент сиять

Теперь измените это soldOut к true и нажмите кнопку «Восстановить», чтобы увидеть магию (хак *кашель) произойти. Ваш внешний интерфейс получит измененный ответ, и он должен показать вам баннер «Товар отсутствует», которого вы ждали всю жизнь.

Вы можете изменить все ответ и запрос. Буквально, от головы к телу, печенье и все остальное.

Интерфейс командной строки (недоступен в Windows)

mitmproxy также имеет отличный интерфейс командной строки.

Для запуска прокси-сервера в CLI используйте команду mitmproxy --port 9000
здесь,--port используется для указания порта, на котором должен работать этот сервер.

PF1RM4SN0xGrnG3Jsvn0c2lZBkh6M7VUUEAU

Вы будете поздравлены этим. удар ? для ярлыков CLI.

Как указано в разделе конфигурации веб-интерфейса, настройте Firefox.

На этом этапе вы сможете увидеть все запросы/ответы, проходящие через ваш прокси-сервер.

Для перехвата запроса нажмите i и добавьте шаблон URL (это регулярное выражение).
Так же, как и веб-интерфейс, mitmproxy дважды перехватывает запросы: один раз при переходе на сервер и снова при возвращении с сервера.

CG4xobVNUKaPuAOpsRUm9lM6MSsCdSUYCVM5

Я добавил узор localhost. Он перехватил запрос. Нажмите Enter для просмотра этого приостановленного запроса.

1-KCSXWShgkPmclY2STf-K18Gz6AluaiLcpz

Для изменения нажмите e и вам будут предоставлены варианты изменить все, что вы хотите.

удар a чтобы разрешить запросу отправляться на сервер. Теперь вы можете просмотреть ответ и изменить его.

DqjTzo4eurC2mgio-Ps8VQQbA7ceeLbVx67E

Выше есть вкладка ответов. удар e и вы можете изменить ответ. Пресс a снова, чтобы ответ поступил в Firefox.

Это некоторые основные команды, которые можно использовать. Для получения дополнительной помощи нажмите ?.

Теперь войдите в разработку программного обеспечения, например:

Nym7LMk-MAW-IQ0c1XXziqPXcR4tfoDojEEN

Для получения дополнительной информации о mitmproxy обратитесь к документации здесь.

Если вам понравилась статья, нажмите ? кнопку и поделитесь, чтобы помочь другим найти его! Не стесняйтесь оставить комментарий ниже.

Впервые опубликовано на www.plightofbyte.com 13 марта 2018 г.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *