Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
of-CORS — タイポスクワッティングドメインとブラウザのService Workerを使用して、バグバウンティターゲットの内部ネットワークを調査する、自動化されたCORS設定ミス発見ツール。 | Kitploit
ツール/GitHubGitHub/trufflesecurity/of-cors
偵察情報収集フィッシングウェブセキュリティ設定ミスレッドチーミング
GitHubtrufflesecurity/of-cors

of-CORS

タイポスクワッティングドメインとブラウザのService Workerを使用して、バグバウンティターゲットの内部ネットワークを調査する、自動化されたCORS設定ミス発見ツール。

リポジトリを見る
1541763年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

of-CORS

of-CORS は、Truffle Security が提供する、タイポスクワッティングを利用してバグバウンティのターゲット内部ネットワーク上のCORS設定ミスを特定・悪用するためのツールスイートです。

image image

詳しくはこちらをご覧ください: https://trufflesecurity.com/blog/of-CORS

仕組み

of-CORS は、Django と Django Rest Framework 上に構築された Python3 の Web アプリケーションです。セットアップと設定が完了すると、of-CORS は自動的に、アプリケーションにアクセスした被害者のブラウザにブラウザのサービスワーカーを登録します。これらのサービスワーカーは、事前設定された内部ドメインのリストに対して HTTP リクエストを送信し、内部ネットワーク上の CORS 設定ミスを発見しようとします。これらのリクエストの結果(成功・失敗にかかわらず)は、API を介して of-CORS インスタンスに送信されます。

被害者のブラウザにサービスワーカーが登録されると、JavaScript ペイロードによってブラウザは of-CORS が被害者が元々アクセスしようとしていたと判断したページにリダイレクトされます。

収集された結果は、of-CORS アプリケーション上で利用可能なミニマルなダッシュボードで後から確認できます。

はじめに

以下の手順で、of-CORS を自身の環境にデプロイできます。

of-CORS のセットアップは複雑(特に SSL/TLS、DNS、両方へのワイルドカードリクエストの許可に関する問題)なため、アプリケーションスタックに 2 つのクラウドプロバイダー(Heroku と Cloudflare)を使用し、Terraform でそれらの設定を自動化しています。

関連ドメインの購入

まず、対象企業の内部従業員がアクセスしそうなドメインを購入します。内部ドメインのタイポスクワットドメインを購入することをお勧めします。コピーペーストのミスが良い入り口になることが分かっています。

たとえば、テスト対象の企業が内部ドメインに uberinternal.com を使用している場合、berinternal.com を購入し、内部従業員からのブラウザトラフィックを得ることから始めるとよいでしょう。

image

Cloudflare API キーの取得

of-CORS は、ワイルドカード DNS リクエストの受信・ルーティングと SSL/TLS 接続の終端に Cloudflare を使用します。

of-CORS で DNS を正しく動作させるには、アクティブな Cloudflare アカウントが必要です。Cloudflare アカウントを取得したら、API キーを作成してください(ダッシュボードはこちら)。

API キーには、ゾーンや DNS レコードの追加、削除、設定を行うための十分な権限が必要です。これは、API トークン作成ページで以下の権限を選択することで実現できます。

Cloudflare API トークンの権限

適切な権限を持つ API トークンを作成したら、次の手順に進みます。

Heroku API キーの取得

of-CORS は、アプリケーションの簡単なデプロイとホスティングに Heroku を使用します。

of-CORS アプリケーションスタックを立ち上げるには、アクティブな Heroku アカウントが必要です。アカウントを取得したら、Heroku コマンドラインインターフェース(CLI)ツールをインストールします。CLI がインストールされていれば、以下のコマンドで認証済みの CLI セッションを開始できます。

root@kitploit:~
heroku login

その後、次のコマンドを実行して、CLI が正常に認証されていることを確認できます。

root@kitploit:~
heroku whoami

Terraform で使用するための Heroku CLI の認証に関する詳細なドキュメントはこちらにあります。

