Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wpscanteam
GitHub Repository: wpscanteam/wpscan
Path: blob/master/app/finders/users.rb
485 views
1
# frozen_string_literal: true
2
3
require_relative 'users/author_posts'
4
require_relative 'users/wp_json_api'
5
require_relative 'users/oembed_api'
6
require_relative 'users/rss_generator'
7
require_relative 'users/author_id_brute_forcing'
8
require_relative 'users/login_error_messages'
9
require_relative 'users/author_sitemap'
10
require_relative 'users/yoast_seo_author_sitemap'
11
12
module WPScan
13
module Finders
14
# Specific Finders container to filter the usernames found
15
# and remove the ones matching ParsedCli.exclude_username if supplied
16
class UsersFinders < SameTypeFinders
17
def filter_findings
18
findings.delete_if { |user| ParsedCli.exclude_usernames.match?(user.username) } if ParsedCli.exclude_usernames
19
20
findings
21
end
22
end
23
24
module Users
25
# Users Finder
26
class Base
27
include CMSScanner::Finders::SameTypeFinder
28
29
# @param [ WPScan::Target ] target
30
def initialize(target)
31
finders <<
32
Users::AuthorPosts.new(target) <<
33
Users::WpJsonApi.new(target) <<
34
Users::OembedApi.new(target) <<
35
Users::RSSGenerator.new(target) <<
36
Users::AuthorSitemap.new(target) <<
37
Users::YoastSeoAuthorSitemap.new(target) <<
38
Users::AuthorIdBruteForcing.new(target) <<
39
Users::LoginErrorMessages.new(target)
40
end
41
42
def finders
43
@finders ||= Finders::UsersFinders.new
44
end
45
end
46
end
47
end
48
end
49
50