Class: WPScan::Finders::Themes::KnownLocations
- Inherits:
-
CMSScanner::Finders::Finder
- Object
- CMSScanner::Finders::Finder
- WPScan::Finders::Themes::KnownLocations
- Includes:
- CMSScanner::Finders::Finder::Enumerator
- Defined in:
- app/finders/themes/known_locations.rb
Overview
Known Locations Themes Finder
Instance Method Summary collapse
- #aggressive(opts = {}) ⇒ Array<Theme>
- #create_progress_bar(opts = {}) ⇒ Object
- #target_urls(opts = {}) ⇒ Hash
- #valid_response_codes ⇒ Array<Integer>
Instance Method Details
#aggressive(opts = {}) ⇒ Array<Theme>
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/finders/themes/known_locations.rb', line 19 def aggressive(opts = {}) found = [] enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |res, slug| finding_opts = opts.merge(found_by: found_by, confidence: 80, interesting_entries: ["#{res.effective_url}, status: #{res.code}"]) found << Model::Theme.new(slug, target, finding_opts) raise Error::ThemesThresholdReached if opts[:threshold].positive? && found.size >= opts[:threshold] end found end |
#create_progress_bar(opts = {}) ⇒ Object
50 51 52 |
# File 'app/finders/themes/known_locations.rb', line 50 def (opts = {}) super(opts.merge(title: ' Checking Known Locations -')) end |
#target_urls(opts = {}) ⇒ Hash
39 40 41 42 43 44 45 46 47 48 |
# File 'app/finders/themes/known_locations.rb', line 39 def target_urls(opts = {}) slugs = opts[:list] || DB::Themes.vulnerable_slugs urls = {} slugs.each do |slug| urls[target.theme_url(slug)] = slug end urls end |
#valid_response_codes ⇒ Array<Integer>
11 12 13 |
# File 'app/finders/themes/known_locations.rb', line 11 def valid_response_codes @valid_response_codes ||= [200, 401, 403, 500].freeze end |