CMS

Exploit Wordpress, Drupal, Joomla and others CMS

ko-fi

Default credentials

Default Credentials
cat /opt/tools/metasploit-framework/data/wordlists/cms400net_default_userpass.txt 
admin admin
builtin builtin
jedit jedit
jmember jmember
Admin2 Admin2
tbrown tbrown
jsmith jsmith
vs vs
EkExplorerUser EkExplorerUser
Explorer Explorer
member@example.com member@example.com
north north
supermember supermember
west west

Scanner

Awesome RCE Techniques

Nibbleblog

  • Nibbleblog 4.0.3 - Arbitrary File Upload

GetSimple

  • Get Simple CMS version 3.3.15 and before - CVE-2019-11231 - Unauthenticated Remote Code Execution (Metasploit)

  • GetSimple CMS v3.3.16 - Remote Code Execution (RCE)

Wordpress

Discovery

/robots.txt

Version

Log file

Fuzzing

Interesting files - Change Target in wordlist

WAF path-based bypass

Open Registration

Directory Listing enabled

Plugins and Themes

Plugins: wp-content/plugins

Themes: wp-content/themes

Grep on different pages - could found more plugins

Version: readme.txt file in /wp-content/plugins/plugin_name/ ?

Username Enumeration

/wp-login.php

XMLRPC

Check for the following methods:

Brute force

Cross Site Port Attack, XSPA

WPscan

Automated enumeration on its own is often not enough. Combine both manual (source code, curl, etc.) and automated enumeration

Plugin detection agressive

WPProbe

WPFinger

WPIntel

Nuclei Template

Login Bruteforce

Start with the standard brute-force module, the XMLRPC module doesn't always work. Use a small list (cewl, cewler) before a large list like rockyou.

With Hydra

With Kraken

Kraken - All-in-One Tool

Bypass 403

Bypass 403 / 401

XSS to RCE

For Wordpress Versions 6.X.X, 5.X.X and 4.X.X.

Code Execution

Themes

Web Shell

Metasploit

Exploit aborted due to failure: not-found: The target does not appear to be using WordPress set vhost

Others (not CPTS)

Leveraging Known Vulnerabilities

Theme - twentytwentyone v1.1

Malicious wav file:

Malicious dtd:

Upload the payload - Medias

Plugin Vulnerabilities

WooCommerce - LFI

  • Capture request in Burp

  • Change request method to POST and add:

  • Also add:

Buddyforms 2.7.7 - Iconv RCE

PHP

Time Clock <= 1.2.2 & Time Clock Pro <= 1.1.4 - Unauthenticated (Limited) Remote Code Execution

Really Simple Security 9.0.0 – 9.1.1.1 – CVE-2024-10924 Authentication Bypass

If 2FA is enabled

Change cookies and access the page:

Authenticated Contributor Remote Code Execution in Widget Options Plugin <= 4.0.7 - CVE-2024-8672

Unauthenticated Remote Code Execution - Bit File Manager version 6.0 - 6.5.5

Unauthenticated Remote Code Execution – Bricks Builder plugin <= 1.9.6

ValvePress Automatic - CVE-2024-27956 - SQLi

WordPress User Registration & Membership plugin (Free < 4.1.2, Pro < 5.1.2)

Vulnerable Plugins - mail-masta

Unauthenicated SQLi: https://www.exploit-db.com/exploits/41438

LFI: https://www.exploit-db.com/exploits/50226

Vulnerable Plugins - wpDiscuz

Command execution https://www.exploit-db.com/exploits/49967

But Curl works

Formidable Pro plugin

SQLMAP

Joomla

Discovery

robots.txt

Scanners

Version

media/system/js/ directory or administrator/manifests/files/joomla.xml

Enumeration

Wordlist

Droopscan

JoomlaScan

Login Brute Force

The default administrator account on Joomla installs is admin

Also see:

Kraken - All-in-One Tool

Joomla! Config Dist File

Database File List

Joomla! 1.6/1.7/2.5 - Privesc by creating admin account

Joomla! < 4.2.8 - Unauthenticated information disclosure - CVE-2023-23752

See HTB - Devvortex WU - Poc: https://github.com/Acceis/exploit-CVE-2023-23752

Code Execution

See Devvortex HTB WU

Templates

Add <?php system($_GET['cmd']);?> to error.php

Non standard file name:

Reverse Shell

Plug In - Web Shell

Joomla < 3.9.5

Joomla < 3.9.5 - CVE-2019-10945: directory traversal and authenticated file deletion vulnerability

Drupal

Discovery/Footprinting

header or footer message Powered by Drupal

