module CMSScanner::References

References related to the issue

Public Instance Methods

cve_url(cve) click to toggle source

@return [ String ] The URL to the CVE

# File lib/cms_scanner/references.rb, line 53
def cve_url(cve)
  "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-#{cve}"
end
cve_urls() click to toggle source

@return [ Array<String> ]

# File lib/cms_scanner/references.rb, line 48
def cve_urls
  cves.reduce([]) { |acc, elem| acc << cve_url(elem) }
end
cves() click to toggle source

@return [ Array<String> ] The CVEs

# File lib/cms_scanner/references.rb, line 43
def cves
  references[:cve] || []
end
exploitdb_ids() click to toggle source

@return [ Array<String> ] The ExploitDB ID

# File lib/cms_scanner/references.rb, line 58
def exploitdb_ids
  references[:exploitdb] || []
end
exploitdb_url(id) click to toggle source

@return [ String ]

# File lib/cms_scanner/references.rb, line 68
def exploitdb_url(id)
  "https://www.exploit-db.com/exploits/#{id}/"
end
exploitdb_urls() click to toggle source

@return [ Array<String> ]

# File lib/cms_scanner/references.rb, line 63
def exploitdb_urls
  exploitdb_ids.reduce([]) { |acc, elem| acc << exploitdb_url(elem) }
end
msf_modules() click to toggle source

@return [ Array<String> ] The metasploit modules

# File lib/cms_scanner/references.rb, line 78
def msf_modules
  references[:metasploit] || []
end
msf_url(mod) click to toggle source

@return [ String ] The URL to the metasploit module page

# File lib/cms_scanner/references.rb, line 88
def msf_url(mod)
  "https://www.rapid7.com/db/modules/#{mod.sub(%r{^/}, '')}/"
end
msf_urls() click to toggle source

@return [ Array<String> ]

# File lib/cms_scanner/references.rb, line 83
def msf_urls
  msf_modules.reduce([]) { |acc, elem| acc << msf_url(elem) }
end
packetstorm_ids() click to toggle source

@return [ Array<String> ] The Packetstormsecurity IDs

# File lib/cms_scanner/references.rb, line 93
def packetstorm_ids
  @packetstorm_ids ||= references[:packetstorm] || []
end
packetstorm_url(id) click to toggle source

@return [ String ]

# File lib/cms_scanner/references.rb, line 103
def packetstorm_url(id)
  "https://packetstormsecurity.com/files/#{id}/"
end
packetstorm_urls() click to toggle source

@return [ Array<String> ]

# File lib/cms_scanner/references.rb, line 98
def packetstorm_urls
  packetstorm_ids.reduce([]) { |acc, elem| acc << packetstorm_url(elem) }
end
references() click to toggle source

@return [ Hash ]

# File lib/cms_scanner/references.rb, line 32
def references
  @references ||= {}
end
references=(refs) click to toggle source

@param [ Hash ] refs

# File lib/cms_scanner/references.rb, line 17
def references=(refs)
  @references = {}

  self.class.references_keys.each do |key|
    next unless refs.key?(key)

    @references[key] = if key == :youtube
                         Array(refs[:youtube]).map { |id| youtube_url(id) }
                       else
                         Array(refs[key]).map(&:to_s)
                       end
  end
end
references_urls() click to toggle source

@return [ Array<String> ] All the references URLs

# File lib/cms_scanner/references.rb, line 37
def references_urls
  cve_urls + exploitdb_urls + urls + msf_urls +
    packetstorm_urls + securityfocus_urls + youtube_urls
end
securityfocus_ids() click to toggle source

@return [ Array<String> ] The Security Focus IDs

# File lib/cms_scanner/references.rb, line 108
def securityfocus_ids
  references[:securityfocus] || []
end
securityfocus_url(id) click to toggle source

@return [ String ]

# File lib/cms_scanner/references.rb, line 118
def securityfocus_url(id)
  "https://www.securityfocus.com/bid/#{id}/"
end
securityfocus_urls() click to toggle source

@return [ Array<String> ]

# File lib/cms_scanner/references.rb, line 113
def securityfocus_urls
  securityfocus_ids.reduce([]) { |acc, elem| acc << securityfocus_url(elem) }
end
urls() click to toggle source

@return [ String<Array> ]

# File lib/cms_scanner/references.rb, line 73
def urls
  references[:url] || []
end
youtube_url(id) click to toggle source

@return [ String ]

# File lib/cms_scanner/references.rb, line 128
def youtube_url(id)
  "https://www.youtube.com/watch?v=#{id}"
end
youtube_urls() click to toggle source

@return [ Array<String> ]

# File lib/cms_scanner/references.rb, line 123
def youtube_urls
  references[:youtube] || []
end