Для захисту онлайн-активів критично важливим елементом є тестування безпеки вебдодатків. Burp Suite вже багато років залишається лідером у цій галузі, будучи основним інструментом як для фахівців з безпеки, так і для етичних хакерів. Серед розширень, що виділяються у спільноті тестувальників, особливе місце посідає «Autorize». Воно пропонує потужний набір функцій, які значно спрощують процес тестування автентифікації та авторизації.
Autorize = Authenticate + Authorize
Авторизація (Authorization) охоплює будь-які методи, за допомогою яких система надає або скасовує дозвіл на доступ до певних даних чи дій. Водночас Автентифікація (Authentication) — це процес підтвердження того, що користувач або система є саме тими, за кого себе видають.
- Поширені вразливості, що виявляються Autorize
- Розуміння функціонала
- Встановлення та налаштування
- Навігація та параметри конфігурації
- Практична демонстрація Autorize у дії
Поширені вразливості, що виявляються Autorize
Насамперед Autorize зосереджений на ідентифікації вразливостей, пов’язаних з авторизацією. Він допомагає виявити кілька основних типів проблем:
- Неадекватний контроль доступу на основі ролей (RBAC): Виявляє випадки, коли ролі або дозволи користувачів не перевіряються належним чином, що дозволяє отримати доступ до функцій або конфіденційних даних поза межами повноважень.
- Порушення контролю доступу (Broken Access Controls): Ідентифікує збої в механізмах контролю, що призводять до несанкціонованого доступу до ресурсів або дій.
- Небезпечні прямі посилання на об’єкти (IDOR): Виявляє сценарії, де зловмисник може маніпулювати вхідними даними (наприклад, ID у параметрах) для доступу до даних інших користувачів.
- Примусовий перегляд (Forced Browsing): Висвітлює ситуації, коли обмеження обходяться шляхом прямого звернення до захищених URL-адрес.
- Недостатня авторизація: Виявляє слабке впровадження дозволів, що уможливлює несанкціоновані дії.
- Горизонтальне та вертикальне підвищення привілеїв: Знаходить недоліки, які дозволяють зловмиснику видавати себе за іншого користувача того ж рівня або отримувати права адміністратора.
- Вади бізнес-логіки: Виявляє маніпуляції робочими процесами (workflows), що призводять до витоку даних або несанкціонованої активності.
Принцип роботи Autorize
Розглянемо механізм роботи розширення. Припустимо, вебдодаток використовує керування доступом на основі ролей та автентифікацію через cookies.
- Звичайний користувач: має доступ до загальних функцій, але не може звертатися до адмін-панелі або змінювати БД (лише читання).
- Адміністратор: має повний доступ з правами читання/запису.
Ви можете перехопити куки (cookies) звичайного користувача та додати їх в Autorize. Після цього увійдіть у систему як адміністратор, переходьте за адмінськими посиланнями та виконуйте дії з базою даних.
Що робить Autorize у цей момент? Він перехоплює кожен ваш запит (як адміна), підміняє адмінські куки на куки звичайного користувача і відправляє дублікат запиту на сервер. Якщо відповідь сервера ідентична очікуваній для адміна (наприклад, 200 OK) і помилки доступу немає, Autorize позначає це як Red Bypass! (Червоний — Обхід!). Натомість захищені запити відображаються як Green Enforced! (Зелений — Захищено).
Для великих додатків з понад 30 динамічними сторінками це автоматизоване тестування суттєво полегшує роботу, знімаючи тягар ручного перебору URL. Аналогічно розширення працює з API-ендпоінтами: наприклад, замінивши JWT-токен в заголовку Authorization, можна швидко знайти вразливості обходу авторизації в API.
Встановлення та налаштування
Ви можете завантажити та встановити розширення з BApp Store. Перейдіть у вкладку Extensions, виберіть BApp Store, знайдіть у списку «Autorize» (або скористайтеся пошуком) і натисніть на нього.
Оскільки розширення написане на Python, спочатку необхідно встановити Jython.

Перейдіть за посиланням та завантажте Jython Standalone: jython.org/download.html.
Після завантаження перейдіть у Settings > Extensions. У розділі Python Environment вкажіть шлях до завантаженого файлу Jython. Після цього середовище Python буде успішно налаштовано.

Перезапустіть Burp Suite, поверніться до BApp Store та встановіть Autorize (кнопка Install тепер буде активною).

Після успішного встановлення на верхній панелі з’явиться вкладка Autorize.
Навігація та параметри конфігурації
Розділ Autorize містить дві основні вкладки: Request/Response Viewers та Configuration.
Request/Response Viewers (Перегляд запитів/відповідей)
Тут відображається повна інформація про запити, перехоплені Autorize:
- Modified Request: відображає маніпуляційний запит (із підміненими даними).
- Original Request: оригінальний (немодифікований) запит.
- Unauthenticated request: запит без даних автентифікації.

Параметри конфігурації (Configuration)
За замовчуванням Autorize вимкнено. Коли ви будете готові до перехоплення запитів, переведіть його у стан Autorize is on. Тут також доступні налаштування для фільтрації запитів та статус-кодів сервера.
Тимчасова заміна заголовків та токенів (Temporary Header replacement)
У полі Temporary header необхідно вказати токен, куки або значення заголовка звичайного користувача, якими ви хочете підмінити дані в реальних запитах (наприклад, JWT-токен).
Ви можете додати їх вручну або скористатися функцією отримання з останнього запиту:
- Fetch Cookies header — підтягнути сесійні куки.
- Fetch Authorization header — підтягнути заголовок авторизації.

