Class: CMSScanner::Finders::Finder

Inherits:
Object
  • Object
show all
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

Overview

Finder

Defined Under Namespace

Modules: Enumerator, Fingerprinter, SmartURLChecker

Constant Summary collapse

DIRECT_ACCESS =

Constants for common found_by

'Direct Access (Aggressive Detection)'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target) ⇒ Finder

Returns a new instance of Finder.



14
15
16
# File 'lib/cms_scanner/finders/finder.rb', line 14

def initialize(target)
  @target = target
end

Instance Attribute Details

#targetObject

Returns the value of attribute target.



12
13
14
# File 'lib/cms_scanner/finders/finder.rb', line 12

def target
  @target
end

Instance Method Details

#aggressive(_opts = {}) ⇒ Object

Parameters:

  • _opts (Hash) (defaults to: {})


28
29
# File 'lib/cms_scanner/finders/finder.rb', line 28

def aggressive(_opts = {})
end

#browserBrowser

Returns:



39
40
41
# File 'lib/cms_scanner/finders/finder.rb', line 39

def browser
  @browser ||= NS::Browser.instance
end

#found_byObject



48
49
50
51
52
53
54
55
56
# File 'lib/cms_scanner/finders/finder.rb', line 48

def found_by
  caller_locations.each do |call|
    label = call.label

    next unless label == 'aggressive' || label == 'passive'

    return "#{titleize} (#{label.capitalize} Detection)"
  end
end

#hydraTyphoeus::Hydra

Returns:



44
45
46
# File 'lib/cms_scanner/finders/finder.rb', line 44

def hydra
  @hydra ||= browser.hydra
end

#passive(_opts = {}) ⇒ Object

Parameters:

  • _opts (Hash) (defaults to: {})


24
25
# File 'lib/cms_scanner/finders/finder.rb', line 24

def passive(_opts = {})
end

#progress_bar(opts = {}) ⇒ ProgressBar::Base

Parameters:

Returns:

  • (ProgressBar::Base)


34
35
36
# File 'lib/cms_scanner/finders/finder.rb', line 34

def progress_bar(opts = {})
  ProgressBar.create({ format: '%t %a <%B> (%c / %C) %P%% %e' }.merge(opts))
end

#titleizeString

Returns The titleized name of the finder.

Returns:

  • (String)

    The titleized name of the finder



19
20
21
# File 'lib/cms_scanner/finders/finder.rb', line 19

def titleize
  self.class.to_s.demodulize.underscore.titleize
end