CHANGELOG.txt file or README.txt file, via the page source, or clues in the robots.txt file such as references to /node

http://drupal.inlanefreight.local/node/1

Enumeration

Wordlist

/core/install.php accessible

If /core/install.php is publicly accessible, in some cases, it could allow an attacker to reinstall the CMS, leading to a potential site takeover.

Scanners

Droopescan

Drupwn

Login Brute Force

Kraken - All-in-One Tool

Leveraging the PHP Filter Module

Drupal before version 8

enable the PHP filter module

http://drupal-qa.inlanefreight.local/#overlay=admin/modules

Content --> Add content and create a Basic page

After clicking save, we will be redirected to the new page

From version 8 onwards

Install the PHP Filter module

Administration > Reports > Available updates.

Note: Location may differ based on the Drupal version and may be under the Extend menu.

Once the module is installed, we can click on Content and create a new basic page - Refer to Drupal before version 8

Uploading a Backdoored Module

A backdoored module can be created by adding a shell to an existing module. Modules can be found on the drupal.org website. Here, pick CAPTCHA:

shell.php

create a .htaccess file to give ourselves access to the folder

Copy both of these files to the captcha folder and create an archive

Manage and then Extend on the sidebar. Next, click on the + Install new module button Browse to the backdoored Captcha archive and click Install

Drupalgeddon

Versions 7.0 up to 7.31

Pre-authentication SQL injection which can be used to upload malicious code or add an admin user

We can log to the admin interface et create a shell - See PHP Filter Module

With Metasploit: exploit/multi/http/drupal_drupageddon

Drupalgeddon2

Versions of Drupal prior to 7.58 and 8.5.1 - RCE

Replace the echo command in the exploit script with a command to write out our malicious PHP script

Metasploit: use exploit/unix/webapp/drupal_drupalgeddon2

Drupalgeddon3

Multiple versions of Drupal 7.x and 8.x - >=7.0 <7.59 || >= 8.0.0 <8.4.8 || >=8.5.0 <8.5.3

First log in and obtain a valid session cookie

Pluck CMS

Pluck CMS 4.7.13 - File Upload Remote Code Execution (Authenticated)

Version 4.7.16

Version 4.7.18

Manually

Go to http://domain.com/data/modules/<name_zip_file>/<rev_shell.php>

Ex: http://domain.com/data/modules/payload/shell.php

WonderCMS

CVE-2023-41425 - XSS to RCE Unauth

Wonder CMS v.3.2.0 thru v.3.4.2

If /wondercms/loginURL does not exist, just try /loginURL

Typo3

If you come across a domain that uses Typo3 CMS, be sure to check its parameters. Old version Typo3 CMS may still earn you reward. Payload;

Scanners

CMS Made Simple

Unauthenticated SQL Injection on CMS Made Simple <= 2.2.9

Umbraco

Enumeration

Wordlist

Umbraco - CVE-2019-18988 - RCE

Ghost CMS

Reco

Admin Panel: /ghost/ – The admin login page. /ghost/#/signin – Direct link to the sign-in page. Content and Static Files: /content/images/ – Default directory for uploaded images. /content/themes/ – Directory for installed themes. /content/ – Base directory for content, themes, and images. API Endpoints: /ghost/api/v3/ – API endpoint for Ghost CMS v3. /ghost/api/v4/ – API endpoint for Ghost CMS v4. /ghost/api/v4/content/ – Public content API endpoint. /ghost/api/v4/admin/ – Admin API endpoint. Configuration and Backup Files: /config.production.json – Configuration file for the production environment (should not be publicly accessible). /config.development.json – Configuration file for the development environment. /ghost/api/v3/admin/db/ – Potentially accessible database endpoint for backup

Enumeration

Wordlists

CVE-2024-23724 - Stored XSS

CVE-2023-40028 - Arbitrary File Read

CVE-2023-32235 - Path Traversal

SPIP

Craft CMS

Enumeration

Wordlists

CVE-2025-32432: Craft CMS Preauth RCE

CVE-2024-56145

Kentico CMS

XSS to RCE - CVE-2025-2748

FoxCMS

Sitecore Experience Platform

Cache Poisoning

Backdrop CMS

Backdrop CMS 1.27.1 - Authenticated Remote Command Execution (RCE)

Interesting Books

Interesting Books

Disclaimer: As an Amazon Associate, I earn from qualifying purchases. This helps support this GitBook project at no extra cost to you.

Support this Gitbook

I hope it helps you as much as it has helped me. If you can support me in any way, I would deeply appreciate it.

ko-fi

buymeacoffee

Last updated