Parameter Pollution
Забруднення параметрів
Огляд забруднення параметрів HTTP (HPP)
Забруднення параметрів HTTP (HPP) - це техніка, за допомогою якої зловмисники маніпулюють параметрами HTTP, щоб змінити поведінку веб-додатка непередбаченим чином. Ця маніпуляція виконується шляхом додавання, зміни або дублювання параметрів HTTP. Ефект цих маніпуляцій не є прямо видимим для користувача, але може значно змінити функціональність додатка на стороні сервера, з помітними наслідками на стороні клієнта.
Приклад забруднення параметрів HTTP (HPP)
URL транзакції банківського додатка:
Оригінальний URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000
Додавши додатковий параметр from
:
Змінений URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
Транзакція може бути неправильно зарахована на рахунок accountC
замість accountA
, демонструючи потенціал HPP для маніпулювання транзакціями або іншими функціями, такими як скидання паролів, налаштування 2FA або запити ключів API.
Парсинг параметрів, специфічний для технологій
Спосіб парсингу та пріоритетизації параметрів залежить від базової веб-технології, що впливає на те, як може бути використаний HPP.
Інструменти, такі як Wappalyzer, допомагають визначити ці технології та їх поведінку парсингу.
Експлуатація PHP та HPP
Випадок маніпулювання OTP:
Контекст: Механізм входу, що вимагає одноразовий пароль (OTP), був експлуатований.
Метод: Шляхом перехоплення запиту OTP за допомогою інструментів, таких як Burp Suite, зловмисники дублювали параметр
email
у запиті HTTP.Результат: OTP, призначений для початкової електронної адреси, був надісланий на другу вказану електронну адресу в зманіпульованому запиті. Цей дефект дозволив несанкціонований доступ шляхом обхідної заходу безпеки.
Цей сценарій підкреслює критичне недолік у роботі бекенду додатка, який обробляв перший параметр email
для генерації OTP, але використовував останній для доставки.
Випадок маніпулювання ключем API:
Сценарій: Додаток дозволяє користувачам оновлювати свій ключ API через сторінку налаштувань профілю.
Вектор атаки: Зловмисник виявляє, що додавання додаткового параметра
api_key
до запиту POST дозволяє маніпулювати результатом функції оновлення ключа API.Техніка: Використовуючи інструмент, такий як Burp Suite, зловмисник створює запит, який містить два параметри
api_key
: один законний і один зловмисний. Сервер, обробляючи лише останнє входження, оновлює ключ API до значення, наданого зловмисником.Результат: Зловмисник отримує контроль над функціональністю API жертви, можливо, отримуючи доступ або змінюючи приватні дані несанкціоновано.
Цей приклад додатково підкреслює необхідність безпечної обробки параметрів, особливо в таких критичних функціях, як управління ключами API.
Парсинг параметрів: Flask проти PHP
Спосіб, яким веб-технології обробляють дубльовані параметри HTTP, відрізняється, що впливає на їх вразливість до атак HPP:
Flask: Бере перше значення параметра, таке як
a=1
у рядку запитуa=1&a=2
, надаючи пріоритет початковому екземпляру перед подальшими дублікатами.PHP (на сервері Apache HTTP): Навпаки, надає пріоритет останньому значенню параметра, вибираючи
a=2
у даному прикладі. Ця поведінка може ненавмисно сприяти атакам HPP, виконуючи маніпульований параметр зловмисника над оригінальним.
Посилання
Last updated