搜尋
搜尋會查詢目前專案中擷取的 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 | 請求至少附有一筆檢測發現時為 true。 |
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查詢範例
尋找傳回 500 範圍錯誤的 POST 請求:
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 歷程記錄使用的檢視相同:你可以切換原始和格式化檢視、複製標頭或本文,並直接從面板新增檢測發現。
AI 輔助
設定 AI 服務供應商後,按一下查詢輸入欄旁的 AI,以自然語言描述想尋找的內容。Ogma 會產生 HTTPQL 運算式。執行前請檢查查詢。
- 「傳回伺服器錯誤的 POST 請求」 >
req.method.eq:POST AND resp.code.gte:500 - 「來自 API 子網域、大小超過 50 KB 的回應」 >
req.host.cont:api AND resp.len.gt:51200 - 「附有檢測發現的請求」 >
req.has_finding.eq:true