Введение
Burp Suite — это мощная платформа для тестирования безопасности веб-приложений. Одним из его основных компонентов является Burp Proxy, который действует как посредник (man-in-the-middle) между вашим браузером и целевым веб-сервером. Это позволяет перехватывать, просматривать и изменять необработанный трафик, проходящий в обоих направлениях.
Хотя перехват запросов является распространенной задачей, перехват и модификация ответов также важны для тестирования безопасности. Это позволяет проверить, как клиентское приложение обрабатывает неожиданные или измененные данные от сервера.
В этой лаборатории вы научитесь настраивать Burp Proxy для перехвата ответов сервера и модификации HTML-содержимого веб-страницы перед его отображением в вашем браузере. Для этой демонстрации мы будем использовать простой локальный веб-сервер.
Перейдите в Proxy > Options > Intercept Server Responses
На этом шаге вы настроите Burp Suite для перехвата ответов от веб-сервера. По умолчанию Burp Proxy перехватывает только исходящие запросы от браузера.
Сначала вам нужно запустить Burp Suite. Вы можете найти его в меню приложений или выполнив поиск.
После открытия Burp Suite:
- Нажмите на вкладку Proxy в верхней части окна.
- Во вкладке
Proxyнажмите на подвкладку Options. - Прокрутите вниз по опциям, пока не найдете раздел под названием Intercept Server Responses.
Этот раздел содержит настройки, которые управляют тем, перехватывает ли Burp Proxy входящие HTTP-ответы и как именно. Теперь вы нашли необходимую область конфигурации для следующего шага.
Включите флажок 'Intercept responses based on the following rules'
На этом шаге вы активируете функцию перехвата ответов.
В разделе Intercept Server Responses, который вы нашли на предыдущем шаге, вы увидите флажок.
- Нажмите на флажок рядом с надписью Intercept responses based on the following rules.
Как только вы установите этот флажок, Burp Proxy будет настроен на перехват ответов сервера, соответствующих правилам, определенным ниже. Правило по умолчанию, Is a response to a request that was intercepted (Является ответом на перехваченный запрос), добавляется автоматически и идеально подходит для наших целей. Это правило указывает Burp перехватывать ответ только в том случае, если соответствующий ему запрос также был перехвачен прокси. Это предотвращает остановку Burp на каждом ответе, например, на фоновых изображениях или скриптах, и фокусирует внимание только на трафике, который вы активно просматриваете.
Перехватите запрос и перешлите его
На этом шаге вы будете использовать встроенный браузер Burp для отправки запроса на наш локальный веб-сервер и его перехвата.
- Перейдите на подвкладку Proxy > Intercept.
- Убедитесь, что кнопка гласит Intercept is on (Перехват включен). Если она гласит "Intercept is off" (Перехват выключен), нажмите на нее, чтобы включить перехват.
- Нажмите кнопку Open Browser (Открыть браузер). Откроется новое окно браузера Chromium, предварительно настроенное на использование Burp Proxy.
- В адресной строке браузера введите
http://127.0.0.1:8000и нажмите Enter.
Браузер будет казаться загружающимся бесконечно. Это происходит потому, что Burp перехватил HTTP-запрос. Вернитесь в окно Burp Suite. На вкладке Proxy > Intercept вы увидите необработанный HTTP-запрос:
GET / HTTP/1.1
Host: 127.0.0.1:8000
... (other headers)
Это запрос от вашего браузера к локальному серверу. Чтобы разрешить ему отправиться на сервер, нажмите кнопку Forward (Переслать). После пересылки запроса Burp теперь будет ожидать перехвата ответа, возвращающегося от сервера.
Измените HTML-тело в перехваченном ответе
На этом шаге вы отредактируете содержимое HTTP-ответа перед его отправкой в браузер.
Поскольку вы включили перехват ответов и переслали запрос на предыдущем шаге, вкладка Proxy > Intercept теперь содержит ответ сервера. Он будет выглядеть примерно так:
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
Date: ...
Content-type: text/html
Content-Length: ...
<h1>Welcome to the Original Page!</h1><p>This is the content you will modify.</p>
Основная текстовая область редактируема. Здесь вы можете изменять ответ "на лету".
- В текстовой области тела ответа найдите строку
<h1>Welcome to the Original Page!</h1>. - Измените текст на
<h1>Welcome to the Modified Page!</h1>. - Вы также можете изменить текст абзаца, если хотите, например, на
<p>This content has been changed by Burp Proxy.</p>.
Теперь вы изменили ответ сервера. Он все еще удерживается Burp Proxy и еще не достиг браузера.
Перешлите измененный ответ и наблюдайте за изменением в браузере
На этом заключительном шаге вы отправите измененный ответ в браузер и увидите результат.
Измененный ответ все еще ожидает на вкладке Proxy > Intercept.
- Нажмите кнопку Forward (Переслать) в последний раз. Это освободит ответ и отправит вашу измененную версию в браузер.
- Вернитесь в окно Burp Browser, которое ранее загружалось.
Страница теперь завершит загрузку, но вместо оригинального содержимого отобразит введенный вами текст. Вы должны увидеть:
Welcome to the Modified Page! This content has been changed by Burp Proxy.
Поздравляем! Вы успешно перехватили HTTP-ответ, изменили его содержимое во время передачи и наблюдали за изменением в браузере. Это демонстрирует фундаментальную возможность для тестирования безопасности веб-приложений. Теперь вы можете отключить перехват, нажав кнопку "Intercept is on" (Перехват включен).
Резюме
В этой лабораторной работе вы получили практический опыт работы с ключевой функцией Burp Suite. Вы научились:
- Настраивать Burp Proxy для перехвата ответов сервера, что является функцией, отключенной по умолчанию.
- Следовать рабочему процессу перехвата запроса, его пересылки, а затем получения соответствующего ответа.
- Изменять тело HTTP-ответа в режиме реального времени перед его достижением браузера.
- Наблюдать прямое влияние изменения ответа на отображаемую веб-страницу.
Этот метод является фундаментальным в веб-безопасности для тестирования того, как фронтенд-код веб-приложения обрабатывает неожиданные или вредоносные данные от сервера, потенциально выявляя уязвимости, такие как межсайтовый скриптинг (XSS) или нарушения контроля доступа.
