CMS-Detector
A lightweight fast Go script to detect which CMS or framework a given website is running, based on HTTP response fingerprints.
β¨ Features
- Detects 60+ CMS/frameworks (WordPress, Drupal, Shopify, Laravel, Wix, β¦).
- Multiple fingerprint methods:
- HTML body regex & string search
- HTTP headers
- Cookies (including Base64/JSON decoding)
- CLI modes:
- Standard (colorful output)
- Raw (--raw) β just the CMS name (script-friendly)
- JSON (--json) β structured output
- Works with both http:// and https:// targets.
π¦ Installation
Prereq: Go 1.24+ (for go install). For prebuilt binaries from Releases, no Go toolchain is required.
1) Install from GitHub Releases (recommended)
Download a prebuilt binary for your OS/arch from the Releases page and put it on your PATH.
Linux/macOS:
# pick the right asset from the release page
tar -xzf cmsdetector_v1.0.0_linux_amd64.tar.gz
chmod +x cmsdetector_v1.0.0_linux_amd64/cmsdetector
sudo mv cmsdetector_v1.0.0_linux_amd64/cmsdetector /usr/local/bin/cms_detector
cms_detector --help
Windows
Expand-Archive .\cmsdetector_V1.0.0_windows_amd64.zip -DestinationPath .
Move-Item .\cmsdetector_V1.0.0_windows_amd64\cmsdetector.exe $Env:ProgramFiles\cms_detector\cms_detector.exe
$Env:ProgramFiles\cms_detector\cms_detector.exe --help
2) Install via go install (from the repo)
This builds and installs directly from the repoβs module path.
go install github.com/joshuavanderpoll/CMS-Detector@latest
# or use a specific version:
go install github.com/joshuavanderpoll/CMS-Detector@v1.0.0
# Usage
~/go/bin/CMS-Detector --help
3) Build from source (clone & build)
# Clone the repository
git clone https://github.com/joshuavanderpoll/CMS-Detector.git
cd CMS-Detector
# Build the Go binary
go build -o cms_detector ./cms_detector.go
π Usage
Basic Scan
./cms_detector --host "https://wordpress.com"
Output:
CMS Detector
[β’] Made by: https://github.com/joshuavanderpoll/CMS-Detector
[@] Scanning host "https://wordpress.com"...
[β] "https://wordpress.com" is using "WordPress"!
β³ matched by: string_contains:/wp-content/
Raw Mode (Script friendly)
./cms_detector --host "https://wordpress.com" --raw
Output:
wordpress
JSON output
./cms_detector --host "https://wordpress.com" --json
Output:
{"host":"https://wordpress.com","status_code":200,"detected":true,"matches":[{"name":"WordPress","matched_by":["string_contains:/wp-content/"]}],"timing_ms":188,"redirects":0}
β‘ Options
| Option |
Description |
--host |
Target host (e.g. example.com, https://example.com) |
--raw |
Print only CMS name(s) in lowercase (e.g. wordpress) |
--json |
Return structured JSON output |
--timeout |
Set request timeout (default: 10s) |
--insecure |
Disable SSL verification (verify=False) |
--ua |
Custom User-Agent string |
β
Supported CMS / Frameworks
π Fingerprint Types
regex β Match regex in HTML
string_contains β HTML contains substring
strings_contain β HTML contains all substrings (pipe-separated)
header_key_equals β Header key exists
header_key_value β Header key/value match
header_key_value_contains β Header keyβs value contains substring
cookie_key_equals β Cookie key exists
cookie_key_value β Cookie key/value match
cookie_key_value_contains β Cookie value contains substring
cookie_key_value_b64_json_keys β Decode cookie from Base64 β JSON β check for keys
cookie_substr_key_value_b64_type β Check cookie name suffix, decode Base64, verify value type