Как изменить содержимое данного URL для конкретного приложения?

372
Romário

В целях тестирования мне нужно изменить содержимое данного URL, чтобы увидеть, как приложение отреагирует на него. Есть ли способ сделать это на Windows?

Пример: заставить Foo.exe получить <html><body><p>Hello!</p></body></html>при запросе GET http://www.google.com.

0
Ах .... нет. - Подделка DNS довольно невозможна для цели через одно приложение. Единственный способ добиться этого - подделать собственный маршрутизатор, который является жестким и в основном не поддерживается, чтобы позволить вам перенаправлять трафик с google.com на ваш собственный веб-сервер. f3rn0s 7 лет назад 1
Можно ли это сделать с помощью прокси? Это может быть также в масштабе всей системы, я просто хотел уяснить цель моей работы. Поиск в Google «DNS-спуфинга» приносит только результаты, связанные с интернет-безопасностью. Romário 7 лет назад 0

2 ответа на вопрос

1
gronostaj

Вы можете использовать Fiddler для этого. Он действует как прокси между вашим компьютером и Интернетом. Один, если его функции, называемые AutoResponder, могут использоваться для изменения способа обработки определенных запросов. Это даже позволит вам симулировать задержки.

  1. Запустите Fiddler. Он автоматически установит прокси-сервер при запуске и удалит его при выходе из него.
  2. Переключитесь на вкладку Автоответчик . Установите флажок Включить правила .
  3. Добавьте правило. Для точно совпадающего URL используйте EXACT:префикс, например. EXACT:http://www.example.com/api/v2/lists, Выберите файл, который вы хотите использовать в качестве ответа. Файл должен содержать полный HTTP-ответ, включая заголовки.
  4. Нажмите Сохранить и посмотрите, как происходит волшебство.

Конечно, чтобы это работало, ваше приложение должно соответствовать конфигурации прокси системы. Если это не так, но вы можете ввести параметры прокси вручную, Fiddler будет работать на localhost: 8888 по умолчанию - вы можете использовать это.

Если вы не хотите вручную создавать действительный файл ответов HTTP, просто создайте файл с любым содержимым, которое вы хотите, загрузите его на любой сервер и откройте в браузере. Это должно появиться в Fiddler. Щелкните правой кнопкой мыши, затем выберите « Сохранить» → «Ответ» → «Весь ответ» .

Если веб-сайт, который вы хотите заменить, использует SSL / TLS (HTTPS-соединение), это немного сложнее. Fiddler может быть настроен для выполнения атаки «человек посередине» на такие соединения (в основном он будет расшифровывать их, используя действительный сертификат, редактировать ответ в соответствии с вашими инструкциями и повторно шифровать, используя свой собственный сертификат, который вы должны добавить к Хранилище доверенных сертификатов Windows). Это, однако, вызовет проблемы в программах, использующих закрепление сертификатов: они обнаружат, что контент подписан неизвестным сертификатом, и будут действовать соответственно. Например, Chrome позвонит домой, чтобы сообщить, обнаружены ли не доменные Google сертификаты в доменах Google.

0
Romário

Мне удалось создать Foo.exe, так что мне это больше не понадобилось, но, прежде чем сдаться, я нашел инструмент сетевой отладки под названием Charles . Одна из функциональных возможностей, которую он предлагает, - локальная подмена DNS :

Charles содержит список отображений IP-адресов, которые вы настраиваете. Когда приходит запрос на указанное доменное имя, плагин Spoof DNS обнаруживает, что IP-адрес поддельного перенаправляет запрос на этот адрес. HTTP-заголовок Host остается неизменным, поэтому ваш DNS-сервер вернул поддельный IP-адрес.

Это платное приложение, но оно может пригодиться любому, кто находится в ситуации, аналогичной моей.