Module: CMSScanner::References

Extended by:
ActiveSupport::Concern
Included in:
Vulnerability
Defined in:
lib/cms_scanner/references.rb

Overview

References related to the issue

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#cve_url(cve) ⇒ String

Returns The URL to the CVE.

Returns:

  • (String)

    The URL to the CVE



45
46
47
# File 'lib/cms_scanner/references.rb', line 45

def cve_url(cve)
  "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-#{cve}"
end

#cve_urlsArray<String>

Returns:

  • (Array<String>)


40
41
42
# File 'lib/cms_scanner/references.rb', line 40

def cve_urls
  cves.reduce([]) { |acc, elem| acc << cve_url(elem) }
end

#cvesArray<String>

Returns The CVEs.

Returns:

  • (Array<String>)

    The CVEs



35
36
37
# File 'lib/cms_scanner/references.rb', line 35

def cves
  references[:cve] || []
end

#exploitdb_idsArray<String>

Returns The ExploitDB ID.

Returns:

  • (Array<String>)

    The ExploitDB ID



80
81
82
# File 'lib/cms_scanner/references.rb', line 80

def exploitdb_ids
  references[:exploitdb] || []
end

#exploitdb_url(id) ⇒ String

Returns:

  • (String)


90
91
92
# File 'lib/cms_scanner/references.rb', line 90

def exploitdb_url(id)
  "https://www.exploit-db.com/exploits/#{id}/"
end

#exploitdb_urlsArray<String>

Returns:

  • (Array<String>)


85
86
87
# File 'lib/cms_scanner/references.rb', line 85

def exploitdb_urls
  exploitdb_ids.reduce([]) { |acc, elem| acc << exploitdb_url(elem) }
end

#msf_modulesArray<String>

Returns The metasploit modules.

Returns:

  • (Array<String>)

    The metasploit modules



100
101
102
# File 'lib/cms_scanner/references.rb', line 100

def msf_modules
  references[:metasploit] || []
end

#msf_url(mod) ⇒ String

Returns The URL to the metasploit module page.

Returns:

  • (String)

    The URL to the metasploit module page



110
111
112
# File 'lib/cms_scanner/references.rb', line 110

def msf_url(mod)
  "https://www.rapid7.com/db/modules/#{mod.sub(%r{^/}, '')}"
end

#msf_urlsArray<String>

Returns:

  • (Array<String>)


105
106
107
# File 'lib/cms_scanner/references.rb', line 105

def msf_urls
  msf_modules.reduce([]) { |acc, elem| acc << msf_url(elem) }
end

#osvdb_idsArray<String>

Returns The OSVDB IDs.

Returns:

  • (Array<String>)

    The OSVDB IDs



65
66
67
# File 'lib/cms_scanner/references.rb', line 65

def osvdb_ids
  references[:osvdb] || []
end

#osvdb_url(id) ⇒ String

Returns The URL to the ExploitDB advisory.

Returns:

  • (String)

    The URL to the ExploitDB advisory



75
76
77
# File 'lib/cms_scanner/references.rb', line 75

def osvdb_url(id)
  "http://osvdb.org/show/osvdb/#{id}"
end

#osvdb_urlsArray<String>

Returns:

  • (Array<String>)


70
71
72
# File 'lib/cms_scanner/references.rb', line 70

def osvdb_urls
  osvdb_ids.reduce([]) { |acc, elem| acc << osvdb_url(elem) }
end

#packetstorm_idsArray<String>

Returns The Packetstormsecurity IDs.

Returns:

  • (Array<String>)

    The Packetstormsecurity IDs



115
116
117
# File 'lib/cms_scanner/references.rb', line 115

def packetstorm_ids
  @packetstorm_ids ||= references[:packetstorm] || []
end

#packetstorm_url(id) ⇒ String

Returns:

  • (String)


125
126
127
# File 'lib/cms_scanner/references.rb', line 125

def packetstorm_url(id)
  "http://packetstormsecurity.com/files/#{id}/"
end

#packetstorm_urlsArray<String>

Returns:

  • (Array<String>)


120
121
122
# File 'lib/cms_scanner/references.rb', line 120

def packetstorm_urls
  packetstorm_ids.reduce([]) { |acc, elem| acc << packetstorm_url(elem) }
end

#referencesHash

Returns:

  • (Hash)


24
25
26
# File 'lib/cms_scanner/references.rb', line 24

def references
  @references ||= {}
end

#references=(refs) ⇒ Object

Parameters:

  • refs (Hash)


15
16
17
18
19
20
21
# File 'lib/cms_scanner/references.rb', line 15

def references=(refs)
  @references = {}

  self.class.references_keys.each do |key|
    @references[key] = [*refs[key]].map(&:to_s) if refs.key?(key)
  end
end

#references_urlsArray<String>

Returns All the references URLs.

Returns:

  • (Array<String>)

    All the references URLs



29
30
31
32
# File 'lib/cms_scanner/references.rb', line 29

def references_urls
  cve_urls + secunia_urls + osvdb_urls + exploitdb_urls + urls + msf_urls +
    packetstorm_urls + securityfocus_urls
end

#secunia_idsArray<String>

Returns The Secunia IDs.

Returns:

  • (Array<String>)

    The Secunia IDs



50
51
52
# File 'lib/cms_scanner/references.rb', line 50

def secunia_ids
  references[:secunia] || []
end

#secunia_url(id) ⇒ String

Returns The URL to the Secunia advisory.

Returns:

  • (String)

    The URL to the Secunia advisory



60
61
62
# File 'lib/cms_scanner/references.rb', line 60

def secunia_url(id)
  "https://secunia.com/advisories/#{id}/"
end

#secunia_urlsArray<String>

Returns:

  • (Array<String>)


55
56
57
# File 'lib/cms_scanner/references.rb', line 55

def secunia_urls
  secunia_ids.reduce([]) { |acc, elem| acc << secunia_url(elem) }
end

#securityfocus_idsArray<String>

Returns The Security Focus IDs.

Returns:

  • (Array<String>)

    The Security Focus IDs



130
131
132
# File 'lib/cms_scanner/references.rb', line 130

def securityfocus_ids
  references[:securityfocus] || []
end

#securityfocus_url(id) ⇒ String

Returns:

  • (String)


140
141
142
# File 'lib/cms_scanner/references.rb', line 140

def securityfocus_url(id)
  "http://www.securityfocus.com/bid/#{id}/"
end

#securityfocus_urlsArray<String>

Returns:

  • (Array<String>)


135
136
137
# File 'lib/cms_scanner/references.rb', line 135

def securityfocus_urls
  securityfocus_ids.reduce([]) { |acc, elem| acc << securityfocus_url(elem) }
end

#urlsString<Array>

Returns:

  • (String<Array>)


95
96
97
# File 'lib/cms_scanner/references.rb', line 95

def urls
  references[:url] || []
end