Class: WPScan::Finders::Themes::KnownLocations
- Includes:
- Finder::Enumerator
- Defined in:
- app/finders/themes/known_locations.rb
Overview
Known Locations Themes Finder
Constant Summary
Constants inherited from Finder
Instance Attribute Summary
Attributes inherited from Finder
Instance Method Summary collapse
- #aggressive(opts = {}) ⇒ Array<Theme>
- #create_progress_bar(opts = {}) ⇒ Object
- #target_urls(opts = {}) ⇒ Hash
- #valid_response_codes ⇒ Array<Integer>
Methods included from Finder::Enumerator
#enumerate, #full_request_params, #head_or_get_request_params, #maybe_get_full_response
Methods inherited from Finder
#browser, #found_by, #hydra, #initialize, #passive, #titleize
Constructor Details
This class inherits a constructor from WPScan::Finders::Finder
Instance Method Details
#aggressive(opts = {}) ⇒ Array<Theme>
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/finders/themes/known_locations.rb', line 21 def aggressive(opts = {}) shared = opts[:found] local = shared ? nil : [] count = 0 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}"]) theme = Model::Theme.new(slug, target, finding_opts) (shared || local) << theme count += 1 raise Error::ThemesThresholdReached if opts[:threshold].positive? && count >= opts[:threshold] end local || [] end |
#create_progress_bar(opts = {}) ⇒ Object
56 57 58 |
# File 'app/finders/themes/known_locations.rb', line 56 def (opts = {}) super(opts.merge(title: ' Checking Known Locations -')) end |
#target_urls(opts = {}) ⇒ Hash
45 46 47 48 49 50 51 52 53 54 |
# File 'app/finders/themes/known_locations.rb', line 45 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 |