---
url: https://docs.ogmabox.com/ja/app/automate.md
description: Ogma の自動化で、繰り返し実行できるリクエストテストを行います。
---

# 自動化 {#automate}

自動化では、ペイロードを制御して変化させながら、同じリクエストテンプレートを何度も送信します。パラメーターの列挙、入力のファジング、アクセス制御のテストを大規模に実施できます。

## セッションの作成 {#create-a-session}

1. **HTTP 履歴**または**再送**でリクエストを開きます。
2. リクエストを右クリックして**自動化に送る**を選ぶか、ツールバーのボタンを使用します。
3. リクエストがセッションのテンプレートとして開きます。以降の設定はすべてこのテンプレートに適用されます。

## ペイロードの挿入位置 {#payload-positions}

ペイロードの挿入位置は、ペイロードを埋め込む箇所を指定します。Ogma はリクエストごとに各マーカーをペイロードの値で置き換えます。

* リクエストエディターで文字列を選択し、**選択範囲を指定**をクリックして位置マーカーを追加します。
* マーカーのハンドルをクリックし、**削除**を選ぶとマーカーを削除できます。
* 複数の位置を指定できます。その動作は攻撃モードによって異なります。

## 攻撃モード {#attack-modes}

| モード | 動作 |
|------|----------|
| スナイパー | 一度に一つの位置を処理します。各位置で順番にすべてのペイロードを試します。リクエスト総数はペイロード数と位置数の積です。 |
| バタリングラム | すべての位置に同じペイロードの値を同時に使用します。 |
| ピッチフォーク | 複数の位置を並行して処理します。リスト A の最初のペイロードとリスト B の最初のペイロードを組み合わせ、以降も同様に進めます。最短のリストを使い切ると停止します。 |
| クラスターボム | すべての位置にわたる全組み合わせを試します。リクエスト数は各リストの長さの積です。小さなリストで使用してください。 |
| 逐次実行 | 各レスポンスから設定した値を抽出し、次のリクエストに挿入します。開始前に、抽出処理、挿入先の位置、反復回数の上限を設定してください。 |

## ペイロードの供給元 {#payload-sources}

| 供給元 | 説明 |
|--------|-------------|
| ワードリスト | 改行区切りのファイルを読み込むか、値を直接貼り付けます。 |
| 数値 | 開始値、終了値、増分を設定して数値範囲を生成します。 |
| 空値（空文字列） | 設定した反復回数だけ、指定位置を空文字列に置き換えます。元のマークされた文字列は保持しません。 |
| カスタムリスト | ファイルを使わずに値を直接入力します。 |

## 照合条件 {#matchers}

照合条件は、条件を満たした結果の行に印を付けます。行を絞り込むのではなく、照合条件ごとに真偽値の列を追加します。

* **+ 照合条件**をクリックして照合条件を追加します。
* **AI**で条件を自然言語で説明するか、手動で設定します。

| 照合条件の種類 | 一致する条件 |
|--------------|--------------|
| ステータス | レスポンスコードが指定値と等しい、または異なる場合。 |
| サイズ | レスポンスボディの長さが指定範囲内にある場合。 |
| ボディの内容 | レスポンスボディが文字列を含むか、文字列または正規表現に一致する場合。 |

## 停止条件 {#stop-conditions}

停止条件は、照合条件に一致したときに実行を停止します。

* レスポンスのステータスまたはサイズ、比較演算子、値を使って**停止条件**を設定します。
* 一致する結果が見つかると実行を一時停止します。すでに送信中のリクエストは、その後も完了する場合があります。

有効な認証情報やチェックの回避など、最初の成功結果だけが必要な場合に便利です。

## 抽出処理 {#extractors}

抽出処理は各レスポンスから値を取り出し、名前付きの列に保存します。

* CSRF トークン、セッション ID、nonce を抽出し、リクエストの連鎖に使用できます。
* **AI**で抽出対象を説明するか、ボディの正規表現、ボディの文字列検索、レスポンスヘッダーによる抽出を手動で設定します。
* 抽出した値は結果テーブルの列として表示されます。
* 逐次実行モードでは、連鎖に使う抽出処理を明示的に設定してください。結果を別のセッションに送っても、そのセッションのトークン抽出は自動設定されません。

## 結果テーブル {#results-table}

完了したリクエストごとに一つの行が作成されます。

| 列 | 説明 |
|--------|-------------|
| # | リクエストの連番。 |
| ステータス | HTTP レスポンスコード。 |
| サイズ | レスポンスボディの長さ。単位はバイトです。 |
| 時間 | 往復時間。単位はミリ秒です。 |
| ペイロード | このリクエストで使用したペイロードの値。 |
| 照合条件の列 | 設定した照合条件ごとに一つの真偽値の列。 |
| 抽出処理の列 | 設定した抽出処理ごとに一つの抽出値の列。 |

任意の行をクリックすると、インスペクターパネルでリクエストとレスポンスの全体を開けます。

## 結果の絞り込み {#filtering-results}

結果テーブルの上にある**フィルター**バーに HTTPQL 式を入力して、表示する行を絞り込みます。例：

```text
result.status.eq:200 AND result.len.gt:500
```

自動化のクエリは `result.*` 名前空間を使用します。抽出した列には、その列の `result.extract.<name>` フィールドを使用してください。HTTP 履歴の `req.*` と `resp.*` フィールドは、自動化の結果フィルターと互換性がありません。

## AI アシスト {#ai-assist}

**AI**ボタンは、照合条件と抽出処理の設定フィールドの横にあります。検出または抽出したい内容を自然言語で説明すると、Ogma が設定を生成します。保存前に結果を確認してください。

## 結果を別のツールに送る {#send-a-result-elsewhere}

結果の行を右クリックすると、次の操作ができます。

* **再送に送る** - そのリクエストとレスポンスを再送で開き、手動で追加の検証を行います。
* **新しい自動化セッションに送る** - 結果の行に含まれるリクエストを、新しいセッションのテンプレートにします。
* **cURL としてコピー** - リクエストを curl コマンドとしてコピーします。

## 関連ページ {#related-pages}

* [再送](./replay.md)
* [環境](./environment.md)
* [エクスポート](./exports.md)
