CMScan is a unified security scanner for WordPress, Drupal, Joomla, PrestaShop, Shopify, Magento, TYPO3, and OpenCart websites.
It detects CMS versions, enumerates users, checks for known vulnerabilities, and exports the results to CSV.
- ✅ Vulnerability checking through:
- ✅ Detection of sensitive files and paths (wp-config, .git, .env, etc.)
- ✅ Security header auditing (HSTS, CSP, X-Frame-Options, etc.)
- ✅ Comprehensive CSV export
- ✅
--hostmode support for shared hosting environments - ✅ Automatic 403 bypass using User-Agent rotation
git clone https://github.com/moloch54/CMScan
cd CMScan
chmod +x install.sh
./install.shpython3 CMScan.py -L target.com CMScan is a multi-CMS security scanner designed to detect CMS installations, versions, themes, plugins/modules, known vulnerabilities, and exposed sensitive paths.
| Option | Description |
|---|---|
-L <TARGET> |
Scan a single URL or a text file containing multiple URLs. |
-v, --verbose |
Verbose mode. Display every HTTP request and detection. |
--force |
Force scanning of all supported CMSs, even if WordPress is detected first. |
--stealth |
Disable exposed-path checks to reduce the number of HTTP requests and make scans more discreet. |
-o, --output |
Output CSV filename (default: automatically generated). |
--update |
Update vulnerability databases (WordPress and FriendsOfPHP). |
python3 CMScan.py -L https://example.compython3 CMScan.py -L https://example.com -vpython3 CMScan.py -L targets.txtpython3 CMScan.py -L https://example.com --stealthpython3 CMScan.py -L https://example.com --forcepython3 CMScan.py -L https://example.com -v --stealth --forcepython3 CMScan.py --updateCMScan attempts to determine the CMS version using the following priority order:
readme.txt/README.txt- Translation files (
*.pot,Project-Id-Version) - ES module imports (e.g.
workbox-v7.3.0) - HTML meta tags and comments (passive detection)
?ver=parameters in asset URLs (fallback)
CMScan can automatically check GitHub for new releases.
When a newer version is available, it downloads the update and restarts automatically.
results/
└── cmscan_*.csv
The CSV report includes:
- CMS detection
- Version
- Themes
- Plugins / Modules
- Known vulnerabilities
- Exposed paths
- Authors
- Additional security findings
Stealth mode disables exposed-path enumeration to reduce the number of HTTP requests and lower the scan footprint.
Typical skipped paths include:
/wp-config.php.*/.git//.env/wp-content/debug.log/wp-content/uploads//xmlrpc.php/wp-admin//wp-login.php/wp-cron.php/wp-content/plugins//wp-content/themes//readme.html/license.txt- and many others.
| CMS | Features |
|---|---|
| ✅ WordPress | Core version, themes, plugins, vulnerabilities |
| ✅ Drupal | Version, modules, exposed paths |
| ✅ Joomla | Version, extensions, exposed paths |
| ✅ PrestaShop | Version, modules, exposed paths |
| ✅ Magento | Version, extensions, exposed paths |
| ✅ Shopify | Theme detection |
| ✅ TYPO3 | Version, extensions |
| ✅ OpenCart | Version, extensions |
CMScan should only be used against systems that you own or for which you have explicit written authorization.
Unauthorized security testing may violate applicable laws.
CMScan is released under the MIT License.
You are free to use, modify, and redistribute it in accordance with the license terms.