デプロイのための of-CORS の設定

インフラストラクチャに必要な API キーが準備できたので、of-CORS をデプロイ用に設定します。以下のサンプル YAML 設定ファイルの内容をご確認ください(このファイルはリポジトリ内にあります)。

root@kitploit:~
terraform:
  # この値を Heroku アプリ名として有効な一意の文字列に変更する必要があります
  heroku_app_name: best-of-cors
  # ここに Cloudflare API トークンを入力します
  cloudflare_api_token: this-is-my-api-token

hosts:
  # 任意の文字列を使用できますが、hosts の直下で一意である必要があります
  testing:
    host_domain: 127.0.0.1:8080
    redirect_domain: google.com
    targets:
      - enable-cors.org
      - example.com

デプロイ用に、この形式の新しい設定 YAML ファイルを作成する必要があります。

terraform セクションでは、heroku_app_name を Heroku 準拠のアプリ名で、あなたのアカウントで一意になるように設定します。また、前のセクションで生成した Cloudflare API キーを cloudflare_api_token ディレクティブに追加します。

hosts セクションでは、of-CORS がトラフィックを受信するドメインと、Web 訪問者が来たときの動作を定義します。たとえば、対象とする企業に 2 つの内部ドメイン(myinternalcorp1.com と myinternalcorp2.com)があるとします。従業員が誤ってアクセスすることを期待して、yinternalcorp1.com というドメインを購入したとします。この場合、hosts は次のように設定します。

root@kitploit:~
hosts:
  testing_1:
    host_domain: yinternalcorp1.com
    redirect_domain: myinternalcorp1.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com

ここで host_domain は、トラフィックを受信するドメイン(購入したドメイン)です。redirect_domain は、ペイロードが起動された後に被害者がリダイレクトされるドメインを定義します。targets は、被害者が of-CORS にアクセスしたときにペイロードを起動する対象のドメインを指定します。

さらに yinternalcorp2.com も購入し、アクセス時に攻撃を起動するように設定したい場合、hosts セクションは次のように更新できます。

root@kitploit:~
hosts:
  testing_1:
    host_domain: yinternalcorp1.com
    redirect_domain: myinternalcorp1.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com
  testing_2:
    host_domain: yinternalcorp2.com
    redirect_domain: myinternalcorp2.com
    targets:
      - myinternalcorp1.com
      - myinternalcorp2.com

これで、被害者が誤って yinternalcorp1.com または yinternalcorp2.com にアクセスすると、myinternalcorp1.com と myinternalcorp2.com の CORS 設定ミスを列挙するペイロードが起動され、被害者のブラウザはその後正しいドメインにリダイレクトされます。

Docker セットアップ

Docker オプションを使用する場合、Terraform、Heroku、Python をインストールする必要はありません。YAML ファイルの正しいパスを指定して、以下のコマンドを実行するだけです。

root@kitploit:~
docker run -v $PWD/config.yml:/config.yml -it --rm trufflesecurity/of-cors

Docker 以外のセットアップ

Terraform のインストール

of-CORS のデプロイには Terraform が必要です。Terraform のインストール手順はこちらに従ってください。インストール後、terraform バイナリがシステムの PATH に存在している必要があります。

Python3 のインストール

of-CORS のデプロイには Python3 も必要です。インストールされ、システムの PATH で利用可能であることを確認してください。

of-CORS のデプロイ

クラウドプロバイダーへの認証と of-CORS 設定ファイルの準備が整ったので、デプロイに進みます。

まず、Terraform を初期化する必要があります。このコマンドはソースコードのルートディレクトリから実行します。

root@kitploit:~
cd terraform && terraform init && cd ../

設定ファイルが /tmp/of_cors_config.yml にあるとします。以下のコマンドを実行して、すべての of-CORS インフラストラクチャを立ち上げます(このコマンドは bash で実行することを想定しています)。このコマンドは 5〜10 分かかることがあるので、しばらくお待ちください。