Налаштування детектора захисту (Enforcement Detector)
Після завантаження сесійних куків ви маєте вказати Autorize, які саме запити перехоплювати та як виглядає стандартна поведінка додатка при відмові в доступі.
У розділі Enforcement Detector введіть ознаку відповіді (характеристику), яку видає система при недостатніх привілеях користувача. Найпростіший варіант — вибрати «Body (simple string): enforced message body contains» та вказати текст помилки (наприклад, “Access Denied”).

Використання декількох фільтрів
Якщо ви використовуєте кілька фільтрів, за замовчуванням між ними діє логічне «And» (І). Якщо додаток видає різні помилки для різних дій (наприклад, одну для читання файлів, іншу для адмін-панелі), створіть фільтр для кожного сценарію та змініть «And» на «Or» (АБО).
Налаштування детектора неавтентифікованих запитів (Unauthenticated Detector)
Повторіть ту саму процедуру для перевірки доступу без жодної авторизації.

Фільтр перехоплення за замовчуванням обробляє лише елементи в межах області тестування (Scope items only) та ігнорує запити від павука (spider) або URL-адреси з розширеннями зображень. Ви можете налаштувати ці фільтри під свої потреби.

Функція Match/Replace
Використовуйте її, якщо потрібно змінити конкретний параметр у тілі запиту або заголовку. Наприклад, якщо параметр u.name у тілі запиту потрібно замінити на адмінський ідентифікатор a.name.

Налаштування фільтрів та обробка відповідей
Ви можете фільтрувати таблицю результатів за статусами:
- Bypassed! — можливо, знайдено IDOR або обхід авторизації.
- Is enforced! — ендпоінт здається захищеним, але варто перевірити вручну.
- Enforcing! — точка доступу чітко захищена від IDOR.

Ви можете зберегти або експортувати результати для подальшого аналізу через вкладку Save/Restore.
Практична демонстрація роботи Autorize
Проведемо коротку демонстрацію для кращого розуміння роботи інструменту. Для цієї практики ми скористаємося готовою лабораторією від PortSwigger: «Method-based access control can be circumvented» (Обхід контролю доступу на основі методів). Натисніть «Access the lab» і відкрийте додаток у браузері.
У цій лабораторії ми розглянемо вразливість Broken Access Control (Порушення контролю доступу) на прикладі двох користувачів із різними ролями: високим та низьким рівнями привілеїв. Цей же принцип можна застосувати і для тестування користувачів одного рівня (горизонтальне підвищення привілеїв).

Спершу нам потрібно перехопити куки (cookies) користувача з низьким рівнем привілеїв (low privileged user). Для цього використаємо стандартні облікові дані звичайного користувача:
Wiener : peter
Увійдіть у додаток під цим акаунтом, щоб зафіксувати сесійні куки.

Ми оновили ще кілька деталей.

Нижче ви побачите перехоплені сесійні куки (session cookies) у запиті на авторизацію. Скопіюйте цей заголовок Cookie.

Додайте значення цього заголовка Cookie у вкладку Autorize, як показано нижче.

Після цього переведіть Autorize у стан On (Увімкнено).

Тепер, щоб перевірити наявність обходу авторизації (auth bypass), нам потрібно увійти в систему з високим рівнем привілеїв (користувач-адміністратор). Знову перейдіть на сторінку логіна та використайте облікові дані адміністратора:
Administrator:admin

Після успішного входу перейдіть за всіма URL-адресами, доступними лише для адміністратора. У вкладці Autorize ви побачите підсвічені запити.
Інтерпретація результатів та розуміння статусів авторизації
Authz. Status (Статус авторизації) вказує на те, які ендпоінти доступні для користувача wiener (звичайний користувач).
Unauth. Status (Статус без автентифікації) стосується неавторизованих користувачів — розширення фактично видаляє куки та всі заголовки авторизації. Ви можете вимкнути цю функцію, знявши прапорець «Check unauthenticated» у вкладці конфігурації Autorize.
Red [Bypassed!] : ендпоінт може бути вразливим до проблем контролю доступу або IDOR.
Orange [Is enforced!] : ендпоінт здається захищеним, але варто провести ручну перевірку, підставивши значення куків.
Green [Enforced!] : ендпоінт чітко захищений від вразливостей контролю доступу та IDOR.

Як видно на зображенні вище, запити 1, 2, 6 та 7 мають ознаки порушення контролю доступу (Broken Access Control).
Майте на увазі: не варто сліпо довіряти результатам Autorize. Червоний колір не гарантує, що всі ендпоінти вразливі або їх можна обійти. Можливі помилкові спрацьовування (false positives), тому ви обов’язково повинні проводити перехресну перевірку.
Інші можливі сценарії: Припустимо, ви тестуєте проблеми авторизації між двома користувачами одного рівня. Якщо Authz. Status показує Bypassed!, а Unauth. Status — Enforced!, це свідчить про некоректну авторизацію: другий користувач може отримати доступ до ресурсу першого, хоча для неавторизованих відвідувачів доступ закритий належним чином.
При виборі будь-якого підсвіченого запиту в правій частині вікна відобразиться детальна інформація про модифікований, оригінальний та неавтентифікований запити та відповіді на них.

Висновок
Розширення Autorize для Burp Suite є незамінним інструментом для проведення комплексних аудитів безпеки. Завдяки автоматизації перевірки автентифікації та можливості тестування закритих зон додатка, воно значно підвищує ефективність та результативність оцінки безпеки. Цей інструмент критично важливий для виявлення потенційних вразливостей, які можуть бути доступні лише авторизованим користувачам.