Class: CMSScanner::Finders::Finder
- Inherits:
-
Object
- Object
- CMSScanner::Finders::Finder
- Defined in:
- lib/cms_scanner/finders/finder.rb,
lib/cms_scanner/finders/finder/enumerator.rb,
lib/cms_scanner/finders/finder/fingerprinter.rb,
lib/cms_scanner/finders/finder/smart_url_checker.rb,
lib/cms_scanner/finders/finder/smart_url_checker/findings.rb,
lib/cms_scanner/finders/finder/breadth_first_dictionary_attack.rb
Overview
Finder
Direct Known Subclasses
InterestingFindings::FantasticoFileslist, InterestingFindings::Headers, InterestingFindings::RobotsTxt, InterestingFindings::SearchReplaceDB2, InterestingFindings::XMLRPC
Defined Under Namespace
Modules: BreadthFirstDictionaryAttack, Enumerator, Fingerprinter, SmartURLChecker
Constant Summary collapse
- DIRECT_ACCESS =
Constants for common found_by
'Direct Access (Aggressive Detection)'
Instance Attribute Summary collapse
-
#progress_bar ⇒ Object
Returns the value of attribute progress_bar.
-
#target ⇒ Object
Returns the value of attribute target.
Instance Method Summary collapse
- #aggressive(_opts = {}) ⇒ Object
- #browser ⇒ Browser
- #create_progress_bar(opts = {}) ⇒ ProgressBar::Base
- #found_by(klass = self.class) ⇒ String
- #hydra ⇒ Typhoeus::Hydra
-
#initialize(target) ⇒ Finder
constructor
A new instance of Finder.
- #passive(_opts = {}) ⇒ Object
-
#titleize ⇒ String
The titleized name of the finder.
Constructor Details
#initialize(target) ⇒ Finder
Returns a new instance of Finder.
17 18 19 |
# File 'lib/cms_scanner/finders/finder.rb', line 17 def initialize(target) @target = target end |
Instance Attribute Details
#progress_bar ⇒ Object
Returns the value of attribute progress_bar.
15 16 17 |
# File 'lib/cms_scanner/finders/finder.rb', line 15 def @progress_bar end |
#target ⇒ Object
Returns the value of attribute target.
15 16 17 |
# File 'lib/cms_scanner/finders/finder.rb', line 15 def target @target end |
Instance Method Details
#aggressive(_opts = {}) ⇒ Object
34 |
# File 'lib/cms_scanner/finders/finder.rb', line 34 def aggressive(_opts = {}); end |
#browser ⇒ Browser
48 49 50 |
# File 'lib/cms_scanner/finders/finder.rb', line 48 def browser @browser ||= NS::Browser.instance end |
#create_progress_bar(opts = {}) ⇒ ProgressBar::Base
40 41 42 43 44 45 |
# File 'lib/cms_scanner/finders/finder.rb', line 40 def (opts = {}) = { format: '%t %a <%B> (%c / %C) %P%% %e' } [:output] = ProgressBarNullOutput unless opts[:show_progression] @progress_bar = ::ProgressBar.create(.merge(opts)) end |
#found_by(klass = self.class) ⇒ String
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/cms_scanner/finders/finder.rb', line 59 def found_by(klass = self.class) labels = %w[aggressive passive] caller_locations.each do |call| label = call.label next unless labels.include? label title = klass.to_s.demodulize.gsub(/(\d+)[a-z]+/i, '_\0').titleize(keep_id_suffix: true) return "#{title} (#{label.capitalize} Detection)" end nil end |
#hydra ⇒ Typhoeus::Hydra
53 54 55 |
# File 'lib/cms_scanner/finders/finder.rb', line 53 def hydra @hydra ||= browser.hydra end |
#passive(_opts = {}) ⇒ Object
31 |
# File 'lib/cms_scanner/finders/finder.rb', line 31 def passive(_opts = {}); end |
#titleize ⇒ String
Returns The titleized name of the finder.
22 23 24 25 26 27 28 |
# File 'lib/cms_scanner/finders/finder.rb', line 22 def titleize # Put a _ char before any digits except those at the end, which will be replaced by a space # Otherwise, class such as Error404Page are returned as Error404 Page instead of Error 404 page # The keep_id_suffix is to concevert classes such as CssId to Css Id instead of Css @titleize ||= self.class.to_s.demodulize.gsub(/(\d+)[a-z]+/i, '_\0').titleize(keep_id_suffix: true) end |