Можно ли и отредактировать исходящий HTTP-запрос - PullRequest
1 голос
/ 30 января 2020

Можете ли вы заблокировать / остановить и отредактировать исходящий HTTP-запрос, а затем отправить его по пути?

Например, если я сделаю HTTP GET запрос на свой веб-сайт, могу ли я отредактировать user-agent заголовок из чего-то вроде

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135
до
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36

Я пытался сделать это в wireshark, но я пока не увенчался успехом, потому что я не использую Wireshark регулярно.

1 Ответ

0 голосов
/ 03 февраля 2020

Настройка браузера

Современные браузеры включают в себя множество инструментов, которые могут помочь вам изменить необходимые части следующего вашего запроса. Например, пользовательский агент может быть легко изменен в Mozilla путем создания / настройки general.useragent.override в about:config, chrome позволяет делать это с помощью инструментов dev> сетевых условий, подробнее см. howtogeek

Используйте аддоны

Для веб-разработчиков создано множество аддонов для браузеров, включая те, которые изменяют части запроса. Я провел несколько экспериментов с изменением HTTP реферера, когда-то go, есть некоторые дополнения для смены пользовательского агента, поэтому не стесняйтесь искать тот, который вам нужен.

Используйте curl

curl - довольно мощный инструмент для ручного изготовления HTTP-запросов. Вы ищете curl --user-agent "user-agent-name-here" URL, но вы также можете включить другие опции, такие как --cookie "NAME=value" et c. Этот способ менее удобен для пользователя, но имеет гораздо больше возможностей, чем первые два.

Захват и воспроизведение траффи c

Если все вышеперечисленные способы недостаточны, вы можете использовать wireshark / tcpdump для захвата соединения клиент-сервер, фильтрации клиентских пакетов, изменения их при помощи sh (например, в Colasoft Packet Builder ), а затем повторной отправки измененного трафика c. Этот способ хар sh со множеством ловушек:

  • Контрольная сумма TCP в измененных пакетах должна быть исправлена ​​перед повторной отправкой. Вероятно, средство повторной отправки должно быть способно, или попробуйте tcprewrite --fixcsum в Linux.
  • , что невозможно сделать с TLS
  • , трудно / невозможно сделать правильно с nonce или в любых временных полях
  • вам придется самостоятельно интерпретировать ответы сервера, так как они не доходят до браузера
  • повторная отправка может быть неудачной по многим причинам (например, порт все еще занят через браузер; некоторые поля имеют неверные значения, такие как длина содержимого в модифицированном пакете; пакеты содержат устаревшие данные, такие как «нет» ie, когда клиент должен иметь один et c)

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

...