Sha256: 659aceae585c4088a44bc09a475ec7bd997569b91d906eb1ceaa17039ac47c39

Contents?: true

Size: 912 Bytes

Versions: 4

Compression:

Stored size: 912 Bytes

Contents

module WPScan
  module Finders
    module WpVersion
      # Readme Version Finder
      class Readme < CMSScanner::Finders::Finder
        # @return [ WpVersion ]
        def aggressive(_opts = {})
          readme_url = target.url('readme.html') # Maybe move this into the Target ?

          node = Browser.get(readme_url).html.css('h1#logo').last

          return unless node && node.text.to_s.strip =~ /\AVersion (.*)\z/i

          number = Regexp.last_match(1)

          return unless WPScan::WpVersion.valid?(number)

          WPScan::WpVersion.new(
            number,
            found_by: 'Readme (Aggressive Detection)',
            # Since WP 4.7, the Readme only contains the major version (ie 4.7, 4.8 etc)
            confidence: number >= '4.7' ? 10 : 90,
            interesting_entries: ["#{readme_url}, Match: '#{node.text.to_s.strip}'"]
          )
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wpscan-3.0.6 app/finders/wp_version/readme.rb
wpscan-3.0.5 app/finders/wp_version/readme.rb
wpscan-3.0.4 app/finders/wp_version/readme.rb
wpscan-3.0.3 app/finders/wp_version/readme.rb