
Nuclei를 사용한 취약점 스캔
이 Nuclei Action을 사용하면 Nuclei를 GitHub Action과 쉽게 오케스트레이션할 수 있습니다. 모든 Nuclei Templates을 강력한 지속적 보안 워크플로우에 통합하고, 안전한 소프트웨어 개발 수명 주기의 일부로 만드세요.
Nuclei Action
v3.0.0+는 Node.js v24에서 실행되며 CLI 우선 인터페이스를 채택하여 inputs에서 version, install-only, args 등을 입력받고 outputs는 stdout 및 stderr로만 출력합니다.v2.0.0+ 및 v2.x는 target, urls, templates, workflows, flags 및 다양한 exporter/reporting 토글과 같은 action 특정 입력에 의존합니다. v2.x는 2026년 3월 1일 이후 지원 중단됩니다. 업그레이드 전에 MIGRATION.md를 참조하세요.v1+는 Node.js v16에서 실행되며 target, urls, templates, workflows, output, json, include-rr, config, report-config, github-report, github-token, sarif-export, markdown-export, flags와 같은 입력을 사용합니다.[!IMPORTANT]
config와config-path는 함께 설정하면 안 됩니다.args는config또는config-path보다 항상 우선합니다.
[!NOTE] debug logging이 활성화되면 이 action은 Nuclei에
-debug및-verbose플래그를 자동으로 추가합니다.
| 이름 | 설명 |
|---|---|
stdout | Nuclei 실행의 표준 출력 |
stderr | Nuclei 실행의 표준 오류 |
이 action은 node24 action입니다.
- uses: projectdiscovery/nuclei-action@v3
with:
version:
# Setup with specific version ("latest" or in format "vX.Y.Z").
#
# Required: true
# Default: latest
install-only:
# Install Nuclei without running scans.
#
# Required: false
# Default: false
args:
# Arguments to pass to Nuclei.
#
# Required: false
# Default: ""
config:
# Nuclei configuration file content.
#
# Required: false
# Default: ""
config-path:
# Path to Nuclei configuration file.
#
# Required: false
# Default: ""
cache:
# Enable caching of Nuclei caches, configs, templates, and browser.
#
# Required: false
# Default: true
token:
# GitHub Token. It is used to fetch Nuclei releases from GitHub.
#
# Required: true
# Default: ${{ github.token }}
기본 설정(최신 Nuclei)
- uses: projectdiscovery/nuclei-action@v3
with:
args: -u http://scanme.sh
특정 버전으로 설정
- uses: projectdiscovery/nuclei-action@v3
with:
version: v3.6.0
args: -u http://scanme.sh
스캔을 실행하지 않고 Nuclei 설정 또는 설치
- uses: projectdiscovery/nuclei-action@v3
with:
version: v3.6.0
install-only: true
- run: nuclei -version
또는 캐시 없이 설치만:
- uses: projectdiscovery/nuclei-action@v3
with:
version: v3.6.0
install-only: true
cache: false
- run: nuclei -version
Nuclei 구성으로 설정
- uses: projectdiscovery/nuclei-action@v3
with:
version: latest
config: |
target:
- http://scanme.sh
sarif-export: results.sarif
또는 variables를 통해 전달하세요:
- uses: projectdiscovery/nuclei-action@v3
with:
version: latest
config: ${{ vars.NUCLEI_CONFIG }}
또는 리포지토리에서 관리하는 구성 파일을 통해:
- uses: projectdiscovery/nuclei-action@v3
with:
version: latest
config-path: path/to/nuclei.yaml
GitHub code scanning으로 설정
- uses: projectdiscovery/nuclei-action@v3
with:
version: latest
config: |
target:
- http://scanme.sh
sarif-export: results.sarif
- uses: github/codeql-action/upload-sarif@v3
if: success()
with:
sarif_file: results.sarif
category: nuclei-results
리포팅과 함께 설정
- uses: projectdiscovery/nuclei-action@v3
with:
args: -u http://scanme.sh
config: |
report-config: issue-tracker-config.yaml
env:
GITHUB_BASE_URL: https://localhost:8443/github
GITHUB_USERNAME: test-username
GITHUB_OWNER: test-owner
GITHUB_TOKEN: ${{ secrets.GITHUB_PAT }}
GITHUB_PROJECT_NAME: test-project
issue-tracker-config.yaml(리포지토리 파일):github:
# base-url is the optional self-hosted GitHub application url
base-url: $GITHUB_BASE_URL # read from environment variable
# username is the username of the GitHub user
username: $GITHUB_USERNAME # read from environment variable
# owner is the owner name of the repository for issues
owner: $GITHUB_OWNER # read from environment variable
# token is the token for GitHub account
token: $GITHUB_TOKEN # read from environment variable
# project-name is the name of the repository
project-name: $GITHUB_PROJECT_NAME # read from environment variable
# issue-label is the label of the created issue type
issue-label: bug
# allow-list sets a tracker level filter to only create issues for templates with
# these severity labels or tags (does not affect exporters. set those globally)
allow-list:
severity: high, critical
tags: network
# deny-list sets a tracker level filter to never create issues for templates with
# these severity labels or tags (does not affect exporters. set those globally)
deny-list:
severity: low
# duplicate-issue-check flag to enable duplicate tracking issue check.
duplicate-issue-check: false
자세한 내용은 https://github.com/projectdiscovery/nuclei/blob/dev/cmd/nuclei/issue-tracker-config.yaml 를 참조하세요.
기여를 환영합니다! 시작 방법에 대한 자세한 내용은 Contributing Guide를 참조하세요.
MIT. 자세한 내용은 LICENSE를 참조하세요.
| 이름 | 설명 | 필수 | 기본값 |
|---|
version | 특정 버전으로 설치합니다("latest" 또는 "vX.Y.Z" 형식). | true | latest |
install-only | 스캔을 실행하지 않고 Nuclei를 설치합니다. | false | false |
args | Nuclei에 전달할 인수입니다. | false | "" |
config | Nuclei 구성 파일 내용입니다. | false | "" |
config-path | Nuclei 구성 파일의 경로입니다. | false | "" |
cache | Nuclei 캐시, 구성, 템플릿 및 브라우저 캐싱을 활성화합니다. | false | true |
token | GitHub 토큰. GitHub에서 Nuclei 릴리스를 가져오는 데 사용됩니다. | true | ${{ github.token }} |