module WpLoginProtection

Constants

LOGIN_PROTECTION_METHOD_PATTERN

Public Instance Methods

has_login_protection?() click to toggle source
# File lib/wpscan/modules/wp_login_protection.rb, line 25
def has_login_protection?
  !login_protection_plugin().nil?
end
login_protection_plugin() click to toggle source

Checks if a login protection plugin is enabled code.google.com/p/wpscan/issues/detail?id=111 return a WpPlugin object or nil if no one is found

# File lib/wpscan/modules/wp_login_protection.rb, line 32
def login_protection_plugin
  unless @login_protection_plugin
    protected_methods.grep(LOGIN_PROTECTION_METHOD_PATTERN).each do |symbol_to_call|

      if send(symbol_to_call)
        plugin_name = symbol_to_call[LOGIN_PROTECTION_METHOD_PATTERN, 1].gsub('_', '-')

        return @login_protection_plugin = WpPlugin.new(
            :name           => plugin_name,
            :base_url       => @uri,
            :path           => "/plugins/#{plugin_name}/",
            :wp_content_dir => @wp_content_dir
        )
      end
    end
    @login_protection_plugin = nil
  end
  @login_protection_plugin
end

Protected Instance Methods

better_wp_security_url() click to toggle source
# File lib/wpscan/modules/wp_login_protection.rb, line 69
def better_wp_security_url
  WpPlugin.new(:wp_content_dir  => @wp_content_dir,
               :base_url        => @uri,
               :path            => "/plugins/better-wp-security/",
               :name            => "better-wp-security"
  ).get_url_without_filename
end
bluetrait_event_viewer_url() click to toggle source
# File lib/wpscan/modules/wp_login_protection.rb, line 121
def bluetrait_event_viewer_url
  WpPlugin.new(:wp_content_dir  => @wp_content_dir,
               :base_url        => @uri,
               :path            => "/plugins/bluetrait-event-viewer/",
               :name            => "bluetrait-event-viewer"
  ).get_url_without_filename
end
has_better_wp_security_protection?() click to toggle source

wordpress.org/extend/plugins/better-wp-security/

# File lib/wpscan/modules/wp_login_protection.rb, line 65
def has_better_wp_security_protection?
  Browser.instance.get(better_wp_security_url()).code != 404
end
has_bluetrait_event_viewer_protection?() click to toggle source

wordpress.org/extend/plugins/bluetrait-event-viewer/

# File lib/wpscan/modules/wp_login_protection.rb, line 117
def has_bluetrait_event_viewer_protection?
  Browser.instance.get(bluetrait_event_viewer_url()).code != 404
end
has_limit_login_attempts_protection?() click to toggle source

wordpress.org/extend/plugins/limit-login-attempts/

# File lib/wpscan/modules/wp_login_protection.rb, line 104
def has_limit_login_attempts_protection?
  Browser.instance.get(limit_login_attempts_url()).code != 404
end
has_login_lock_protection?() click to toggle source

wordpress.org/extend/plugins/login-lock/

# File lib/wpscan/modules/wp_login_protection.rb, line 60
def has_login_lock_protection?
  Browser.instance.get(login_url()).body =~ %r{LOGIN LOCK} ? true : false
end
has_login_lockdown_protection?() click to toggle source

Thanks to Alip Aswalid for providing this method. wordpress.org/extend/plugins/login-lockdown/

# File lib/wpscan/modules/wp_login_protection.rb, line 55
def has_login_lockdown_protection?
  Browser.instance.get(login_url()).body =~ %r{Login LockDown} ? true : false
end
has_login_security_solution_protection?() click to toggle source

wordpress.org/extend/plugins/login-security-solution/

# File lib/wpscan/modules/wp_login_protection.rb, line 91
def has_login_security_solution_protection?
  Browser.instance.get(login_security_solution_url()).code != 404
end
has_simple_login_lockdown_protection?() click to toggle source

wordpress.org/extend/plugins/simple-login-lockdown/

# File lib/wpscan/modules/wp_login_protection.rb, line 78
def has_simple_login_lockdown_protection?
  Browser.instance.get(simple_login_lockdown_url()).code != 404
end
limit_login_attempts_url() click to toggle source
# File lib/wpscan/modules/wp_login_protection.rb, line 108
def limit_login_attempts_url
  WpPlugin.new(:wp_content_dir  => @wp_content_dir,
               :base_url        => @uri,
               :path            => "/plugins/limit-login-attempts/",
               :name            => "limit-login-attempts"
  ).get_url_without_filename
end
login_security_solution_url() click to toggle source
# File lib/wpscan/modules/wp_login_protection.rb, line 95
def login_security_solution_url
  WpPlugin.new(:wp_content_dir  => @wp_content_dir,
               :base_url        => @uri,
               :path            => "/plugins/login-security-solution/",
               :name            => "login-security-solution"
  ).get_url_without_filename
end
simple_login_lockdown_url() click to toggle source
# File lib/wpscan/modules/wp_login_protection.rb, line 82
def simple_login_lockdown_url
  WpPlugin.new(:wp_content_dir  => @wp_content_dir,
               :base_url        => @uri,
               :path            => "/plugins/simple-login-lockdown/",
               :name            => "simple-login-lockdown"
  ).get_url_without_filename
end