返回排行榜

xm1k3/cent

Go

Community edition nuclei templates, a simple tool that allows you to organize all the Nuclei templates offered by the community in one place

bugbountypentestingnucleinuclei-templatespenetration-testinggolangtemplateshacktoberfest
Star 增长趋势
Star
1k
Forks
167
周增长
Issues
0
5001k
2021年6月2023年2月2024年11月2026年7月
制品库Go Modulesgo get github.com/xm1k3/cent
README

Cent

Community edition nuclei templates, a simple tool that allows you to organize all the Nuclei templates offered by the community in one place.


Apache license badge


Install

go install -v github.com/xm1k3/cent/v2@latest

Or download from releases

after installation run cent init to initialize cent with the configuration files you find here

Supported commands

Command Description
check Check if templates repo are still available
init Cent init configuration file
summary Print detailed summary of nuclei templates
update Update your repository
validate Validate templates, if the template is invalid it is deleted from the folder
version Print cent version

Root flags

Flags:
      --config string   config file (default is .config/cent/.cent.yaml)
  -r, --by-repo         Group templates by repository (use with -k)
  -C, --console         Print console output
  -k, --keep-folders    Keep templates organized in folders by category
  -p, --path string     Root path to save the templates (default "cent-nuclei-templates")
  -t, --threads int     Number of threads to use when cloning repositories (default 10)
  -T, --timeout int     Timeout in minutes for each git clone (default 2)

Usage

cent -h
cent check -h
cent init -h
cent update -h
cent summary -h
cent validate -h
cent version

Basic Usage

Clone and insert all the community templates into the cent-nuclei-templates folder

cent -p cent-nuclei-templates

Example output:

cent started
[CLONED] https://github.com/projectdiscovery/nuclei-templates
[CLONED] https://github.com/0xSojalSec/nuclei-templates-4
[CLONED] https://github.com/0xPugazh/my-nuclei-templates
[CLONED] https://github.com/0xSojalSec/my-nuclei-templates-1
[CLONED] https://github.com/0x727/ObserverWard
[CLONED] https://github.com/0xAwali/Blind-SSRF
[CLONED] https://github.com/0x727/ObserverWard_0x727
[CLONED] https://github.com/0xAwali/Virtual-Host
[CLONED] https://github.com/0xSojalSec/Nuclei-Templates-API-Linkfinder
...
... 
...
cent finished, you can find all your nuclei-templates in cent-nuclei-templates

Keep templates organized by category

Use the -k flag to keep the internal folder structure of each repository:

cent -p cent-nuclei-templates -k

This will create a folder structure like:

cent-nuclei-templates/
  cves/
    CVE-2021-1234.yaml
  vulnerabilities/
    template.yaml
  others/
    uncategorized-template.yaml

Templates without a subfolder in their source repo are placed in others/.

Group templates by repository

Use -k -r to also group templates by their source repository:

cent -p cent-nuclei-templates -k -r
cent-nuclei-templates/
  projectdiscovery/nuclei-templates/
    cves/
      CVE-2021-1234.yaml
    vulnerabilities/
      template.yaml
  user/repo-name/
    others/
      custom-template.yaml

Summary Command

The summary command provides detailed statistics about your nuclei templates collection:

Basic Summary

# Display summary in table format
cent summary

# Display summary in JSON format
cent summary --json

Advanced Summary Features

# Limit number of tags displayed (default: 25)
cent summary --limit 10

# Search for specific data in summary
cent summary --search cve
cent summary --search wordpress
cent summary --search critical

# Update summary data
cent summary update

# Update with custom path
cent summary update -p /path/to/templates

Summary Output Example

=== NUCLEI TEMPLATES SUMMARY ===

+-------------------+-------+
| METRIC            | COUNT |
+-------------------+-------+
| Total Templates   |  3249 |
| CVE Templates     |  3821 |
| Invalid Templates |     1 |
| Valid Templates   |  3248 |
+-------------------+-------+

=== SEVERITY DISTRIBUTION ===
+----------+-------+
| SEVERITY | COUNT |
+----------+-------+
| CRITICAL |   582 |
| HIGH     |   877 |
| MEDIUM   |   877 |
| LOW      |    63 |
| INFO     |   744 |
+----------+-------+

=== TOP TAGS ===
+---------------+-------+
| TAG           | COUNT |
+---------------+-------+
| cve           |  1909 |
| xss           |   569 |
| wordpress     |   487 |
| lfi           |   459 |
| wp-plugin     |   450 |
+---------------+-------+

JSON Output Structure

{
  "metrics": {
    "total_templates": 3249,
    "cve_templates": 3821,
    "invalid_templates": 1,
    "valid_templates": 3248
  },
  "severity_distribution": {
    "CRITICAL": 582,
    "HIGH": 877,
    "MEDIUM": 877,
    "LOW": 63,
    "INFO": 744
  },
  "tags": {
    "cve": 1909,
    "xss": 569,
    "wordpress": 487
  },
  "last_updated": "2024-01-15 14:30:25"
}

