Nuclei

YAML のテンプレートに書かれた手順どおりにリクエストを送り、既知の脆弱性や設定ミスを調べるコマンドラインのスキャナ。

cat nuclei/meta.yml確認日 2026-10-24

安全性

影響範囲 相手に実害侵入・改ざん・負荷など、相手に実害を与えうる
管理者権限
不要
検証環境
必要

使い方

用途
診断・監査
難易度
中級
形態
コマンドライン
対応環境
Linux / macOS / Windows / Docker

信頼性

リポジトリ
projectdiscovery/nuclei
ライセンス
自由に使えるMIT
GitHub
スター32,3012026-10-25 時点
メンテ状況
更新が続いている最終更新 2026-10-25
目次
  1. はじめに
  2. Nuclei でできること
  3. 対象に何を送るのか
  4. 安全な試し方:Juice Shop を相手にする
  5. 主な使い方
  6. 注意点
  7. 次に読む
  8. 出典

このツールは攻撃の検証にも使えます。自分が所有する環境、または書面で許可を得た環境以外では使わないでください。

Nuclei は、テンプレートと呼ばれる YAML ファイルに書かれた手順どおりにリクエストを送り、返ってきた応答から脆弱性や設定ミスを見つけるスキャナです。テンプレートは公式のテンプレート集にまとまっていて、何も指定しなければその多くが一度に実行されます。

この記事は、自分の Web サイトやサーバーに既知の弱点が残っていないかを確かめたい人に向けています。読み終えると、次のことができるようになります。

  • 練習台の OWASP Juice Shop に対して Nuclei を実行する
  • 重大度やタグでテンプレートを絞り込む
  • 送るリクエストの量を抑え、外部サーバーへの通信を止める

Nuclei でできること

  • 既知の脆弱性の確認:CVE 番号の付いた脆弱性ごとに、確かめるためのテンプレートがあります。
  • 設定ミスや露出の確認:見えてはいけない情報が公開されていないかを調べるテンプレートもあります(公式の例では exposures/ フォルダ)。
  • 自前のテンプレート:YAML で手順を書けば、自分のサービス専用の点検を作れます。
  • 複数の通信方式:HTTP のほか、DNS、TCP、SSL などのテンプレートがあります。
しないことNuclei はテンプレートにある手順しか試しません。テンプレートのない未知の脆弱性や、アプリ固有のロジックの欠陥は見つかりません。

対象に何を送るのか

テンプレートの多くは、脆弱性を突くときと同じ形のリクエストを送り、応答で成否を判断します。公式ドキュメントによると、既定の設定では次のようになっています。

項目 既定の動き
送信量 1 秒あたり最大 150 リクエスト(-rl で変更)
並列実行 テンプレート 25 個まで同時(-c で変更)
除外されるタグ dos、fuzz、bruteforce など(.nuclei-ignore に記載)
別途フラグが要るもの Code テンプレート(-code)、Headless テンプレート(-headless)、ファジング(-dast)
外部サーバー OAST 用に interactsh サーバー(oast.pro など)を使う

負荷をかけるテンプレートは既定で外れています。それでも、既定の送信量は小さなサーバーには重く、攻撃と同じ形のリクエストが大量に届きます。間違った相手に向けると、相手のサービスを止めたり、攻撃として扱われたりします。この記事で影響範囲を「高」としているのは、このためです。

OAST を使うテンプレートは、相手のサーバーに外部の interactsh サーバーへ接続させて結果を確かめます。外部に通信を出したくないときは -ni を付けます。

安全な試し方:Juice Shop を相手にする

  1. Juice Shop の記事の手順で、Juice Shop を自分のパソコンで起動します。

  2. リリース一覧から、使っている OS 用の zip を入手して展開します。Go が入っていれば、次のコマンドでも入れられます。

    go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
  3. 初回はテンプレートをダウンロードします。Nuclei は実行のたびに新しいテンプレートがないか確かめ、あれば自動で取得します。手動で更新するときは次のコマンドです。

    nuclei -update-templates
  4. 送信量を抑え、外部サーバーを使わない設定で Juice Shop を調べます。

    nuclei -u http://localhost:3000 -rl 10 -ni
  5. 見つかった項目は 1 行ずつ、テンプレート ID、通信方式、重大度、URL の順で表示されます。

主な使い方

やりたいこと オプション
調べる相手を 1 つ指定する -u <URL>
相手をファイルで渡す -l <ファイル>
重大度で絞る -s critical,high
タグで絞る -tags cve
特定のテンプレートやフォルダだけ使う -t <パス>
検出した技術に合うテンプレートだけ使う -as
1 秒あたりの送信数を決める -rl <数>
結果をファイルに保存する -o <ファイル>

Docker でも動きます。ただしコンテナの中からは手元のファイルが見えないので、テンプレートや対象一覧を使うときはボリュームをつなぎます。

注意点

  • 自分のサイト、書面で許可を得た対象、Juice Shop のような練習台以外に使わないでください。許可のないスキャンは、相手から攻撃とみなされます。
  • 自分のサイトでも、レンタルサーバーやクラウドの規約がスキャンを制限していることがあります。実行前に確かめてください。
  • 本番環境では -rl で送信量を下げ、混雑しない時間に実行してください。
  • テンプレート集はコミュニティが書いたものです。誤検出もあるので、結果は自分で確かめてから対応してください。

次に読む

出典

  1. 公式リポジトリ(projectdiscovery/nuclei)github.com/projectdiscovery/nuclei
  2. 公式ドキュメント:インストールdocs.projectdiscovery.io/opensource/nuclei/install
  3. 公式ドキュメント:Nuclei の実行docs.projectdiscovery.io/opensource/nuclei/running
  4. 公式テンプレート集(nuclei-templates)github.com/projectdiscovery/nuclei-templates
  5. 既定で除外されるテンプレートの一覧(.nuclei-ignore)github.com/projectdiscovery/nuclei-templates/blob/main/.nuclei-ignore
  6. リリース一覧github.com/projectdiscovery/nuclei/releases

確認日 2026-10-24

似たツール

OWASP Juice Shop

影響範囲 手元だけ
juice-shop/juice-shop

わざと脆弱に作られた練習用のネットショップ。自分のパソコンで動かし、Web の脆弱性探しや診断ツールの練習に使える。

用途
学習
形式
練習用の環境
難易度
初級
ライセンス
自由に使えるMIT
分類
学習・演習環境/Web セキュリティ
更新が続いているスター14,228最終更新 2026-10-23
OWASP Juice Shopの解説を読む

Nmap

影響範囲 外に届く
nmap/nmap

ネットワーク上のホストと開いているポート、動いているサービスを調べる定番のスキャナー。

用途
診断・監査
形式
コマンドライン
難易度
中級
ライセンス
要確認Nmap Public Source License
分類
ネットワーク/偵察・情報収集
更新が続いているスター13,871最終更新 2026-10-24
Nmapの解説を読む

ZAP

影響範囲 相手に実害
zaproxy/zaproxy

ブラウザと Web アプリの間に入って通信を記録し、脆弱性を探す無料の Web アプリ診断ツール。旧称 OWASP ZAP、現在は ZAP by Checkmarx。

用途
診断・監査
形式
デスクトップアプリ
難易度
中級
ライセンス
自由に使えるApache-2.0
分類
Web セキュリティ/脆弱性スキャン
更新が続いているスター16,025最終更新 2026-10-23
ZAPの解説を読む