Sha256: 6a25d14bbfca754b05953a7a86e476d4e51779e9f9e52de533b7a2760a7e46b4
Contents?: true
Size: 1.22 KB
Versions: 8
Compression:
Stored size: 1.22 KB
Contents
module WPScan module Finders module WpVersion # RSS Generator Version Finder class RSSGenerator < CMSScanner::Finders::Finder include Finder::WpVersion::SmartURLChecker def process_urls(urls, _opts = {}) found = Findings.new urls.each do |url| res = Browser.get_and_follow_location(url) res.html.xpath('//comment()[contains(., "wordpress")] | //generator').each do |node| node_text = node.text.to_s.strip next unless node_text =~ %r{\Ahttps?://wordpress\.(?:[a-z]+)/\?v=(.*)\z}i || node_text =~ %r{\Agenerator="wordpress/([^"]+)"\z}i found << create_version( Regexp.last_match[1], found_by: found_by, entries: ["#{res.effective_url}, #{node.to_s.strip}"] ) end end found end def passive_urls_xpath '//link[@rel="alternate" and @type="application/rss+xml"]' end def aggressive_urls(_opts = {}) %w[feed/ comments/feed/ feed/rss/ feed/rss2/].reduce([]) do |a, uri| a << target.url(uri) end end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems