Sha256: 71bb5b5514b2ad07719cfb1fb7840214a9f3cb53a4ed1fa2c99a4cfa6d54e9f7

Contents?: true

Size: 905 Bytes

Versions: 15

Compression:

Stored size: 905 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&.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

15 entries across 15 versions & 1 rubygems

Version Path
wpscan-3.4.5 app/finders/wp_version/readme.rb
wpscan-3.4.4 app/finders/wp_version/readme.rb
wpscan-3.4.3 app/finders/wp_version/readme.rb
wpscan-3.4.2 app/finders/wp_version/readme.rb
wpscan-3.4.1 app/finders/wp_version/readme.rb
wpscan-3.4.0 app/finders/wp_version/readme.rb
wpscan-3.3.3 app/finders/wp_version/readme.rb
wpscan-3.3.2 app/finders/wp_version/readme.rb
wpscan-3.3.1 app/finders/wp_version/readme.rb
wpscan-3.3.0 app/finders/wp_version/readme.rb
wpscan-3.2.1 app/finders/wp_version/readme.rb
wpscan-3.2.0 app/finders/wp_version/readme.rb
wpscan-3.1.0 app/finders/wp_version/readme.rb
wpscan-3.0.8 app/finders/wp_version/readme.rb
wpscan-3.0.7 app/finders/wp_version/readme.rb