WpItem::Vulnerable specs

This commit is contained in:
erwanlr
2013-03-25 20:30:26 +01:00
parent 95041945ff
commit d946ef55a8
12 changed files with 112 additions and 49 deletions

View File

@@ -21,6 +21,15 @@ class Vulnerability
@metasploit_modules = metasploit_modules
end
# @param [ Vulnerability ] other
#
# @return [ Boolean ]
# :nocov:
def ==(other)
title == other.title && type == other.type && references == other.references
end
# :nocov:
# Create the Vulnerability from the xml_node
#
# @param [ Nokogiri::XML::Node ] xml_node

View File

@@ -1,17 +1,11 @@
# encoding: UTF-8
class WpItem
# moved this into the module ?
def vulns_file=(file)
if File.exists?(file)
@vulns_file = file
else
raise "The file #{file} does not exist"
end
end
module Vulnerable
attr_accessor :vulns_file, :vulns_xpath
# Get the vulnerabilities associated to the WpItem
#
# @return [ Vulnerabilities ]
def vulnerabilities
xml = xml(vulns_file)
@@ -23,4 +17,5 @@ class WpItem
vulnerabilities
end
end
end

View File

@@ -1,5 +1,7 @@
# encoding: UTF-8
require 'wp_plugin/vulnerable'
class WpPlugin < WpItem
include WpPlugin::Vulnerable

View File

@@ -1,20 +1,18 @@
# encoding: UTF-8
class WpPlugin < WpItem
def vulns_file
unless @vulns_file
@vulns_file = PLUGINS_VULNS_FILE
end
@vulns_file
end
def vulns_xpath
"//plugin[@name='#{@name}']/vulnerability"
end
module Vulnerable
end
def vulns_file
unless @vulns_file
@vulns_file = PLUGINS_VULNS_FILE
end
@vulns_file
end
def vulns_xpath
"//plugin[@name='#{@name}']/vulnerability"
end
end
end

View File

@@ -2,6 +2,7 @@
require 'wp_theme/findable'
require 'wp_theme/versionable'
require 'wp_theme/vulnerable'
class WpTheme < WpItem
extend WpTheme::Findable

View File

@@ -1,20 +1,16 @@
# encoding: UTF-8
class WpTheme < WpItem
def vulns_file
unless @vulns_file
@vulns_file = THEMES_VULNS_FILE
end
@vulns_file
end
def vulns_xpath
"//theme[@name='#{@name}']/vulnerability"
end
module Vulnerable
def vulns_file
unless @vulns_file
@vulns_file = THEMES_VULNS_FILE
end
@vulns_file
end
def vulns_xpath
"//theme[@name='#{@name}']/vulnerability"
end
end
end

View File

@@ -30,7 +30,6 @@ class WpVersion < WpItem
# Returns the first match of <pattern> in the body of the url
def scan_url(target_uri, pattern, path = nil)
return nil
url = path ? target_uri.merge(path).to_s : target_uri.to_s
response = Browser.instance.get_and_follow_location(url)

View File

@@ -1,19 +1,16 @@
# encoding: UTF-8
class WpVersion < WpItem
def vulns_file
unless @vulns_file
@vulns_file = WP_VULNS_FILE
end
@vulns_file
end
def vulns_xpath
"//wordpress[@version='#{@number}']/vulnerability"
end
module Vulnerable
def vulns_file
unless @vulns_file
@vulns_file = WP_VULNS_FILE
end
@vulns_file
end
def vulns_xpath
"//wordpress[@version='#{@number}']/vulnerability"
end
end
end