Sha256: e3f27cced1fd161d34e1e58d2d8ab9991a0928b51d9e6f0ad122a42a1ebbfb96

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

module WPScan
  module DB
    # Dynamic Finders
    class DynamicFinders
      # @return [ String ]
      def self.db_file
        @db_file ||= File.join(DB_DIR, 'dynamic_finders_01.yml')
      end

      # @return [ Hash ]
      def self.db_data
        @db_data ||= YAML.safe_load(File.read(db_file), [Regexp])
      end

      # @return [ Hash ]
      def self.finder_configs(finder_klass)
        configs = {}

        db_data.each do |slug, config|
          next unless config[finder_klass]

          configs[slug] = config[finder_klass].dup
        end

        configs
      end
    end

    # Dynamic Plugin Finders
    class DynamicPluginFinders < DynamicFinders
      # @return [ Hash ]
      def self.db_data
        @db_data ||= super['plugins'] || {}
      end

      # @return [ Hash ]
      def self.comments
        @comments ||= finder_configs('Comments')
      end

      # @return [ Hash ]
      def self.urls_in_page
        @urls_in_page ||= finder_configs('UrlsInPage')
      end
    end

    # Dynamic Theme Finders (none ATM)
    class DynamicThemeFinders < DynamicFinders
      # @return [ Hash ]
      def self.db_data
        @db_data ||= super['themes'] || {}
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wpscan-3.0.8 lib/wpscan/db/dynamic_finders.rb
wpscan-3.0.7 lib/wpscan/db/dynamic_finders.rb