39 lines
1.0 KiB
Ruby
Executable File
39 lines
1.0 KiB
Ruby
Executable File
# encoding: UTF-8
|
|
|
|
require 'vulnerability/output'
|
|
|
|
class Vulnerability
|
|
include Vulnerability::Output
|
|
|
|
attr_accessor :title, :references, :type, :metasploit_modules
|
|
|
|
#
|
|
# @param [ String ] title The title of the vulnerability
|
|
# @param [ String ] type The type of the vulnerability
|
|
# @param [ Array ] references References urls
|
|
# @param [ Array ] metasploit_modules Metasploit modules for the vulnerability
|
|
#
|
|
# @return [ Vulnerability ]
|
|
def initialize(title, type, references, metasploit_modules = [])
|
|
@title = title
|
|
@type = type
|
|
@references = references
|
|
@metasploit_modules = metasploit_modules
|
|
end
|
|
|
|
# Create the Vulnerability from the xml_node
|
|
#
|
|
# @param [ Nokogiri::XML::Node ] xml_node
|
|
#
|
|
# @return [ Vulnerability ]
|
|
def self.load_from_xml_node(xml_node)
|
|
new(
|
|
xml_node.search('title').text,
|
|
xml_node.search('type').text,
|
|
xml_node.search('reference').map(&:text),
|
|
xml_node.search('metasploit').map(&:text)
|
|
)
|
|
end
|
|
|
|
end
|