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



47
48
49
# File 'lib/cms_scanner/references.rb', line 47

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

#cve_urlsArray<String>

Returns:

  • (Array<String>)


42
43
44
# File 'lib/cms_scanner/references.rb', line 42

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

#cvesArray<String>

Returns The CVEs.

Returns:

  • (Array<String>)

    The CVEs



37
38
39
# File 'lib/cms_scanner/references.rb', line 37

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

#exploitdb_idsArray<String>

Returns The ExploitDB ID.

Returns:

  • (Array<String>)

    The ExploitDB ID



52
53
54
# File 'lib/cms_scanner/references.rb', line 52

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

#exploitdb_url(id) ⇒ String

Returns:

  • (String)


62
63
64
# File 'lib/cms_scanner/references.rb', line 62

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

#exploitdb_urlsArray<String>

Returns:

  • (Array<String>)


57
58
59
# File 'lib/cms_scanner/references.rb', line 57

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



72
73
74
# File 'lib/cms_scanner/references.rb', line 72

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



82
83
84
# File 'lib/cms_scanner/references.rb', line 82

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

#msf_urlsArray<String>

Returns:

  • (Array<String>)


77
78
79
# File 'lib/cms_scanner/references.rb', line 77

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

#packetstorm_idsArray<String>

Returns The Packetstormsecurity IDs.

Returns:

  • (Array<String>)

    The Packetstormsecurity IDs



87
88
89
# File 'lib/cms_scanner/references.rb', line 87

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

#packetstorm_url(id) ⇒ String

Returns:

  • (String)


97
98
99
# File 'lib/cms_scanner/references.rb', line 97

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

#packetstorm_urlsArray<String>

Returns:

  • (Array<String>)


92
93
94
# File 'lib/cms_scanner/references.rb', line 92

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

#referencesHash

Returns:

  • (Hash)


26
27
28
# File 'lib/cms_scanner/references.rb', line 26

def references
  @references ||= {}
end

#references=(refs) ⇒ Object

Parameters:

  • refs (Hash)


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

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



31
32
33
34
# File 'lib/cms_scanner/references.rb', line 31

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

#securityfocus_idsArray<String>

Returns The Security Focus IDs.

Returns:

  • (Array<String>)

    The Security Focus IDs



102
103
104
# File 'lib/cms_scanner/references.rb', line 102

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

#securityfocus_url(id) ⇒ String

Returns:

  • (String)


112
113
114
# File 'lib/cms_scanner/references.rb', line 112

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

#securityfocus_urlsArray<String>

Returns:

  • (Array<String>)


107
108
109
# File 'lib/cms_scanner/references.rb', line 107

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

#urlsString<Array>

Returns:

  • (String<Array>)


67
68
69
# File 'lib/cms_scanner/references.rb', line 67

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