use constants for data files
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user