9.1 KiB
Параметричне забруднення
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
{% embed url="https://websec.nl/" %}
Огляд 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 Server): Навпаки, надає пріоритет останньому значенню параметра, вибираючи
a=2
у наведеному прикладі. Ця поведінка може ненавмисно сприяти експлуатації HPP, визнаючи маніпульований параметр зловмисника замість оригінального.
Посилання
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.