use constants for data files

This commit is contained in:
Christian Mehlmauer
2013-01-19 21:33:07 +01:00
parent 5d6ce70863
commit 14be8c700f
9 changed files with 24 additions and 15 deletions

View File

@@ -31,6 +31,15 @@ COMON_PLUGINS_DIR = COMMON_LIB_DIR + "/plugins"
WPSCAN_PLUGINS_DIR = WPSCAN_LIB_DIR + "/plugins" WPSCAN_PLUGINS_DIR = WPSCAN_LIB_DIR + "/plugins"
WPSTOOLS_PLUGINS_DIR = WPSTOOLS_LIB_DIR + "/plugins" WPSTOOLS_PLUGINS_DIR = WPSTOOLS_LIB_DIR + "/plugins"
# Data files
PLUGINS_FILE = DATA_DIR + "/plugins.txt"
PLUGINS_FULL_FILE = DATA_DIR + "/plugins_full.txt"
PLUGINS_VULNS_FILE = DATA_DIR + "/plugin_vulns.xml"
THEMES_FILE = DATA_DIR + "/themes.txt"
THEMES_FULL_FILE = DATA_DIR + "/themes_full.txt"
THEMES_VULNS_FILE = DATA_DIR + "/theme_vulns.xml"
WP_VULNS_FILE = DATA_DIR + "/wp_vulns.xml"
WPSCAN_VERSION = "2.0" WPSCAN_VERSION = "2.0"
require "#{LIB_DIR}/environment" require "#{LIB_DIR}/environment"

View File

@@ -22,9 +22,9 @@ module WpPlugins
# #
# return array of WpPlugin # return array of WpPlugin
def plugins_from_aggressive_detection(options) def plugins_from_aggressive_detection(options)
options[:file] = options[:file] || (options[:full] ? "#{DATA_DIR}/plugins_full.txt" : "#{DATA_DIR}/plugins.txt") options[:file] = options[:file] || (options[:full] ? PLUGINS_FULL_FILE : PLUGINS_FILE)
options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ?
options[:vulns_file] : DATA_DIR + "/plugin_vulns.xml" options[:vulns_file] : PLUGINS_VULNS_FILE
options[:vulns_xpath] = "//plugin[@name='#{@name}']/vulnerability" options[:vulns_xpath] = "//plugin[@name='#{@name}']/vulnerability"
options[:vulns_xpath_2] = "//plugin" options[:vulns_xpath_2] = "//plugin"
options[:type] = "plugins" options[:type] = "plugins"

View File

@@ -19,9 +19,9 @@
module WpThemes module WpThemes
def themes_from_aggressive_detection(options) def themes_from_aggressive_detection(options)
options[:file] = options[:file] || (options[:full] ? "#{DATA_DIR}/themes_full.txt" : "#{DATA_DIR}/themes.txt") options[:file] = options[:file] || (options[:full] ? THEMES_FULL_FILE : THEMES_FILE)
options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ?
options[:vulns_file] : DATA_DIR + "/theme_vulns.xml" options[:vulns_file] : THEMES_VULNS_FILE
options[:vulns_xpath] = "//theme[@name='#{@name}']/vulnerability" options[:vulns_xpath] = "//theme[@name='#{@name}']/vulnerability"
options[:vulns_xpath_2] = "//theme" options[:vulns_xpath_2] = "//theme"
options[:type] = "themes" options[:type] = "themes"

View File

@@ -57,9 +57,9 @@ class WpItem < Vulnerable
def wp_org_item? def wp_org_item?
case @type case @type
when "themes" when "themes"
file = "#{DATA_DIR}/themes_full.txt" file = THEMES_FULL_FILE
when "plugins" when "plugins"
file = "#{DATA_DIR}/plugins_full.txt" file = PLUGINS_FULL_FILE
else else
raise("Unknown type #@type") raise("Unknown type #@type")
end end

View File

@@ -19,7 +19,7 @@
class WpPlugin < WpItem class WpPlugin < WpItem
def initialize(options = {}) def initialize(options = {})
options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ?
options[:vulns_file] : DATA_DIR + "/plugin_vulns.xml" options[:vulns_file] : PLUGINS_VULNS_FILE
options[:vulns_xpath] = "//plugin[@name='$name$']/vulnerability" options[:vulns_xpath] = "//plugin[@name='$name$']/vulnerability"
options[:vulns_xpath_2] = "//plugin" options[:vulns_xpath_2] = "//plugin"
options[:type] = "plugins" options[:type] = "plugins"

View File

@@ -24,7 +24,7 @@ class WpTheme < WpItem
def initialize(options = {}) def initialize(options = {})
options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ?
options[:vulns_file] : DATA_DIR + "/theme_vulns.xml" options[:vulns_file] : THEMES_VULNS_FILE
options[:vulns_xpath] = "//theme[@name='$name$']/vulnerability" options[:vulns_xpath] = "//theme[@name='$name$']/vulnerability"
options[:type] = "themes" options[:type] = "themes"
@version = options[:version] @version = options[:version]

View File

@@ -25,7 +25,7 @@ class WpVersion < Vulnerable
def initialize(number, options = {}) def initialize(number, options = {})
@number = number @number = number
@discovery_method = options[:discovery_method] @discovery_method = options[:discovery_method]
@vulns_file = options[:vulns_file] || DATA_DIR + '/wp_vulns.xml' @vulns_file = options[:vulns_file] || WP_VULNS_FILE
@vulns_xpath = "//wordpress[@version='#{@number}']/vulnerability" @vulns_xpath = "//wordpress[@version='#{@number}']/vulnerability"
end end

View File

@@ -39,14 +39,14 @@ class CheckerPlugin < Plugin
end end
def check_vuln_ref_urls def check_vuln_ref_urls
vuln_ref_files = ["plugin_vulns.xml", "theme_vulns.xml", "wp_vulns.xml"] vuln_ref_files = [ PLUGINS_VULNS_FILE , THEMES_VULNS_FILE, WP_VULNS_FILE ]
error_codes = [404, 500, 403] error_codes = [404, 500, 403]
not_found_regexp = %r{No Results Found|error 404|ID Invalid or Not Found}i not_found_regexp = %r{No Results Found|error 404|ID Invalid or Not Found}i
puts "[+] Checking vulnerabilities reference urls" puts "[+] Checking vulnerabilities reference urls"
vuln_ref_files.each do |vuln_ref_file| vuln_ref_files.each do |vuln_ref_file|
xml = Nokogiri::XML(File.open(DATA_DIR + '/' + vuln_ref_file)) do |config| xml = Nokogiri::XML(File.open(vuln_ref_file)) do |config|
config.noblanks config.noblanks
end end

View File

@@ -48,18 +48,18 @@ class GenerateList
when "plugin" when "plugin"
case type case type
when :full when :full
@file_name = DATA_DIR + "/plugins_full.txt" @file_name = PLUGINS_FULL_FILE
when :popular when :popular
@file_name = DATA_DIR + "/plugins.txt" @file_name = PLUGINS_FILE
else else
raise "Unknown type" raise "Unknown type"
end end
when "theme" when "theme"
case type case type
when :full when :full
@file_name = DATA_DIR + "/themes_full.txt" @file_name = THEMES_FULL_FILE
when :popular when :popular
@file_name = DATA_DIR + "/themes.txt" @file_name = THEMES_FILE
else else
raise "Unknown type" raise "Unknown type"
end end