Методологія вразливостей Web

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

У кожному Web Pentest існує кілька прихованих та очевидних місць, які можуть бути вразливими. Ця сторінка призначена як чекліст, щоб переконатися, що ви перевірили на наявність уразливостей усі можливі місця.

Проксі

Tip

Наразі web applications зазвичай використовують певні проміжні proxies, які можуть бути (з)ловживані для експлуатації уразливостей. Ці вразливості вимагають наявності вразливого проксі, але зазвичай також потребують додаткової уразливості в бекенді.

User input

Tip

Більшість web applications дозволяють користувачам вводити деякі дані, які будуть оброблені пізніше.
Залежно від структури даних, яку очікує сервер, деякі вразливості можуть застосовуватися, а деякі — ні.

Reflected Values

Якщо введені дані якимось чином можуть бути відображені в відповіді, сторінка може бути вразливою до кількох проблем.

Деякі з перелічених вразливостей вимагають спеціальних умов, інші — лише відображення контенту. Ви можете знайти кілька цікавих polygloths для швидкого тестування вразливостей у:

Reflecting Techniques - PoCs and Polygloths CheatSheet

Search functionalities

Якщо функціонал може використовуватися для пошуку якихось даних в бекенді, можливо, його можна (з)ловживати для пошуку довільних даних.

Forms, WebSockets and PostMsgs

Коли websocket надсилає повідомлення або форма дозволяє користувачам виконувати дії, можуть виникнути вразливості.

Cross-site WebSocket hijacking & localhost abuse

WebSocket upgrade автоматично пересилає cookies і не блокує ws://127.0.0.1, тому будь-який web origin може керувати десктопними IPC endpoint’ами, які пропускають перевірку Origin. Коли ви помічаєте launcher, що експонує API типу JSON-RPC через локального агента:

  • Спостерігайте за emitted frames, щоб клонувати кортежі type/name/args, необхідні для кожного методу.
  • Bruteforce порт прослуховування безпосередньо з браузера (Chromium витримає ~16k невдалих upgrade’ів), поки loopback socket не відповість banner’ом протоколу — Firefox під тією ж навантаженням зазвичай швидко падає.
  • Зв’яжіть пару create → privileged action: напр., викличте метод create*, який повертає GUID, і відразу викличте відповідний метод *Launch* з payload’ом, який контролює атакуючий.

Якщо ви можете передати довільні JVM flags (наприклад AdditionalJavaArguments), примусьте помилку з -XX:MaxMetaspaceSize=<tiny> і додайте -XX:OnOutOfMemoryError="<cmd>", щоб виконати OS-команди без зміни логіки застосунку. Див. WebSocket attacks для покрокового опису.

HTTP Headers

Залежно від HTTP заголовків, які повертає вебсервер, можуть бути присутні певні вразливості.

Bypasses

Є кілька специфічних функціональностей, де деякі обхідні шляхи можуть бути корисними для їх подолання

Structured objects / Specific functionalities

Деякі функціональності вимагатимуть, щоб дані мали дуже специфічний формат (наприклад, об’єкт у конкретній мові чи XML). Тому легше визначити, чи може застосунок бути вразливим, оскільки він має обробляти такі дані.
Деякі специфічні функціональності також можуть бути вразливими, якщо використати конкретний формат вводу (наприклад, Email Header Injections).

Files

Функціонали, що дозволяють завантажувати файли, можуть бути вразливими до кількох проблем.
Функціонали, що генерують файли, включаючи введені користувачами дані, можуть виконувати непередбачений код.
Користувачі, які відкривають файли, завантажені іншими користувачами або автоматично згенеровані з введенням користувача, можуть бути скомпрометовані.

External Identity Management

Other Helpful Vulnerabilities

Ці вразливості можуть допомогти експлуатувати інші уразливості.

Web Servers & Middleware

Неправильні налаштування в edge stack часто відкривають більш серйозні баги на рівні застосунку.

Application Frameworks & Stacks

Примітиви, специфічні для фреймворків, часто відкривають гаджети, небезпечні установки за замовчуванням або ендпоїнти, якими володіє фреймворк.

CMS, SaaS & Managed Platforms

Продукти з великою поверхнею атаки часто постачаються з відомими експлоїтами, слабкими плагінами або привілейованими адміністративними ендпоїнтами.

APIs, Buckets & Integrations

Server-side helpers та сторонні інтеграції можуть відкривати слабкості при парсингу файлів або в шарі зберігання.

Supply Chain & Identifier Abuse

Атаки, що націлені на build pipelines або передбачувані ідентифікатори, можуть стати початковою точкою опори перед використанням традиційних багів.

Web3, Extensions & Tooling

Сучасні застосунки розширюються в браузери, wallets та автоматизаційні пайплайни — тримайте ці вектори в полі зору.

References

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks