Convert Figma logo to code with AI

dionach logoCMSmap

CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs.

1,018
251
1,018
26

Top Related Projects

8,489

WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contact@wpscan.com

A plugin-based scanner that aids security researchers in identifying issues with several CMSs, mainly Drupal & Silverstripe.

2,287

CMS Detection and Exploitation suite - Scan WordPress, Joomla, Drupal and over 180 other CMSs

OWASP Joomla Vulnerability Scanner Project https://www.secologist.com/

8,312

Nikto web server scanner

1,339

CORS Misconfiguration Scanner

Quick Overview

CMSmap is an open-source Python tool designed for scanning WordPress, Joomla, and Drupal Content Management Systems (CMS) for security vulnerabilities. It automates the process of detecting security issues, misconfigurations, and version information in these popular CMS platforms, making it a valuable asset for penetration testers and security researchers.

Pros

  • Supports multiple CMS platforms (WordPress, Joomla, Drupal)
  • Automated scanning for common vulnerabilities and misconfigurations
  • Regularly updated to include new vulnerability checks
  • User-friendly command-line interface

Cons

  • May produce false positives in some cases
  • Requires careful use to avoid unintended impact on target systems
  • Limited to specific CMS platforms, not a general-purpose web vulnerability scanner
  • Depends on the accuracy and timeliness of its vulnerability database

Code Examples

# Example 1: Basic scan of a WordPress site
python cmsmap.py https://example.com -f W

# Example 2: Drupal scan with increased verbosity
python cmsmap.py https://example.com -f D -v

# Example 3: Joomla scan with custom user agent
python cmsmap.py https://example.com -f J -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

# Example 4: WordPress scan with brute force attack
python cmsmap.py https://example.com -f W -b

Getting Started

  1. Clone the repository:

    git clone https://github.com/dionach/CMSmap.git
    
  2. Install dependencies:

    cd CMSmap
    pip install -r requirements.txt
    
  3. Run a basic scan:

    python cmsmap.py https://target-website.com
    
  4. For more options, use the help command:

    python cmsmap.py -h
    

Note: Always ensure you have permission to scan the target website and use this tool responsibly and ethically.

Competitor Comparisons

8,489

WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contact@wpscan.com

Pros of WPScan

  • More comprehensive WordPress-specific scanning capabilities
  • Larger and more active community, resulting in frequent updates
  • Extensive database of WordPress vulnerabilities

Cons of WPScan

  • Limited to WordPress sites only
  • Requires Ruby installation, which may be less convenient for some users

Code Comparison

WPScan (Ruby):

def scan_headers
  puts 'Scanning headers...'
  # Header scanning logic
end

CMSmap (Python):

def scan_headers():
    print("Scanning headers...")
    # Header scanning logic

Key Differences

  • CMSmap supports multiple CMS platforms (WordPress, Joomla, Drupal), while WPScan focuses solely on WordPress
  • WPScan offers more in-depth WordPress vulnerability scanning
  • CMSmap is written in Python, making it potentially easier to integrate with other Python-based tools
  • WPScan has a larger user base and more frequent updates

Use Cases

  • Choose WPScan for dedicated WordPress security assessments
  • Opt for CMSmap when dealing with multiple CMS platforms or prefer Python-based tools

Both tools are valuable for web application security testing, with WPScan excelling in WordPress-specific scenarios and CMSmap offering broader CMS coverage.

A plugin-based scanner that aids security researchers in identifying issues with several CMSs, mainly Drupal & Silverstripe.

Pros of droopescan

  • Focuses specifically on Drupal, offering more targeted and in-depth scanning capabilities for this CMS
  • Provides a plugin system, allowing for easy extension and customization of scanning functionality
  • Offers a more user-friendly command-line interface with clear options and output

Cons of droopescan

  • Limited to Drupal, while CMSmap supports multiple CMS platforms (WordPress, Joomla, Drupal)
  • Less actively maintained, with fewer recent updates compared to CMSmap
  • Smaller community and fewer contributors, potentially leading to slower bug fixes and feature additions

Code Comparison

droopescan:

def enumerate_plugins(self):
    plugins = self.plugins_get()
    for plugin in plugins:
        self.check_plugin(plugin)

CMSmap:

