Parameter Pollution

Забруднення параметрів

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Огляд забруднення параметрів 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, виконуючи маніпульований параметр зловмисника над оригінальним.

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated