このツールは攻撃の検証にも使えます。自分が所有する環境、または書面で許可を得た環境以外では使わないでください。
Nuclei は、テンプレートと呼ばれる YAML ファイルに書かれた手順どおりにリクエストを送り、返ってきた応答から脆弱性や設定ミスを見つけるスキャナです。テンプレートは公式のテンプレート集にまとまっていて、何も指定しなければその多くが一度に実行されます。
この記事は、自分の Web サイトやサーバーに既知の弱点が残っていないかを確かめたい人に向けています。読み終えると、次のことができるようになります。
- 練習台の OWASP Juice Shop に対して Nuclei を実行する
- 重大度やタグでテンプレートを絞り込む
- 送るリクエストの量を抑え、外部サーバーへの通信を止める
Nuclei でできること
- 既知の脆弱性の確認:CVE 番号の付いた脆弱性ごとに、確かめるためのテンプレートがあります。
- 設定ミスや露出の確認:見えてはいけない情報が公開されていないかを調べるテンプレートもあります(公式の例では
exposures/フォルダ)。 - 自前のテンプレート:YAML で手順を書けば、自分のサービス専用の点検を作れます。
- 複数の通信方式:HTTP のほか、DNS、TCP、SSL などのテンプレートがあります。
対象に何を送るのか
テンプレートの多くは、脆弱性を突くときと同じ形のリクエストを送り、応答で成否を判断します。公式ドキュメントによると、既定の設定では次のようになっています。
| 項目 | 既定の動き |
|---|---|
| 送信量 | 1 秒あたり最大 150 リクエスト(-rl で変更) |
| 並列実行 | テンプレート 25 個まで同時(-c で変更) |
| 除外されるタグ | dos、fuzz、bruteforce など(.nuclei-ignore に記載) |
| 別途フラグが要るもの | Code テンプレート(-code)、Headless テンプレート(-headless)、ファジング(-dast) |
| 外部サーバー | OAST 用に interactsh サーバー(oast.pro など)を使う |
負荷をかけるテンプレートは既定で外れています。それでも、既定の送信量は小さなサーバーには重く、攻撃と同じ形のリクエストが大量に届きます。間違った相手に向けると、相手のサービスを止めたり、攻撃として扱われたりします。この記事で影響範囲を「高」としているのは、このためです。
OAST を使うテンプレートは、相手のサーバーに外部の interactsh サーバーへ接続させて結果を確かめます。外部に通信を出したくないときは -ni を付けます。
安全な試し方:Juice Shop を相手にする
-
Juice Shop の記事の手順で、Juice Shop を自分のパソコンで起動します。
-
リリース一覧から、使っている OS 用の zip を入手して展開します。Go が入っていれば、次のコマンドでも入れられます。
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest -
初回はテンプレートをダウンロードします。Nuclei は実行のたびに新しいテンプレートがないか確かめ、あれば自動で取得します。手動で更新するときは次のコマンドです。
nuclei -update-templates -
送信量を抑え、外部サーバーを使わない設定で Juice Shop を調べます。
nuclei -u http://localhost:3000 -rl 10 -ni -
見つかった項目は 1 行ずつ、テンプレート ID、通信方式、重大度、URL の順で表示されます。
主な使い方
| やりたいこと | オプション |
|---|---|
| 調べる相手を 1 つ指定する | -u <URL> |
| 相手をファイルで渡す | -l <ファイル> |
| 重大度で絞る | -s critical,high |
| タグで絞る | -tags cve |
| 特定のテンプレートやフォルダだけ使う | -t <パス> |
| 検出した技術に合うテンプレートだけ使う | -as |
| 1 秒あたりの送信数を決める | -rl <数> |
| 結果をファイルに保存する | -o <ファイル> |
Docker でも動きます。ただしコンテナの中からは手元のファイルが見えないので、テンプレートや対象一覧を使うときはボリュームをつなぎます。
注意点
- 自分のサイト、書面で許可を得た対象、Juice Shop のような練習台以外に使わないでください。許可のないスキャンは、相手から攻撃とみなされます。
- 自分のサイトでも、レンタルサーバーやクラウドの規約がスキャンを制限していることがあります。実行前に確かめてください。
- 本番環境では
-rlで送信量を下げ、混雑しない時間に実行してください。 - テンプレート集はコミュニティが書いたものです。誤検出もあるので、結果は自分で確かめてから対応してください。
次に読む
出典
- 公式リポジトリ(projectdiscovery/nuclei)github.com/projectdiscovery/nuclei
- 公式ドキュメント:インストールdocs.projectdiscovery.io/opensource/nuclei/install
- 公式ドキュメント:Nuclei の実行docs.projectdiscovery.io/opensource/nuclei/running
- 公式テンプレート集(nuclei-templates)github.com/projectdiscovery/nuclei-templates
- 既定で除外されるテンプレートの一覧(.nuclei-ignore)github.com/projectdiscovery/nuclei-templates/blob/main/.nuclei-ignore
- リリース一覧github.com/projectdiscovery/nuclei/releases
確認日 2026-10-24
似たツール
OWASP Juice Shop
影響範囲 手元だけわざと脆弱に作られた練習用のネットショップ。自分のパソコンで動かし、Web の脆弱性探しや診断ツールの練習に使える。
- 用途
- 学習
- 形式
- 練習用の環境
- 難易度
- 初級
- ライセンス
- 自由に使えるMIT
- 分類
- 学習・演習環境/Web セキュリティ
Nmap
影響範囲 外に届くネットワーク上のホストと開いているポート、動いているサービスを調べる定番のスキャナー。
- 用途
- 診断・監査
- 形式
- コマンドライン
- 難易度
- 中級
- ライセンス
- 要確認Nmap Public Source License
- 分類
- ネットワーク/偵察・情報収集
ZAP
影響範囲 相手に実害ブラウザと Web アプリの間に入って通信を記録し、脆弱性を探す無料の Web アプリ診断ツール。旧称 OWASP ZAP、現在は ZAP by Checkmarx。
- 用途
- 診断・監査
- 形式
- デスクトップアプリ
- 難易度
- 中級
- ライセンス
- 自由に使えるApache-2.0
- 分類
- Web セキュリティ/脆弱性スキャン