def scanPlugins(self):
    for plugin in self.plugins:
        self.verbose('[+] Checking plugin: ' + plugin)
        self.checkPlugin(plugin)

Both projects use similar approaches for plugin enumeration, but droopescan's code appears more concise and focused on Drupal-specific functionality, while CMSmap's code is designed to work across multiple CMS platforms.

2,287

CMS Detection and Exploitation suite - Scan WordPress, Joomla, Drupal and over 180 other CMSs

Pros of CMSeeK

  • Supports a wider range of CMS detection (over 180 CMSs)
  • More actively maintained with frequent updates
  • Includes additional features like theme and plugin detection

Cons of CMSeeK

  • Slower scanning speed compared to CMSmap
  • May produce more false positives due to its extensive detection methods
  • Requires more dependencies and setup

Code Comparison

CMSeeK:

def detect_cms(self):
    for cms in self.cms_list:
        if cms.detect(self.url):
            return cms
    return None

CMSmap:

def fingerprint(self):
    for cms in self.cms_list:
        if cms.check(self.url):
            return cms
    return None

Both tools use similar approaches for CMS detection, iterating through a list of supported CMSs and checking for matches. However, CMSeeK's implementation is more extensive, with a larger variety of detection methods and a more comprehensive CMS database.

CMSeeK offers broader CMS coverage and additional features, making it suitable for thorough scans. CMSmap, on the other hand, provides faster scanning with potentially fewer false positives, making it ideal for quick assessments. The choice between the two depends on the specific requirements of the user and the scanning context.

OWASP Joomla Vulnerability Scanner Project https://www.secologist.com/

Pros of joomscan

  • Specifically designed for Joomla, offering more targeted and in-depth scanning
  • Regularly updated with the latest Joomla vulnerabilities
  • Supports both command-line and interactive modes for flexibility

Cons of joomscan

  • Limited to Joomla CMS, while CMSmap supports multiple CMS platforms
  • Less comprehensive in terms of general web application security testing
  • May require more manual configuration for advanced scans

Code Comparison

CMSmap (Python):

def fingerprint(self):
    self.fingerprint_from_headers()
    self.fingerprint_from_source()
    self.fingerprint_from_robots()
    self.fingerprint_from_readme()

joomscan (Perl):

sub main {
    my $target = $ARGV[0];
    my $method = $ARGV[1];
    my $update = $ARGV[2];
    if($target){
        &update if($update);
        &start;
    }
}

Both tools use different programming languages and approaches. CMSmap focuses on multiple fingerprinting methods, while joomscan's main function handles command-line arguments and initiates the scanning process. CMSmap offers a more generalized approach, whereas joomscan is tailored specifically for Joomla vulnerabilities.

8,312

Nikto web server scanner

Pros of Nikto

  • More comprehensive scanning capabilities, covering a wider range of web vulnerabilities
  • Actively maintained with regular updates and a large user community
  • Extensive plugin system for customization and extended functionality

Cons of Nikto

  • Slower scanning speed compared to CMSmap
  • May generate more false positives, requiring manual verification
  • Less focused on CMS-specific vulnerabilities

Code Comparison

Nikto (Perl):

sub nikto_headers {
    my ($mark) = @_;
    my %headers;
    foreach my $header (split(/\n/, $mark->{'headers'})) {
        my ($key, $value) = split(/:\s*/, $header, 2);
        $headers{lc($key)} = $value if defined $key && defined $value;
    }
    return %headers;
}

CMSmap (Python):

def get_headers(self):
    headers = {}
    for header in self.headers.split('\n'):
        if ':' in header:
            key, value = header.split(':', 1)
            headers[key.strip().lower()] = value.strip()
    return headers

Both code snippets handle HTTP headers, but Nikto uses Perl while CMSmap uses Python. Nikto's implementation is slightly more concise, while CMSmap's is more explicit in its string manipulation.

1,339

CORS Misconfiguration Scanner

Pros of Corsy

  • Focuses specifically on CORS misconfigurations, providing more in-depth analysis
  • Offers a wider range of CORS-related checks and vulnerability detection
  • Includes features like automatic payload generation and reporting

