module WPScan
module Finders
module WpVersion
class Readme < CMSScanner::Finders::Finder
def aggressive(_opts = {})
readme_url = target.url('readme.html')
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 Model::WpVersion.valid?(number)
Model::WpVersion.new(
number,
found_by: 'Readme (Aggressive Detection)',
confidence: number >= '4.7' ? 10 : 90,
interesting_entries: ["#{readme_url}, Match: '#{node.text.to_s.strip}'"]
)
end
end
end
end
end