Пошук
Пошук виконує запити до перехопленого HTTP-трафіку поточного проєкту, зокрема до записів поза межами рядків історії HTTP, завантажених зараз.
Відкриття пошуку
Натисніть Пошук у лівій панелі навігації. Введіть структуровані умови та/або вираз HTTPQL, а потім натисніть Пошук або Enter. Введення змінює умови без виконання нового пошуку. Використовуйте поділ на сторінки, щоб переглянути додаткові результати.
Синтаксис HTTPQL
HTTPQL — структурована мова запитів для HTTP-трафіку. Вона зіставляє поля запиту й відповіді за допомогою типізованих операторів.
Поля
| Поле | Що зіставляє |
|---|---|
req.host | Ім’я хоста запиту. |
req.path | Шлях запиту. |
req.method | Метод HTTP (GET, POST тощо). |
req.body | Вміст тіла запиту. |
resp.code | Код статусу відповіді (ціле число). |
resp.len | Довжина тіла відповіді в байтах (ціле число). |
resp.body | Вміст тіла відповіді. |
resp.header["Name"].value | Значення вказаного заголовка відповіді. |
req.header["Name"].value | Значення вказаного заголовка запиту. |
req.has_finding | Істинне, коли до запиту додано щонайменше одну знахідку. |
req.tag | Текст мітки, доданої до запиту. |
Оператори
| Оператор | Застосовується до | Значення |
|---|---|---|
eq | рядка, цілого числа | Точний збіг. |
ne | рядка, цілого числа | Не дорівнює. |
cont | рядка | Містить підрядок. |
ncont | рядка | Не містить підрядка. |
regex | рядка | Відповідає регулярному виразу. |
gt | цілого числа | Більше ніж. |
gte | цілого числа | Більше або дорівнює. |
lt | цілого числа | Менше ніж. |
lte | цілого числа | Менше або дорівнює. |
exists | заголовків | Заголовок присутній. |
Поєднання виразів
Використовуйте AND і OR для поєднання умов. Дужки керують порядком виконання. Використовуйте заперечні оператори, як-от ne або ncont, щоб виключати збіги.
text
(req.method.eq:POST OR req.method.eq:PUT) AND resp.code.gte:500Приклади запитів
Знайти POST-запити, що повернули помилку діапазону 500:
text
req.method.eq:POST AND resp.code.gte:500Знайти запити із заголовком Authorization:
text
req.header["Authorization"].value.existsЗнайти великі відповіді від певного хоста:
text
req.host.eq:api.example.com AND resp.len.gt:100000Знайти запити з міткою для подальшої перевірки:
text
req.tag.eq:followupЗнайти всі запити з доданою знахідкою:
text
req.has_finding.eq:trueЗнайти запити, в тілі відповіді яких є відомий рядок помилки:
text
resp.body.cont:"stack trace"Збережені пошуки
Використовуйте Закріпити поруч із полем HTTPQL, щоб зберегти часто використовуваний запит для швидкого повторного застосування. Виберіть закріплений запит, щоб застосувати його; видаліть його позначку, коли він більше не потрібен. Історія запитів також допомагає повторно використовувати недавні вирази.
Вкладки пошуку дають змогу порівнювати незалежні запити під час поточного відвідування. Вони не є постійно збереженими пошуками. Для іменованих структурованих наборів умов, які можна експортувати й імпортувати, використовуйте сторінку «Фільтри».
Дослідження результатів
Натисніть будь-який рядок таблиці результатів, щоб відкрити запит і відповідь на панелі перегляду. Це те саме подання, що й в історії HTTP: можна перемикатися між необробленим і форматованим поданнями, копіювати заголовки або тіло й додавати знахідки безпосередньо з цієї панелі.
Допомога ШІ
Якщо налаштовано постачальника ШІ, натисніть ШІ поруч із полем запиту й опишіть звичайною мовою, що хочете знайти. Ogma створить вираз HTTPQL. Перевірте запит перед виконанням.
- «POST-запити, що повертають помилки сервера» >
req.method.eq:POST AND resp.code.gte:500 - «Відповіді понад 50 КБ із піддомену API» >
req.host.cont:api AND resp.len.gt:51200 - «Запити з доданими знахідками» >
req.has_finding.eq:true