Как перехватить запрос из браузера
Обновлено: 21.11.2024
Перехват запроса
Шаг 1. Запустите встроенный браузер Burp
Перейдите на вкладку Прокси > Перехват.
Нажмите кнопку «Перехват отключен», чтобы он переключился на «Перехват включен».
Нажмите «Открыть браузер». Это запускает встроенный в Burp браузер Chromium, который изначально настроен для работы с Burp.
Расположите окна так, чтобы вы могли видеть и Burp, и браузер.
Шаг 2. Перехват запроса
Запрос хранится здесь, чтобы вы могли изучить его и даже изменить перед пересылкой на целевой сервер.
Шаг 3. Перешлите запрос
Нажмите кнопку "Вперед" несколько раз, чтобы отправить перехваченный запрос и все последующие, пока страница не загрузится в браузере.
Шаг 4. Отключите перехват
Из-за большого количества запросов, которые обычно отправляют браузеры, вам часто не нужно перехватывать каждый из них. Нажмите кнопку «Перехват включен», чтобы появилось сообщение «Перехват выключен».
Вернитесь во встроенный браузер и подтвердите, что теперь вы можете взаимодействовать с сайтом как обычно.
Это позволяет вам просматривать веб-сайт в обычном режиме, а затем изучать взаимодействие между вашим браузером и сервером, что во многих случаях более удобно.
Изменение запросов в Burp Proxy
В этом разделе вы узнаете, как изменить перехваченный запрос в Burp Proxy. Это позволяет вам манипулировать запросом способами, которые веб-сайт не ожидает увидеть, как он ответит. Используя один из наших преднамеренно уязвимых веб-сайтов, известных как «лаборатории», вы увидите, как это может помочь вам выявить и использовать реальные уязвимости.
Академия веб-безопасности
Шаг 1. Получите доступ к уязвимому веб-сайту во встроенном браузере
В Burp перейдите на вкладку «Прокси» > «Перехват» и убедитесь, что перехват отключен.
Запустите браузер Burp и используйте его для перехода по следующему URL-адресу:
Шаг 2. Войдите в свою учетную запись для покупок
На веб-сайте магазина нажмите Моя учетная запись и войдите, используя следующие учетные данные:
Имя пользователя: Винер
Пароль: Питер
Обратите внимание, что у вас всего 100 долларов на балансе магазина.
Шаг 3. Найдите что-нибудь купить
Нажмите "Главная", чтобы вернуться на домашнюю страницу. Выберите параметр, чтобы просмотреть сведения о продукте Легкая кожаная куртка "l33t".
Шаг 4. Изучите функцию добавления в корзину
В Burp перейдите на вкладку «Прокси» > «Перехват» и включите перехват. В браузере добавьте кожаную куртку в корзину, чтобы перехватить полученный запрос POST /cart.
Изначально вы можете увидеть другой запрос на вкладке Прокси > Перехват, если ваш браузер делает что-то еще в фоновом режиме. В этом случае просто нажимайте «Вперед», пока не увидите запрос POST /cart, как показано на снимке экрана выше.
Изучите перехваченный запрос и обратите внимание, что в теле есть параметр price , который соответствует цене товара в центах.
Шаг 5. Измените запрос
Измените значение параметра цены на 1 и нажмите "Вперед", чтобы отправить измененный запрос на сервер.
Снова отключите перехват, чтобы любые последующие запросы могли беспрепятственно проходить через Burp Proxy.
Шаг 6. Воспользуйтесь уязвимостью
Во встроенном браузере нажмите значок корзины в правом верхнем углу, чтобы просмотреть свою корзину.Обратите внимание, что куртка была добавлена всего за один цент.
Нельзя изменить цену через веб-интерфейс. Вы смогли внести это изменение только благодаря Burp Proxy.
Нажмите кнопку "Оформить заказ", чтобы приобрести куртку по чрезвычайно разумной цене.
Что происходит под капотом?
Знаете ли вы какую-нибудь библиотеку для этого? (на любых языках)
8 ответов 8
Он регистрируется в WinINET с помощью соответствующего вызова API во время работы и отсоединяется таким же образом. Большинство браузеров автоматически определяют настройку прокси-сервера WinINET и используют ее. Firefox этого не делает, поэтому текущие версии Fiddler устанавливают надстройку Firefox.
Разве не здорово, когда основные разработчики присылают ответы на вопросы о своем программном обеспечении? Fiddler — это круто, я не знаю, что бы я без него делал :-) (Последняя версия Eclipse 3.5 также настраивается на использование прокси из IE, поэтому, когда я запускаю Fiddler, Eclipse теперь тоже использует его!)
Fiddler действительно использует прокси. Я считаю, что установщик автоматически настраивает IE для использования прокси-сервера Fiddler. Вы также можете настроить другие браузеры для прохождения через тот же прокси-сервер, чтобы Fiddler также профилировал их сетевой трафик.
В настройках моих браузеров ничего не настроено, и это работает, даже если я установил Chrome или Firefox после Fiddler. Если скрипач выключен, все работает нормально. Я не могу представить, что программисты fiddler подумали обо всех этих вариантах использования, это было бы слишком сложно.
Хм, я никогда не заставлял Fiddler профилировать какой-либо другой браузер, не настроив их на использование Fiddler в качестве прокси. Какую версию Fiddler вы используете?
Fiddler изменяет конфигурацию системного прокси, которая автоматически используется IE, Safari, Chrome. Последние версии Fiddler также устанавливают подключаемый модуль Firefox, который автоматически устанавливает конфигурацию прокси-сервера, когда он работает/активно перехватывает пакеты. Что касается Opera и других браузеров, ваш пробег может отличаться.
Я только что открыл Fiddler (который побуждал меня обновить последние пару месяцев :P), и начиная с версии 2.2.1.4 (выпущенной 31 марта 2009 г.) Fiddler включает расширение FiddlerHook для Firefox, о котором упоминал Джордан. Это объясняет, почему он не ловит трафик из других браузеров на моей машине, мне придется установить обновление!
Я не знаю, как это делает fiddler, но это можно сделать с помощью многоуровневого поставщика услуг в Windows.
"Многоуровневый поставщик услуг (LSP) — это функция интерфейса поставщика услуг (SPI) Microsoft Windows Winsock 2. Многоуровневый поставщик услуг — это библиотека DLL, которая использует Winsock API для вставки себя в стек TCP/IP. После входа стеке многоуровневый поставщик услуг может перехватывать и изменять входящий и исходящий интернет-трафик.Он позволяет обрабатывать весь трафик TCP/IP, проходящий между Интернетом и приложениями, имеющими доступ к Интернету (такими как веб-браузер, почтовый клиент, д.), "
Из заметок MSDN о расширении скрипача
Полагаю, вы не хотите слышать, что их можно просто перехватывать на веб-сервере вместо клиента (если он локальный) или можно использовать WPAC (автоматическая настройка прокси-сервера).
Еще один вариант — использовать программное обеспечение, такое как SocksCap, которое «отлаживает» процесс браузера (или веб-сервера), и всякий раз, когда он вызывает некоторые функции winsock, они перехватывают его и вызывают свой собственный код.
Библиотека для подобных вещей (перехват вызовов библиотеки в отлаживаемом процессе) — это обходной путь.
Возможно, сетевой интерфейс работает в неразборчивом режиме. Вот как WireShark может отслеживать сетевой трафик и отображать его.
Wireshark — передовой в мире анализатор сетевых протоколов, который де-факто (а часто и де-юре) является стандартом во многих отраслях и учебных заведениях.
Вы можете щелкнуть параметры здесь, чтобы перехватить разных клиентов, или выполнить поиск параметров, чтобы найти подходящие для вашего случая. Не все параметры будут включены: некоторые из них являются заполнителями для будущих функций перехвата, а некоторые могут быть недоступны в вашей системе.
Этот шаг предполагает, что у вас установлен Chrome.
Сначала вы увидите несколько запросов, которые Chrome отправляет во время запуска. Посетите другой URL-адрес (почему бы не попробовать эту страницу?), чтобы изучить запросы и ответы других веб-страниц и приложений.
Этот шаг предполагает, что у вас установлен Node.js.
Для этого выберите параметр перехвата «Новый терминал», чтобы открыть новое окно перехваченного терминала. В этом окне используются различные переменные среды и переопределения, поэтому любые запущенные там приложения автоматически перехватываются. Однако во всех остальных отношениях он ничем не отличается от любого другого терминала в вашей системе, и вы должны иметь возможность запускать команды, как обычно.
Нажатие этой кнопки — это все, что требуется для настройки. Теперь вам просто нужно отправить несколько запросов! Например, вы можете отправить запрос с помощью встроенного клиента Node.js, выполнив следующую команду:
Чтобы вручную перехватить трафик от клиента, у которого нет автоматической настройки, необходимо сделать две вещи:
Этапы для этого значительно различаются в зависимости от конкретного клиента, который вы используете, но обычно для каждого из них доступен параметр или параметр.
Удачно перехватываете трафик?
Давайте поговорим об инструментах, доступных для проверки перехваченного трафика.
Не удается заставить перехват работать? Вот несколько советов:
Если у вас установлено приложение, но опция перехвата по-прежнему отключена, или если опция включена, но у вас не работает, это ошибка! Пожалуйста, сообщите о проблеме, чтобы мы могли это исправить.
Requestly – это легкий прокси-сервер, доступный в виде расширения для браузера и настольного приложения для перехвата и изменения сетевых запросов. Используя Requestly, вы можете имитировать ответы API, изменять заголовки, перенаправлять URL-адреса, задерживать/дросселировать запросы и т. д. Разработчики могут сотрудничать, обмениваясь правилами друг с другом.
Мощный и простой в использовании инструмент отладки
Быстрый доступ к сетевому уровню для диагностики и устранения проблем с помощью функций отладки Requestly.
Изменить заголовки
Добавить, удалить или заменить заголовки запросов и ответов. Может использоваться для тестирования X-Frame-Options, Content-Security-Policy, добавления заголовков авторизации, отладки CORS и т. д. Подробнее
URL-адрес перенаправления
Перенаправлять запросы, соответствующие шаблону URL, на другой целевой URL. Может использоваться для загрузки неминифицированных скриптов, тестирования различных версий библиотек, загрузки локальной версии скрипта в рабочую среду и т. д. Подробнее
Вставить пользовательские сценарии
Позволяет автоматизировать, очищать и изменять поведение веб-страницы с небольшим знанием JS и CSS. Используйте службу размещения файлов для загрузки длинных сценариев и получения URL-адреса, который будет использоваться на ваших веб-сайтах или в правилах Requestly. Подробнее
Имитация ответа API
Возвращать настраиваемый (фиктивный) ответ на ваши запросы API. Может использоваться для тестирования изменений API, более новой версии API в вашем приложении. Подробнее
Сотрудничать с товарищами по команде
Мгновенно делитесь правилами и сотрудничайте с коллегами по команде и другими разработчиками. Подробнее
Несколько типов правил
Requestly поддерживает несколько типов правил для удовлетворения ваших потребностей в изменении сетевого запроса, включая перенаправление, изменение пользовательского агента, вставку сценария, блокировку ресурсов, изменение заголовка и т. д.
Поддержка регулярных выражений и подстановочных знаков
Requestly имеет богатый интерфейс для предоставления условий сопоставления URL. Поддерживаются несколько операторов: равно, содержит, регулярное выражение (соответствие) и регулярное выражение с подстановочным знаком.
Активация/деактивация
Requestly обеспечивает активацию и деактивацию всего расширения, отдельных групп правил или правил одним щелчком мыши. Отметьте правило как неактивное, если оно вам не нужно какое-то время.
Простая совместная работа
Пользователи могут легко сотрудничать с другими пользователями, разделяя правила между ними и улучшая способ совместной работы.
Имитация сервера
Requestly позволяет загружать, создавать и управлять файлами js, css, json и т. д., которые можно использовать в правилах Requestly. Теперь не нужно настраивать локальный сервер.
Резервное копирование данных
Requestly позволяет вам сделать резервную копию ваших данных, либо загрузив правила в виде текстового файла, либо сгенерировав ссылку.
Читайте также: