March 28, 2022

Text Based Injection | Content Spoofing

Внедрение на основе текста. Внедрение текста или внедрение на основе текста (TBI) — это внедрение, при котором пользовательский ввод отражается так же, как и в ответе приложения, в виде открытого текста. Это один из способов подмены контента, также называемый внедрением контента или виртуальным искажением, который можно использовать в фишинговых атаках.

Приложение уязвимо для внедрения текста, если оно неправильно обрабатывает предоставленные пользователем данные. Злоумышленник может предоставить контент веб-приложению, как правило, через значение параметра или только из URL-адреса, который отражается обратно пользователю. Пользователю будет представлена ​​измененная страница в контексте доверенного домена.

Тип атаки: уязвимость на стороне клиента

Серьезность: низкая

Руководство по аудиту

Внедрение текста можно легко найти там, где

  1. Ввод пользователя через параметр или непосредственно в URL отражается в ответе страницы..
  2. Content-Type: текстовый/обычный
  3. Приложение выдает страницы ошибок по умолчанию

Доказательство концепции

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

На вопрос «почему это происходит» мы знаем ответ, верно?

В любом случае, ответ, вводимый пользователем через параметр или непосредственно в URL-адресе, отражается в ответе страницы.

Страница ошибки

URL - https://example.com/captcha

Страница ошибки

Изменена страница ошибки

URL-адрес: https://example.com/captcha/SS%2F%20%20%20is%20not%20available.%20Please%20visit%20-%20-%20-%20-%20https://attacker.com %20%20-%20-%20-%20-%20ас%20ресурс%20

Изменена страница ошибки

Как это делает Google

Google очень хорошо обрабатывает страницы ошибок. Вот скриншот для справки.

Хорошая обработка пользовательского ввода в URL-адресе Google

Влияние

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

Рекомендации

Приложение должно принимать только те значения и типы, которые определены для параметров, и должно проверяться на стороне сервера на наличие измененного содержимого, если есть изменение, то приложение должно отклонить этот запрос. Кроме того, никогда не создавайте и не отправляйте сообщения через URL-адрес в ответе страницы. Предпочтительнее использовать сообщения, предварительно определенные в файле свойств.

Для страниц ошибок по умолчанию

В конфигурации приложения должна быть указана страница ошибок по умолчанию, чтобы гарантировать, что приложение никогда не передаст сообщения об ошибках злоумышленнику. Обработка стандартных кодов ошибок HTTP удобна для пользователя в дополнение к хорошей практике безопасности и может быть выполнена путем указания пользовательских страниц ошибок для таких кодов ошибок, как 404, 403, 500 и т. д.