diff --git a/lib/common_helper.rb b/lib/common_helper.rb index 8b921175..29739555 100644 --- a/lib/common_helper.rb +++ b/lib/common_helper.rb @@ -28,7 +28,7 @@ UPDATER_LIB_DIR = LIB_DIR + '/updater' COMMON_LIB_DIR = LIB_DIR + '/common' LOG_FILE = ROOT_DIR + '/log.txt' # Plugins directories -COMON_PLUGINS_DIR = COMMON_LIB_DIR + '/plugins' +COMMON_PLUGINS_DIR = COMMON_LIB_DIR + '/plugins' WPSCAN_PLUGINS_DIR = WPSCAN_LIB_DIR + '/plugins' WPSTOOLS_PLUGINS_DIR = WPSTOOLS_LIB_DIR + '/plugins' @@ -48,18 +48,22 @@ LOCAL_FILES_XSD = DATA_DIR + '/local_vulnerable_files.xsd' WPSCAN_VERSION = '2.0' -require "#{LIB_DIR}/environment" +$LOAD_PATH.unshift(LIB_DIR) + +require 'environment' # TODO : add an exclude pattern ? def require_files_from_directory(absolute_dir_path, files_pattern = '*.rb') - Dir[File.join(absolute_dir_path, files_pattern)].sort.each do |f| + files = Dir[File.join(absolute_dir_path, files_pattern)] + + # Files in the root dir are loaded first, then thoses in the subdirectories + files.sort_by { |file| [file.count("/"), file] }.each do |f| f = File.expand_path(f) - require f #puts "require #{f}" # Used for debug + require f end end -#require_files_from_directory(COMMON_LIB_DIR) require_files_from_directory(COMMON_LIB_DIR, '**/*.rb') # Add protocol diff --git a/lib/environment.rb b/lib/environment.rb index ad680cf3..7b2be475 100644 --- a/lib/environment.rb +++ b/lib/environment.rb @@ -30,7 +30,6 @@ begin require 'digest/sha1' require 'readline' require 'base64' - require 'cgi' require 'rbconfig' require 'pp' # Third party libs @@ -39,8 +38,9 @@ begin require 'json' require 'nokogiri' # Custom libs - require "#{LIB_DIR}/browser" - require "#{LIB_DIR}/cache_file_store" + require 'browser' + require 'cache_file_store' + require 'common/custom_option_parser' rescue LoadError => e puts "[ERROR] #{e}" diff --git a/lib/wpscan/wpscan_helper.rb b/lib/wpscan/wpscan_helper.rb index 8866c8b9..081a42f2 100644 --- a/lib/wpscan/wpscan_helper.rb +++ b/lib/wpscan/wpscan_helper.rb @@ -19,6 +19,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../common_helper') +require_files_from_directory(WPSCAN_LIB_DIR + '/modules') require_files_from_directory(WPSCAN_LIB_DIR, '**/*.rb') # wpscan usage diff --git a/lib/wpstools/plugins/stats/stats_plugin.rb b/lib/wpstools/plugins/stats/stats_plugin.rb index 278642fd..753604ce 100644 --- a/lib/wpstools/plugins/stats/stats_plugin.rb +++ b/lib/wpstools/plugins/stats/stats_plugin.rb @@ -17,7 +17,8 @@ # along with this program. If not, see . #++ -require_files_from_directory(WPSCAN_LIB_DIR, '**/*.rb') +require 'wpscan/wp_enumerator' +require 'wpscan/wp_item' class StatsPlugin < Plugin