また、大規模な列挙では、Heroku のリソースが不足することがよくあります。これは既知の問題であり、修正へのご協力をお待ちしています。将来の修正としては、列挙結果を自分でアップロードできるようにする、Heroku の Dyn サイズを大きくする、Sublist3r などの別の列挙ツールに切り替えるなどが考えられます。

root@kitploit:~
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
CONFIG_FILE=/tmp/of_cors_config.yml make deploy_and_configure

注意 - Heroku インフラストラクチャが起動され、その中ですぐにコンソールにアクセスした場合にレースコンディションが発生することがあります。この最後の make deploy_and_configure コマンドが失敗した場合は、数分待ってから再度実行してみてください。

deploy_and_configure コマンドの実行が完了すると、次のものが用意されます。

  • Heroku アプリケーションを指す Cloudflare に設定された DNS レコード
  • 関連するすべてのワイルドカードレコードからのトラフィックを受信するように設定された Heroku
  • 候補となる内部 CORS 設定ミスドメインが入力された of-CORS

DNS 権限の委任

of-CORS のデプロイがトラフィックを受信できるようにするための最後のステップは、購入したドメイン名の権威 DNS サーバーとして Cloudflare を使用するように設定することです。Cloudflare には、これを行うための詳細なガイドがこちらにあります。

すべてが正しく設定されていることの確認

以下の手順で、ソフトウェアが正しく動作していることを確認します。このセクションでは、hackersofhollywood.com というドメインで設定された of-CORS のインスタンスを使用します。

まず、ドメインの SOA レコードが Cloudflare を指していることを確認します。

root@kitploit:~
dig soa <domain>

下の図のように、hackersofhollywood.com の SOA レコードは正しく Cloudflare のネームサーバーを指しています。

Hackers Of Hollywood SOA records

次に、Cloudflare アカウントを確認し、hackersofhollywood.com と *.hackersofhollywood.com の両方に対して、Heroku ドメインを指す CNAME コンテンツを持つ DNS レコードが設定されていることを確認します。これは、Cloudflare Web UI の DNS セクションで行います。

Cloudflare DNS Check

次のステップは、Heroku がこれら 2 つの CNAME レコードを介してトラフィックを受信するように設定されていることを確認することです。これは、Heroku Web UI の Settings -> Domains で確認できます。

Heroku DNS Check

2 つのドメイン名が Heroku に適切な DNS ターゲットとともに設定され、これらのターゲットが Cloudflare の CNAME レコードに正しく反映されていることがわかります。

次に、以下のコマンドを実行して、of-CORS の結果表示ページへの認証済みブラウザセッションを開きます。

root@kitploit:~
CONFIG_FILE=<path_to_config_file> make open_heroku_console

これで、ブラウザに空のダッシュボードが表示されるはずです。

Empty of-CORS Dashboard

最後に、CORS 設定ミスのプローブが正常に起動されることをテストします。ブラウザで設定のベースドメイン(この例では https://hackersofhollywood.com)を開き、数秒後にページがリダイレクトされることを確認します。

Loading Page

次に、ダッシュボードページに戻り、Success フィルターを Unknown に変更して、Submit Query ボタンをクリックします。結果が多数表示されるはずです。

Full Dashboard

これであなたの罠は設置されました!あとはリラックスして、被害者があなたの美味しい小さなドメインに出くわすのを待つだけです。

結果の表示

以下のコマンドを使用して、認証済みブラウザセッションですべての結果を表示およびクエリできます。

root@kitploit:~
CONFIG_FILE=<path_to_config_file> make open_heroku_console

ターゲットの追加と削除

of-CORS 設定ファイルは、攻撃を仕掛けるドメインの柔軟な追加および削除をサポートしています。設定ファイルの hosts セクションの内容を更新し、プロビジョニングスクリプトを再実行するだけです。

root@kitploit:~
source venv/bin/activate
CONFIG_FILE=/tmp/of_cors_config.yml make deploy_and_configure
ツールをダウンロード