Class: WPScan::Finders::Plugins::KnownLocations
- Includes:
- Finder::Enumerator
- Defined in:
- app/finders/plugins/known_locations.rb
Overview
Known Locations Plugins Finder
Constant Summary
Constants inherited from Finder
Instance Attribute Summary
Attributes inherited from Finder
Instance Method Summary collapse
-
#aggressive(opts = {}) ⇒ Array<Plugin>
Items appended this call (empty when already streamed into opts to avoid double-appending).
- #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<Plugin>
Returns Items appended this call (empty when already streamed into opts to avoid double-appending).
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/finders/plugins/known_locations.rb', line 25 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}"]) plugin = Model::Plugin.new(slug, target, finding_opts) (shared || local) << plugin count += 1 raise Error::PluginsThresholdReached if opts[:threshold].positive? && count >= opts[:threshold] end local || [] end |
#create_progress_bar(opts = {}) ⇒ Object
60 61 62 |
# File 'app/finders/plugins/known_locations.rb', line 60 def (opts = {}) super(opts.merge(title: ' Checking Known Locations -')) end |
#target_urls(opts = {}) ⇒ Hash
49 50 51 52 53 54 55 56 57 58 |
# File 'app/finders/plugins/known_locations.rb', line 49 def target_urls(opts = {}) slugs = opts[:list] || DB::Plugins.vulnerable_slugs urls = {} slugs.each do |slug| urls[target.plugin_url(slug)] = slug end urls end |
#valid_response_codes ⇒ Array<Integer>
11 12 13 |
# File 'app/finders/plugins/known_locations.rb', line 11 def valid_response_codes @valid_response_codes ||= [200, 401, 403, 500].freeze end |