Cons of Corsy

  • Limited to CORS-related issues, while CMSmap covers a broader range of CMS vulnerabilities
  • May require more manual interpretation of results compared to CMSmap's straightforward output
  • Less actively maintained, with fewer recent updates

Code Comparison

CMSmap example:

def genericDetect(self):
    response = self.httpRequest(self.url)
    if response:
        for cms in self.cmss:
            if cms.lower() in response.content.lower():
                return cms
    return None

Corsy example:

def cors(url, headers, get, post):
    response = requester(url, headers, get, post)
    methods = response.headers.get('Access-Control-Allow-Methods')
    if methods:
        print('%s Access-Control-Allow-Methods: %s' % (good, methods))
    else:
        print('%s Access-Control-Allow-Methods header not present' % bad)

Both repositories provide security testing tools, but with different focuses. CMSmap is designed for detecting and exploiting vulnerabilities in content management systems, while Corsy specializes in identifying CORS misconfigurations. The code examples highlight their distinct approaches, with CMSmap performing generic CMS detection and Corsy analyzing CORS-specific headers.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

CMSmap

CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs. The main purpose of CMSmap is to integrate common vulnerabilities for different types of CMSs in a single tool.

At the moment, CMSs supported by CMSmap are WordPress, Joomla, Drupal and Moodle.

Please note that this project is an early state. As such, you might find bugs, flaws or mulfunctions. Use it at your own risk!

Preview

Installation

You can download the latest version of CMSmap by cloning the GitHub repository:

 git clone https://github.com/Dionach/CMSmap

Then you need to configure the edbtype and edbpath settings in the cmsmap.conf. Use GIT if you have a local Git repository of Exploit-db :

[exploitdb]
edbtype = GIT
edbpath = /opt/exploitdb/

Alternatively, use APT if you have installed the debian exploitdb package. For Kali, use the following settings :

[exploitdb]
edbtype = APT
edbpath = /usr/share/exploitdb/

If you would like to run cmsmap from anywhere in your system you can install it with pip3 :

cd CMSmap
pip3 install .

To uninstall it :

pip3 uninstall cmsmap -y

Usage

usage: cmsmap [-f W/J/D] [-F] [-t] [-a] [-H] [-i] [-o] [-E] [-d] [-u] [-p]
              [-x] [-k] [-w] [-v] [-h] [-D] [-U W/J/D]
              [target]

CMSmap tool v1.0 - Simple CMS Scanner
Author: Mike Manzotti

Scan:
  target                target URL (e.g. 'https://example.com:8080/')
  -f W/J/D, --force W/J/D
                        force scan (W)ordpress, (J)oomla or (D)rupal
  -F, --fullscan        full scan using large plugin lists. False positives and slow!
  -t , --threads        number of threads (Default 5)
  -a , --agent          set custom user-agent
  -H , --header         add custom header (e.g. 'Authorization: Basic ABCD...')
  -i , --input          scan multiple targets listed in a given file
  -o , --output         save output in a file
  -E, --noedb           enumerate plugins without searching exploits
  -c, --nocleanurls     disable clean urls for Drupal only
  -s, --nosslcheck      don't validate the server's certificate
  -d, --dictattack      run low intense dictionary attack during scanning (5 attempts per user)

Brute-Force:
  -u , --usr            username or username file
  -p , --psw            password or password file
  -x, --noxmlrpc        brute forcing WordPress without XML-RPC

Post Exploitation:
  -k , --crack          password hashes file (Require hashcat installed. For WordPress and Joomla only)
  -w , --wordlist       wordlist file

Others:
  -v, --verbose         verbose mode (Default false)
  -h, --help            show this help message and exit
  -D, --default         rum CMSmap with default options
  -U, --update          use (C)MSmap, (P)lugins or (PC) for both

Examples:
  cmsmap.py https://example.com
  cmsmap.py https://example.com -f W -F --noedb -d
  cmsmap.py https://example.com -i targets.txt -o output.txt
  cmsmap.py https://example.com -u admin -p passwords.txt
  cmsmap.py -k hashes.txt -w passwords.txt

Contribution guidelines

If you want to contribute to CMSmap, be sure to review the contribution guidelines.

Disclaimer

Usage of CMSmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume NO liability and are NOT responsible for any misuse or damage caused by this program.