class WpTheme

Attributes

style_url[R]
version[R]

Public Class Methods

find(target_uri) click to toggle source
# File lib/wpscan/wp_theme.rb, line 44
def self.find(target_uri)
  self.methods.grep(%rfind_from_/).each do |method_to_call|
    theme = self.send(method_to_call, target_uri)

    return theme if theme
  end
  nil
end
new(options = {}) click to toggle source
# File lib/wpscan/wp_theme.rb, line 25
def initialize(options = {})
  options[:vulns_file]    = (options[:vulns_file] != nil and options[:vulns_file] != "") ?
      options[:vulns_file] : DATA_DIR + "/wp_theme_vulns.xml"
  options[:vulns_xpath] = "//theme[@name='$name$']/vulnerability"
  options[:type]        = "themes"
  @version              = options[:version]
  @style_url            = options[:style_url]
  super(options)
end

Protected Class Methods

find_from_wooframework(target_uri) click to toggle source

code.google.com/p/wpscan/issues/detail?id=141

# File lib/wpscan/wp_theme.rb, line 78
def self.find_from_wooframework(target_uri)
  body = Browser.instance.get(target_uri.to_s).body
  regexp = %r{<meta name="generator" content="([^\s"]+)\s?([^"]+)?" />\s+<meta name="generator" content="WooFramework\s?([^"]+)?" />}

  matches = regexp.match(body)
  if matches
    woo_theme_name = matches[1]
    woo_theme_version = matches[2]
    woo_framework_version = matches[3] # Not used at this time

    return new(:name            => woo_theme_name,
               :version         => woo_theme_version,
               :base_url        => matches[0],
               :path            => "",
               :wp_content_dir  => ""
    )
  end
end

Public Instance Methods

===(wp_theme) click to toggle source
# File lib/wpscan/wp_theme.rb, line 53
def ===(wp_theme)
  wp_theme.name === @name and wp_theme.version === @version
end