Update Command

If you have updated the cent.yaml file by adding new folders

exclude-dirs:
  - ...
  - dns
  - ...

just do:

cent update -p cent-nuclei-templates -d

and cent will automatically delete all dns folder present in cent-nuclei-templates without cloning all the github repos.

Example output:

[D][-] Dir  removed	cent-nuclei-templates/dns
[D][-] Dir  removed	cent-nuclei-templates/dns/subdomain

Same thing with exclude-files

cent update -p cent-nuclei-templates -f

Configuration Management

Initialize Configuration

# Initialize with default configuration
cent init

# Initialize with custom URL
cent init --url https://example.com/config.yaml

# Overwrite existing configuration
cent init --overwrite

Check Configuration Status

# Check if configuration file exists
cent init check

Check Template Repositories

# Check if all template repositories are accessible
cent check

# Remove inaccessible repositories from config
cent check --remove

Once cent has been configured correctly you can perform a scan with Nuclei.

Example

nuclei -u https://example.com -t ./cent-nuclei-templates -tags cve
nuclei -l urls.txt -t ./cent-nuclei-templates -tags cve

See here for more documentation about Nuclei

Config

You need to configure cent parameters in .config/cent/.cent.yaml

# Directories to exclude
exclude-dirs:
  - .git

# Files to exclude
exclude-files:
  - README.md
  - .gitignore
  - .pre-commit-config.yaml
  - LICENSE

# Add github urls (simple format)
community-templates:
  - https://github.com/projectdiscovery/nuclei-templates
  - https://github.com/other/repo

  # Extended format: pin a repo to a specific commit
  - url: https://github.com/user/repo
    commit: abc123f

  # Extended format: per-repo exclude
  - url: https://github.com/user/repo2
    exclude:
      - "workflows/"
      - "fuzzing/"

Both formats can be mixed in the same config file. When commit is specified, cent will clone the full repo and checkout that specific commit instead of using a shallow clone. Per-repo exclude filters out matching paths from that specific repository.

Credits

Disclaimer

Disclaimer: The developer of this tool is not responsible for how the community uses the open source templates collected within it. These templates have not been validated by Project Discovery and are provided as-is.

License

Cent is distributed under Apache-2.0 License

相关仓库
swisskyrepo/PayloadsAllTheThings

A list of useful payloads and bypass for Web Application Security and Pentest/CTF

PythonPyPIMIT Licensepentestpayload
swisskyrepo.github.io/PayloadsAllTheThings/
79.3k17.2k
maurosoria/dirsearch

Web path scanner

PythonPyPIfuzzerfuzzing
14.5k2.4k
projectdiscovery/subfinder

Fast passive subdomain enumeration tool.

GoGo ModulesMIT Licensesubdomain-enumerationosint
projectdiscovery.io
14k1.6k
projectdiscovery/nuclei-templates

Community curated list of templates for the nuclei engine to find security vulnerabilities.

JavaScriptnpmMIT Licensenuclei-templatesnuclei
github.com/projectdiscovery/nuclei
12.7k3.6k
nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters

A list of resources for those interested in getting started in bug bounties

bug-bounty-huntershackers
12.1k2.1k
dstotijn/hetty

An HTTP toolkit for security research.

GoGo ModulesMIT Licensemitmproxy
hetty.xyz
11.9k770
edoardottt/awesome-hacker-search-engines

A curated list of awesome search engines useful during Penetration testing, Vulnerability assessments, Red/Blue Team operations, Bug Bounty and more

ShellMIT Licenseawesomeawesome-list
awesome-hacker-search-engines.com
10.9k1k
blacklanternsecurity/bbot

The recursive internet scanner for hackers. 🧡

PythonPyPIGNU Affero General Public License v3.0hackingneo4j
blacklanternsecurity.com/bbot/
10.2k886
projectdiscovery/httpx

httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.

GoGo ModulesMIT Licensehttpbugbounty
docs.projectdiscovery.io/tools/httpx
10.2k1.1k
shmilylty/OneForAll

OneForAll是一款功能强大的子域收集工具

PythonPyPIGNU General Public License v3.0subdomainsubdomain-scanner
9.9k1.4k
OWASP/wstg

The Web Security Testing Guide is a comprehensive Open Source guide to testing the security of web applications and web services.

Creative Commons Attribution Share Alike 4.0 Internationalbest-practicesguide
owasp.org/www-project-web-security-testing-guide/
9.6k1.6k
yogeshojha/rengine

reNgine is an automated reconnaissance framework for web applications with a focus on highly configurable streamlined recon process via Engines, recon data correlation and organization, continuous monitoring, backed by a database, and simple yet intuitive User Interface. reNgine makes it easy for penetration testers to gather reconnaissance with minimal configuration and with the help of reNgine's correlation, it just makes recon effortless.

HTMLGNU General Public License v3.0security-toolsosint
yogeshojha.github.io/rengine/
8.7k1.3k