HTTP-параметр Загрязнение - это когда ваше приложение делает обратный HTTP-запрос другой системе, и эти параметры могут управляться путем ввода в основное приложение. HPP определяется тем фактом, что злоумышленник вызывает дублирующее имя параметра для обратного запроса, что переопределяет значение параметра, явно переданное приложением. Аналогичная уязвимость, HTTP-параметр Injection определяется злоумышленником, добавляющим новый параметр к внутреннему запросу, который интерпретируется другой системой. Таким образом, HPI вызывает добавление нового параметра, тогда как HPP приводит к игнорированию или интерпретации существующего параметра по-новому.
См. my answer here для твердого примера ГЭС.
CSRF не требует какого-либо внутреннего HTTP-запроса. Это предварительный запрос, но сделанный жертвой без их ведома. В основном это означает, что вредоносный запрос выполняется с использованием браузера жертвы и файлов cookie авторизации жертвы. Это может быть как простой, как скрытое изображение на странице злоумышленника:
<img src="https://bank.example.com/transfer_money?toAmount=999&toAccount=12345678" />
Это будет срабатывать каждый раз, когда жертва посещает страницу атакующего (например, после ссылки по электронной почте к ним, или что-то разместил на форуме).
См. my answer here для другого примера с использованием метода POST.
Иногда уязвимость в HPP может быть использована с помощью CSRF. Например, тот, который требует, чтобы жертва была зарегистрирована в системе, которая может быть использована через ГЭС. например POST до https://www.example.com/transferMoney.php
может быть произведен сайтом злоумышленника, передавая параметр POST toAccount=9876
, в результате чего жертва передает деньги на несанкционированную учетную запись, используя их файл cookie для авторизации для www.example.com
.
Что касается статьи в вашем вопросе, я не думаю, что это реалистичная атака HPP, потому что любые действия, которые вызывают изменение состояния, должны быть реализованы с помощью метода POST, а не ссылки GET, как показывает статья, Фактически вы получаете ссылку на действие, которая строится на текущей странице (но эй, все возможно). Вот почему на практике ГЭС действительно больше обращается к обратным запросам.
Спасибо за разъяснение. Как вы сказали, HPP может быть использована через CSRF. Поэтому я предполагаю, что если у нас есть надлежащие механизмы защиты CSRF, злоумышленники не смогут обмануть пользователей для выполнения ГЭС. Но фильтры CSRF не будут препятствовать ситуациям, упомянутым в ваших примерах HPP, где фактический злоумышленник является пользователем, который его использует. – SSB
Исправить. ГЭС - это когда параметры «загрязнены», имея дубликаты, которые интерпретируются непреднамеренно. В другом ответе не упоминается этот ключевой факт. – SilverlightFox