Sha256: ccbf8f49e6c142d1e11b644e06d205c48ce2470a71167850a684ea0f7258c48c

Contents?: true

Size: 1 KB

Versions: 13

Compression:

Stored size: 1 KB

Contents

module WPScan
  module Finders
    module Plugins
      # Plugins finder from the Dynamic Finder 'Xpath'
      class Xpath < WPScan::Finders::DynamicFinder::WpItems::Finder
        DEFAULT_CONFIDENCE = 40

        # @param [ Hash ] opts The options from the #passive, #aggressive methods
        # @param [ Typhoeus::Response ] response
        # @param [ String ] slug
        # @param [ String ] klass
        # @param [ Hash ] config The related dynamic finder config hash
        #
        # @return [ Plugin ] The detected plugin in the response, related to the config
        def process_response(opts, response, slug, klass, config)
          response.html.xpath(config['xpath']).each do |node|
            next if config['pattern'] && !node.text.match(config['pattern'])

            return Plugin.new(
              slug,
              target,
              opts.merge(found_by: found_by(klass), confidence: config['confidence'] || DEFAULT_CONFIDENCE)
            )
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
wpscan-3.4.5 app/finders/plugins/xpath.rb
wpscan-3.4.4 app/finders/plugins/xpath.rb
wpscan-3.4.3 app/finders/plugins/xpath.rb
wpscan-3.4.2 app/finders/plugins/xpath.rb
wpscan-3.4.1 app/finders/plugins/xpath.rb
wpscan-3.4.0 app/finders/plugins/xpath.rb
wpscan-3.3.3 app/finders/plugins/xpath.rb
wpscan-3.3.2 app/finders/plugins/xpath.rb
wpscan-3.3.1 app/finders/plugins/xpath.rb
wpscan-3.3.0 app/finders/plugins/xpath.rb
wpscan-3.2.1 app/finders/plugins/xpath.rb
wpscan-3.2.0 app/finders/plugins/xpath.rb
wpscan-3.1.0 app/finders/plugins/xpath.rb