自動化
自動化では、ペイロードを制御して変化させながら、同じリクエストテンプレートを何度も送信します。パラメーターの列挙、入力のファジング、アクセス制御のテストを大規模に実施できます。
セッションの作成
- HTTP 履歴または再送でリクエストを開きます。
- リクエストを右クリックして自動化に送るを選ぶか、ツールバーのボタンを使用します。
- リクエストがセッションのテンプレートとして開きます。以降の設定はすべてこのテンプレートに適用されます。
ペイロードの挿入位置
ペイロードの挿入位置は、ペイロードを埋め込む箇所を指定します。Ogma はリクエストごとに各マーカーをペイロードの値で置き換えます。
- リクエストエディターで文字列を選択し、選択範囲を指定をクリックして位置マーカーを追加します。
- マーカーのハンドルをクリックし、削除を選ぶとマーカーを削除できます。
- 複数の位置を指定できます。その動作は攻撃モードによって異なります。
攻撃モード
| モード | 動作 |
|---|---|
| スナイパー | 一度に一つの位置を処理します。各位置で順番にすべてのペイロードを試します。リクエスト総数はペイロード数と位置数の積です。 |
| バタリングラム | すべての位置に同じペイロードの値を同時に使用します。 |
| ピッチフォーク | 複数の位置を並行して処理します。リスト A の最初のペイロードとリスト B の最初のペイロードを組み合わせ、以降も同様に進めます。最短のリストを使い切ると停止します。 |
| クラスターボム | すべての位置にわたる全組み合わせを試します。リクエスト数は各リストの長さの積です。小さなリストで使用してください。 |
| 逐次実行 | 各レスポンスから設定した値を抽出し、次のリクエストに挿入します。開始前に、抽出処理、挿入先の位置、反復回数の上限を設定してください。 |
ペイロードの供給元
| 供給元 | 説明 |
|---|---|
| ワードリスト | 改行区切りのファイルを読み込むか、値を直接貼り付けます。 |
| 数値 | 開始値、終了値、増分を設定して数値範囲を生成します。 |
| 空値(空文字列) | 設定した反復回数だけ、指定位置を空文字列に置き換えます。元のマークされた文字列は保持しません。 |
| カスタムリスト | ファイルを使わずに値を直接入力します。 |
照合条件
照合条件は、条件を満たした結果の行に印を付けます。行を絞り込むのではなく、照合条件ごとに真偽値の列を追加します。
- + 照合条件をクリックして照合条件を追加します。
- AIで条件を自然言語で説明するか、手動で設定します。
| 照合条件の種類 | 一致する条件 |
|---|---|
| ステータス | レスポンスコードが指定値と等しい、または異なる場合。 |
| サイズ | レスポンスボディの長さが指定範囲内にある場合。 |
| ボディの内容 | レスポンスボディが文字列を含むか、文字列または正規表現に一致する場合。 |
停止条件
停止条件は、照合条件に一致したときに実行を停止します。
- レスポンスのステータスまたはサイズ、比較演算子、値を使って停止条件を設定します。
- 一致する結果が見つかると実行を一時停止します。すでに送信中のリクエストは、その後も完了する場合があります。
有効な認証情報やチェックの回避など、最初の成功結果だけが必要な場合に便利です。
抽出処理
抽出処理は各レスポンスから値を取り出し、名前付きの列に保存します。
- CSRF トークン、セッション ID、nonce を抽出し、リクエストの連鎖に使用できます。
- AIで抽出対象を説明するか、ボディの正規表現、ボディの文字列検索、レスポンスヘッダーによる抽出を手動で設定します。
- 抽出した値は結果テーブルの列として表示されます。
- 逐次実行モードでは、連鎖に使う抽出処理を明示的に設定してください。結果を別のセッションに送っても、そのセッションのトークン抽出は自動設定されません。
結果テーブル
完了したリクエストごとに一つの行が作成されます。
| 列 | 説明 |
|---|---|
| # | リクエストの連番。 |
| ステータス | HTTP レスポンスコード。 |
| サイズ | レスポンスボディの長さ。単位はバイトです。 |
| 時間 | 往復時間。単位はミリ秒です。 |
| ペイロード | このリクエストで使用したペイロードの値。 |
| 照合条件の列 | 設定した照合条件ごとに一つの真偽値の列。 |
| 抽出処理の列 | 設定した抽出処理ごとに一つの抽出値の列。 |
任意の行をクリックすると、インスペクターパネルでリクエストとレスポンスの全体を開けます。
結果の絞り込み
結果テーブルの上にあるフィルターバーに HTTPQL 式を入力して、表示する行を絞り込みます。例:
text
result.status.eq:200 AND result.len.gt:500自動化のクエリは result.* 名前空間を使用します。抽出した列には、その列の result.extract.<name> フィールドを使用してください。HTTP 履歴の req.* と resp.* フィールドは、自動化の結果フィルターと互換性がありません。
AI アシスト
AIボタンは、照合条件と抽出処理の設定フィールドの横にあります。検出または抽出したい内容を自然言語で説明すると、Ogma が設定を生成します。保存前に結果を確認してください。
結果を別のツールに送る
結果の行を右クリックすると、次の操作ができます。
- 再送に送る - そのリクエストとレスポンスを再送で開き、手動で追加の検証を行います。
- 新しい自動化セッションに送る - 結果の行に含まれるリクエストを、新しいセッションのテンプレートにします。
- cURL としてコピー - リクエストを curl コマンドとしてコピーします。