diff --git a/doc/Browser.html b/doc/Browser.html index 05663b73..fa094476 100644 --- a/doc/Browser.html +++ b/doc/Browser.html @@ -81,8 +81,6 @@
  • #post
  • -
  • #replace_variables_in_url
  • -
  • #user_agent
  • #user_agent_mode=
  • @@ -294,7 +292,7 @@
    -# File lib/browser.rb, line 58
    +# File lib/browser.rb, line 57
     def self.instance(options = {})
       unless @@instance
         @@instance = new(options)
    @@ -330,7 +328,7 @@
                 
                 
    -# File lib/browser.rb, line 65
    +# File lib/browser.rb, line 64
     def self.reset
       @@instance = nil
     end
    @@ -369,10 +367,10 @@
    -# File lib/browser.rb, line 141
    +# File lib/browser.rb, line 140
     def forge_request(url, params = {})
       Typhoeus::Request.new(
    -    replace_variables_in_url(url),
    +    url.to_s,
         merge_request_params(params)
       )
     end
    @@ -405,7 +403,7 @@
    -# File lib/browser.rb, line 129
    +# File lib/browser.rb, line 128
     def get(url, params = {})
       run_request(
         forge_request(url, params.merge(:method => :get))
    @@ -443,7 +441,7 @@ browser object, hydra will not have the new @max_threads and
                 
                 
    -# File lib/browser.rb, line 102
    +# File lib/browser.rb, line 101
     def load_config(config_file = nil)
       @config_file = config_file || @config_file
     
    @@ -484,7 +482,7 @@ browser object, hydra will not have the new @max_threads and
                 
                 
    -# File lib/browser.rb, line 94
    +# File lib/browser.rb, line 93
     def max_threads=(max_threads)
       if max_threads.nil? or max_threads <= 0
         max_threads = 1
    @@ -520,7 +518,7 @@ browser object, hydra will not have the new @max_threads and
                 
                 
    -# File lib/browser.rb, line 159
    +# File lib/browser.rb, line 147
     def merge_request_params(params = {})
       if @proxy
         params = params.merge(:proxy => @proxy)
    @@ -576,7 +574,7 @@ browser object, hydra will not have the new @max_threads and
                 
                 
    -# File lib/browser.rb, line 135
    +# File lib/browser.rb, line 134
     def post(url, params = {})
       run_request(
         forge_request(url, params.merge(:method => :post))
    @@ -611,7 +609,7 @@ browser object, hydra will not have the new @max_threads and
                 
                 
    -# File lib/browser.rb, line 82
    +# File lib/browser.rb, line 81
     def user_agent
       case @user_agent_mode
       when "semi-static"
    @@ -652,7 +650,7 @@ browser object, hydra will not have the new @max_threads and
                 
                 
    -# File lib/browser.rb, line 69
    +# File lib/browser.rb, line 68
     def user_agent_mode=(ua_mode)
       ua_mode ||= "static"
     
    @@ -676,50 +674,6 @@ browser object, hydra will not have the new @max_threads and
           
           
    -
    -

    Protected Instance Methods

    - - -
    - - - -
    - replace_variables_in_url(url) - click to toggle source -
    - - -
    - -

    return string

    - - - -
    -
    -# File lib/browser.rb, line 149
    -def replace_variables_in_url(url)
    -  @variables_to_replace_in_url ||= {}
    -
    -  @variables_to_replace_in_url.each do |subject, replacement|
    -    url.gsub!(subject, replacement)
    -  end
    -  url
    -end
    -
    - -
    - - - - -
    - - -
    -
    diff --git a/doc/WpDetector.html b/doc/WpDetector.html index d7f07f8b..73e48aa8 100644 --- a/doc/WpDetector.html +++ b/doc/WpDetector.html @@ -231,7 +231,7 @@ WpOptions.check_options(options) result = items - unless items == nil or items.length == 0 + if items == nil or items.length == 0 result = passive_detection(options[:url], options[:type], options[:wp_content_dir]) end @@ -240,7 +240,7 @@ already_present = false result.each do |r| # Already found via passive detection - if r.name == enum_result.name + if r[:name] == enum_result[:name] already_present = true break end @@ -298,7 +298,12 @@ names.uniq! names.each do |item| - items << { :url => url, :name => item, :path => "#{type}/#{item}" } + items << { + :url => url, + :name => item, + :path => "#{type}/#{item}/", + :wp_content_dir => wp_content_dir + } end items end
    diff --git a/doc/WpEnumerator.html b/doc/WpEnumerator.html index 5a12e907..c19d7a48 100644 --- a/doc/WpEnumerator.html +++ b/doc/WpEnumerator.html @@ -213,7 +213,7 @@
    enumerate(options = {}) + class="method-args">(options = {}, items = nil) click to toggle source
    @@ -247,12 +247,18 @@
     # File lib/wpscan/wp_enumerator.rb, line 33
    -def self.enumerate(options = {})
    +def self.enumerate(options = {}, items = nil)
     
       WpOptions.check_options(options)
     
       targets = self.generate_items(options)
     
    +  unless items == nil
    +    items.each do |i|
    +      targets << i
    +    end
    +  end
    +
       found = []
       queue_count = 0
       request_count = 0
    @@ -261,7 +267,11 @@
       enumerate_size = targets.size
     
       targets.each do |target|
    -    url = target.get_url
    +    if options[:type] =~ /timthumbs/
    +      url = "#{target[:url]}#{target[:wp_content_dir]}/#{target[:path]}"
    +    else
    +      url = "#{target[:url]}#{target[:wp_content_dir]}/#{options[:type]}/#{target[:path]}"
    +    end
         request = enum_browser.forge_request(url, :cache_timeout => 0, :follow_location => true)
         request_count += 1
     
    diff --git a/doc/WpItem.html b/doc/WpItem.html
    index fbc54d34..b2259a13 100644
    --- a/doc/WpItem.html
    +++ b/doc/WpItem.html
    @@ -61,6 +61,8 @@
               
               
  • #==
  • +
  • #changelog_url
  • +
  • #directory_listing?
  • #extract_name_from_url
  • @@ -69,8 +71,14 @@
  • #get_url_without_filename
  • +
  • #has_changelog?
  • + +
  • #has_readme?
  • +
  • #location_uri_from_file_url
  • +
  • #readme_url
  • +
  • #to_s
  • #version
  • @@ -290,7 +298,7 @@
    -# File lib/wpscan/modules/wp_item.rb, line 59
    +# File lib/wpscan/modules/wp_item.rb, line 64
     def <=>(item)
       item.name <=> @name
     end
    @@ -323,7 +331,7 @@
    -# File lib/wpscan/modules/wp_item.rb, line 55
    +# File lib/wpscan/modules/wp_item.rb, line 60
     def ==(item)
       item.name == @name
     end
    @@ -337,6 +345,39 @@
    +
    + + + +
    + changelog_url() + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_item.rb, line 80
    +def changelog_url
    +  get_url_without_filename.merge("changelog.txt")
    +end
    +
    + +
    + + + + +
    + +
    @@ -356,7 +397,7 @@
    -# File lib/wpscan/modules/wp_item.rb, line 41
    +# File lib/wpscan/modules/wp_item.rb, line 46
     def directory_listing?
       # Need to remove to file part from the url
       Browser.instance.get(location_uri_from_file_url(get_url.to_s)).body[%{<title>Index of}] ? true : false
    @@ -390,7 +431,7 @@
                 
                 
    -# File lib/wpscan/modules/wp_item.rb, line 46
    +# File lib/wpscan/modules/wp_item.rb, line 51
     def extract_name_from_url(url)
       url.to_s[%{^(https?://.*/([^/]+)/)}, 2]
     end
    @@ -458,8 +499,13 @@
     # File lib/wpscan/modules/wp_item.rb, line 27
     def get_url_without_filename
    -  uri = get_url
    -  URI.parse("#{uri.scheme}://#{uri.host}#{File.dirname(uri.path)}")
    +  matches = @path.match(%{^(.*/).*$})
    +  if matches == nil or matches.length < 2
    +    dirname = @path
    +  else
    +    dirname = matches[1]
    +  end
    +  URI.parse("#{@url.to_s}#@wp_content_dir/#{dirname}")
     end
    @@ -471,6 +517,80 @@
    +
    + + + +
    + has_changelog?() + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_item.rb, line 92
    +def has_changelog?
    +  unless @changelog
    +    status = Browser.instance.get(changelog_url).code
    +    @changelog = status == 200 ? true : false
    +  end
    +  @changelog
    +end
    +
    + +
    + + + + +
    + + +
    + + + +
    + has_readme?() + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_item.rb, line 84
    +def has_readme?
    +  unless @readme
    +    status = Browser.instance.get(readme_url).code
    +    @readme = status == 200 ? true : false
    +  end
    +  @readme
    +end
    +
    + +
    + + + + +
    + +
    @@ -490,7 +610,7 @@
    -# File lib/wpscan/modules/wp_item.rb, line 63
    +# File lib/wpscan/modules/wp_item.rb, line 68
     def location_uri_from_file_url(location_url)
       valid_location_url = location_url[%{^(https?://.*/)[^.]+\.[^/]+$}, 1]
       unless valid_location_url
    @@ -508,6 +628,39 @@
             
    +
    + + + +
    + readme_url() + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_item.rb, line 76
    +def readme_url
    +  get_url_without_filename.merge("readme.txt")
    +end
    +
    + +
    + + + + +
    + +
    @@ -527,10 +680,10 @@
    -# File lib/wpscan/modules/wp_item.rb, line 50
    +# File lib/wpscan/modules/wp_item.rb, line 55
     def to_s
       item_version = version
    -  "#@name#{' v' + item_version if item_version}"
    +  "#@name#{' v' + item_version.strip if item_version}"
     end
    @@ -561,7 +714,7 @@
    -# File lib/wpscan/modules/wp_item.rb, line 32
    +# File lib/wpscan/modules/wp_item.rb, line 37
     def version
       unless @version
         response = Browser.instance.get(get_url.merge("readme.txt").to_s)
    diff --git a/doc/WpOptions.html b/doc/WpOptions.html
    index b39660b8..2334d301 100644
    --- a/doc/WpOptions.html
    +++ b/doc/WpOptions.html
    @@ -264,7 +264,7 @@
       raise("error_404_hash must be set")       unless options[:error_404_hash] != nil and options[:error_404_hash].length > 0
       raise("type must be set")                 unless options[:type] != nil and options[:type].length > 0
     
    -  unless options[:type] =~ /plugins/ or options[:type] =~ /themes/
    +  unless options[:type] =~ /plugins/ or options[:type] =~ /themes/ or options[:type] =~ /timthumbs/
         raise("Unknown type #{options[:type]}")
       end
     end
    diff --git a/doc/WpPlugins.html b/doc/WpPlugins.html index c4d96623..7d862f5b 100644 --- a/doc/WpPlugins.html +++ b/doc/WpPlugins.html @@ -227,8 +227,17 @@ options[:vulns_xpath] = "//plugin[@name='#{@name}']/vulnerability" options[:vulns_xpath_2] = "//plugin" options[:type] = "plugins" - result = WpDetector.aggressive_detection(options) - result.sort_by { |p| p.name } + result = WpDetector.aggressive_detection(options) + plugins = [] + result.each do |r| + plugins << WpPlugin.new( + :url => r[:url], + :path => r[:path], + :wp_content_dir => r[:wp_content_dir], + :name => r[:name] + ) + end + plugins.sort_by { |p| p.name } end
    @@ -267,7 +276,7 @@ plugins can be found in the source code :

    -# File lib/wpscan/modules/wp_plugins.rb, line 40
    +# File lib/wpscan/modules/wp_plugins.rb, line 49
     def plugins_from_passive_detection(wp_content_dir)
       plugins = []
       temp = WpDetector.passive_detection(url(), "plugins", wp_content_dir)
    diff --git a/doc/WpTarget.html b/doc/WpTarget.html
    index a9013d20..4a570428 100644
    --- a/doc/WpTarget.html
    +++ b/doc/WpTarget.html
    @@ -628,7 +628,7 @@
     
     # File lib/wpscan/wp_target.rb, line 86
     def version
    -  WpVersion.find(@uri)
    +  WpVersion.find(@uri, wp_content_dir)
     end
    diff --git a/doc/WpTimthumbs.html b/doc/WpTimthumbs.html index 05b5d1b6..63071a0b 100644 --- a/doc/WpTimthumbs.html +++ b/doc/WpTimthumbs.html @@ -57,16 +57,12 @@

    Methods

    @@ -201,45 +197,6 @@ -
    -

    Public Class Methods

    - - -
    - - - -
    - timthumbs_file(timthumbs_file_path = nil) - click to toggle source -
    - - -
    - - - - - -
    -
    -# File lib/wpscan/modules/wp_timthumbs.rb, line 88
    -def self.timthumbs_file(timthumbs_file_path = nil)
    -  timthumbs_file_path || DATA_DIR + "/timthumbs.txt"
    -end
    -
    - -
    - - - - -
    - - -
    -

    Public Instance Methods

    @@ -250,7 +207,7 @@
    has_timthumbs?(options = {}) + class="method-args">(theme_name, options = {}) click to toggle source
    @@ -264,8 +221,8 @@
     # File lib/wpscan/modules/wp_timthumbs.rb, line 24
    -def has_timthumbs?(options = {})
    -  !timthumbs(options).empty?
    +def has_timthumbs?(theme_name, options = {})
    +  !timthumbs(theme_name, options).empty?
     end
    @@ -283,61 +240,36 @@
    timthumbs(options = {}) + class="method-args">(theme_name = nil, options = {}) click to toggle source
    -

    Available options :

    - -
    :theme_name
    -:timthumbs_file
    -:show_progress_bar - default false
    - -

    return array of string (url of timthumbs found), can be empty

    +
    -# File lib/wpscan/modules/wp_timthumbs.rb, line 34
    -def timthumbs(options = {})
    +# File lib/wpscan/modules/wp_timthumbs.rb, line 28
    +def timthumbs(theme_name = nil, options = {})
       if @wp_timthumbs.nil?
    -    browser           = Browser.instance
    -    hydra             = browser.hydra
    -    found_timthumbs   = []
    -    request_count     = 0
    -    queue_count       = 0
    -    targets_url       = timthumbs_targets_url(options)
    -    show_progress_bar = options[:show_progress_bar] || false
    +    options[:type] = "timthumbs"
    +    options[:only_vulnerable_ones] = false
    +    options[:file] = DATA_DIR + "/timthumbs.txt"
    +    options[:vulns_file] = "xxx"
    +    options[:vulns_xpath] = "xxx"
    +    options[:vulns_xpath_2] = "xxx"
     
    -    targets_url.each do |target_url|
    -      request       = browser.forge_request(target_url, :cache_timeout => 0)
    -      request_count += 1
    -
    -      request.on_complete do |response|
    -
    -        print "\rChecking for " + targets_url.size.to_s + " total timthumb files... #{(request_count * 100) / targets_url.size}% complete." if show_progress_bar
    -
    -        if response.body =~ /no image specified/
    -          found_timthumbs << target_url
    -        end
    -      end
    -
    -      hydra.queue(request)
    -      queue_count += 1
    -
    -      if queue_count == browser.max_threads
    -        hydra.run
    -        queue_count = 0
    -      end
    +    WpOptions.check_options(options)
    +    if theme_name == nil
    +      custom_items = nil
    +    else
    +      custom_items = targets_url_from_theme(theme_name, options)
         end
    -
    -    hydra.run
    -
    -    @wp_timthumbs = found_timthumbs
    +    @wp_timthumbs = WpEnumerator.enumerate(options, custom_items)
       end
       @wp_timthumbs
     end
    @@ -351,50 +283,6 @@
    -
    - - - -
    - timthumbs_targets_url(options = {}) - click to toggle source -
    - - -
    - -

    Available options :

    - -
    :theme_name
    -:timthumbs_file
    - -

    retrun array of string

    - - - -
    -
    -# File lib/wpscan/modules/wp_timthumbs.rb, line 78
    -def timthumbs_targets_url(options = {})
    -  targets        = options[:theme_name] ? targets_url_from_theme(options[:theme_name]) : []
    -  timthumbs_file = WpTimthumbs.timthumbs_file(options[:timthumbs_file])
    -  targets        += File.open(timthumbs_file, 'r') {|file| file.readlines.collect{|line| @uri.merge(line.chomp).to_s}}
    -
    -  targets.uniq!
    -  # randomize the array to *maybe* help in some crappy IDS/IPS/WAF evasion
    -  targets.sort_by! { rand }
    -end
    -
    - -
    - - - - -
    - -
    @@ -407,7 +295,7 @@
    targets_url_from_theme(theme_name) + class="method-args">(theme_name, options) click to toggle source
    @@ -420,8 +308,8 @@
    -# File lib/wpscan/modules/wp_timthumbs.rb, line 93
    -def targets_url_from_theme(theme_name)
    +# File lib/wpscan/modules/wp_timthumbs.rb, line 49
    +def targets_url_from_theme(theme_name, options)
       targets    = []
       theme_name = URI.escape(theme_name)
     
    @@ -429,7 +317,12 @@
         'timthumb.php', 'lib/timthumb.php', 'inc/timthumb.php', 'includes/timthumb.php',
         'scripts/timthumb.php', 'tools/timthumb.php', 'functions/timthumb.php'
       ].each do |file|
    -    targets << @uri.merge("wp-content/themes/#{theme_name}/#{file}").to_s
    +    targets << {
    +        :url            => options[:url],
    +        :path           => "themes/#{theme_name}/#{file}",
    +        :wp_content_dir => options[:wp_content_dir],
    +        :name           => options[:name]
    +    }
       end
       targets
     end
    diff --git a/doc/WpVersion.html b/doc/WpVersion.html index d1dc0fb7..c0e2275b 100644 --- a/doc/WpVersion.html +++ b/doc/WpVersion.html @@ -262,7 +262,7 @@
    find(target_uri) + class="method-args">(target_uri, wp_content_dir) click to toggle source
    @@ -287,9 +287,13 @@ etc)

     # File lib/wpscan/wp_version.rb, line 39
    -def self.find(target_uri)
    +def self.find(target_uri, wp_content_dir)
    +  options = {
    +      :url            => target_uri,
    +      :wp_content_dir => wp_content_dir
    +  }
       self.methods.grep(/find_from_/).each do |method_to_call|
    -    version = self.send(method_to_call, target_uri)
    +    version = self.send(method_to_call, options)
     
         if version
           return new(version, :discovery_method => method_to_call[%{find_from_(.*)}, 1].gsub('_', ' '))
    @@ -355,7 +359,7 @@ etc)

    find_from_advanced_fingerprinting(target_uri) + class="method-args">(options) click to toggle source
    @@ -383,14 +387,18 @@ file across all versions of wordpress.

    -# File lib/wpscan/wp_version.rb, line 88
    -def self.find_from_advanced_fingerprinting(target_uri)
    +# File lib/wpscan/wp_version.rb, line 94
    +def self.find_from_advanced_fingerprinting(options)
    +  target_uri = options[:url]
       xml = Nokogiri::XML(File.open(DATA_DIR + '/wp_versions.xml')) do |config|
         config.noblanks
       end
     
       xml.xpath("//file").each do |node|
    +    wp_content = options[:wp_content_dir]
    +    wp_plugins = "#{wp_content}/plugins"
         file_url = target_uri.merge(node.attribute('src').text).to_s
    +    file_url = file_url.gsub(/\$wp-plugins\$/, wp_plugins).gsub(/\$wp-content\$/, wp_content)
         response = Browser.instance.get(file_url)
         md5sum   = Digest::MD5.hexdigest(response.body)
     
    @@ -418,7 +426,7 @@ file across all versions of wordpress.

    find_from_meta_generator(target_uri) + class="method-args">(options) click to toggle source
    @@ -435,8 +443,9 @@ upgrade.

    -# File lib/wpscan/wp_version.rb, line 57
    -def self.find_from_meta_generator(target_uri)
    +# File lib/wpscan/wp_version.rb, line 61
    +def self.find_from_meta_generator(options)
    +  target_uri = options[:url]
       response = Browser.instance.get(target_uri.to_s, :follow_location => true, :max_redirects => 2)
     
       response.body[%{name="generator" content="wordpress ([^"]+)"}, 1]
    @@ -457,7 +466,7 @@ upgrade.

    find_from_readme(target_uri) + class="method-args">(options) click to toggle source
    @@ -470,8 +479,9 @@ upgrade.

    -# File lib/wpscan/wp_version.rb, line 107
    -def self.find_from_readme(target_uri)
    +# File lib/wpscan/wp_version.rb, line 117
    +def self.find_from_readme(options)
    +  target_uri = options[:url]
       Browser.instance.get(target_uri.merge("readme.html").to_s).body[%{<br />\sversion #{WpVersion.version_pattern}}, 1]
     end
    @@ -490,7 +500,7 @@ upgrade.

    find_from_rss_generator(target_uri) + class="method-args">(options) click to toggle source
    @@ -503,8 +513,9 @@ upgrade.

    -# File lib/wpscan/wp_version.rb, line 63
    -def self.find_from_rss_generator(target_uri)
    +# File lib/wpscan/wp_version.rb, line 68
    +def self.find_from_rss_generator(options)
    +  target_uri = options[:url]
       response = Browser.instance.get(target_uri.merge("feed/").to_s, :follow_location => true, :max_redirects => 2)
     
       response.body[%{<generator>http://wordpress.org/\?v=([^<]+)</generator>}, 1]
    @@ -525,7 +536,7 @@ upgrade.

    find_from_sitemap_generator(target_uri) + class="method-args">(options) click to toggle source
    @@ -539,8 +550,9 @@ href="http://code.google.com/p/wpscan/issues/detail?id=109">code.google.com/p/wp
    -# File lib/wpscan/wp_version.rb, line 112
    -def self.find_from_sitemap_generator(target_uri)
    +# File lib/wpscan/wp_version.rb, line 123
    +def self.find_from_sitemap_generator(options)
    +  target_uri = options[:url]
       Browser.instance.get(target_uri.merge("sitemap.xml").to_s).body[%{generator="wordpress/#{WpVersion.version_pattern}"}, 1]
     end
    @@ -573,7 +585,7 @@ one ‘.’

    -# File lib/wpscan/wp_version.rb, line 117
    +# File lib/wpscan/wp_version.rb, line 129
     def self.version_pattern
       '(.*(?=.)(?=.*\d)(?=.*[.]).*)'
     end
    diff --git a/doc/created.rid b/doc/created.rid index b5ddb543..9e28689b 100644 --- a/doc/created.rid +++ b/doc/created.rid @@ -1,6 +1,6 @@ -Sun, 16 Sep 2012 10:27:57 +0200 +Sun, 16 Sep 2012 23:51:12 +0200 ./CREDITS Thu, 13 Sep 2012 22:54:08 +0200 -./lib/browser.rb Sat, 15 Sep 2012 08:03:56 +0200 +./lib/browser.rb Sun, 16 Sep 2012 15:18:58 +0200 ./lib/cache_file_store.rb Sat, 15 Sep 2012 08:04:03 +0200 ./lib/common_helper.rb Sat, 15 Sep 2012 08:04:08 +0200 ./lib/environment.rb Sat, 15 Sep 2012 08:04:16 +0200 @@ -14,22 +14,22 @@ Sun, 16 Sep 2012 10:27:57 +0200 ./lib/wpscan/modules/web_site.rb Sat, 15 Sep 2012 08:01:06 +0200 ./lib/wpscan/modules/wp_config_backup.rb Sat, 15 Sep 2012 08:01:11 +0200 ./lib/wpscan/modules/wp_full_path_disclosure.rb Sat, 15 Sep 2012 08:01:17 +0200 -./lib/wpscan/modules/wp_item.rb Sun, 16 Sep 2012 10:26:21 +0200 +./lib/wpscan/modules/wp_item.rb Sun, 16 Sep 2012 16:42:37 +0200 ./lib/wpscan/modules/wp_login_protection.rb Sun, 16 Sep 2012 10:26:51 +0200 -./lib/wpscan/modules/wp_plugins.rb Sun, 16 Sep 2012 10:27:05 +0200 +./lib/wpscan/modules/wp_plugins.rb Sun, 16 Sep 2012 12:02:47 +0200 ./lib/wpscan/modules/wp_readme.rb Sat, 15 Sep 2012 08:01:52 +0200 -./lib/wpscan/modules/wp_themes.rb Sun, 16 Sep 2012 10:27:17 +0200 -./lib/wpscan/modules/wp_timthumbs.rb Sat, 15 Sep 2012 08:01:58 +0200 +./lib/wpscan/modules/wp_themes.rb Sun, 16 Sep 2012 12:03:41 +0200 +./lib/wpscan/modules/wp_timthumbs.rb Sun, 16 Sep 2012 23:27:21 +0200 ./lib/wpscan/modules/wp_usernames.rb Sat, 15 Sep 2012 08:02:04 +0200 ./lib/wpscan/msfrpc_client.rb Sat, 15 Sep 2012 08:02:28 +0200 ./lib/wpscan/vulnerable.rb Sat, 15 Sep 2012 08:02:37 +0200 -./lib/wpscan/wp_detector.rb Sun, 16 Sep 2012 10:25:30 +0200 -./lib/wpscan/wp_enumerator.rb Sun, 16 Sep 2012 10:25:41 +0200 -./lib/wpscan/wp_options.rb Sat, 15 Sep 2012 23:15:59 +0200 +./lib/wpscan/wp_detector.rb Sun, 16 Sep 2012 12:45:39 +0200 +./lib/wpscan/wp_enumerator.rb Sun, 16 Sep 2012 23:22:48 +0200 +./lib/wpscan/wp_options.rb Sun, 16 Sep 2012 23:02:21 +0200 ./lib/wpscan/wp_plugin.rb Sun, 16 Sep 2012 10:27:39 +0200 -./lib/wpscan/wp_target.rb Sat, 15 Sep 2012 23:32:52 +0200 +./lib/wpscan/wp_target.rb Sun, 16 Sep 2012 23:48:55 +0200 ./lib/wpscan/wp_theme.rb Sun, 16 Sep 2012 10:27:45 +0200 -./lib/wpscan/wp_version.rb Sat, 15 Sep 2012 08:03:04 +0200 +./lib/wpscan/wp_version.rb Sun, 16 Sep 2012 23:48:18 +0200 ./lib/wpscan/wp_vulnerability.rb Sat, 15 Sep 2012 08:03:09 +0200 ./lib/wpscan/wpscan_helper.rb Sat, 15 Sep 2012 21:19:30 +0200 ./lib/wpscan/wpscan_options.rb Sun, 16 Sep 2012 10:10:51 +0200 @@ -37,5 +37,5 @@ Sun, 16 Sep 2012 10:27:57 +0200 ./lib/wpstools/parse_svn.rb Sat, 15 Sep 2012 23:36:25 +0200 ./lib/wpstools/wpstools_helper.rb Sat, 15 Sep 2012 08:03:49 +0200 ./README Thu, 13 Sep 2012 22:54:08 +0200 -./wpscan.rb Sun, 16 Sep 2012 10:23:36 +0200 +./wpscan.rb Sun, 16 Sep 2012 23:28:12 +0200 ./wpstools.rb Sat, 15 Sep 2012 08:06:35 +0200 diff --git a/doc/index.html b/doc/index.html index 3f5b6743..080997c6 100644 --- a/doc/index.html +++ b/doc/index.html @@ -125,10 +125,10 @@
  • ::enumerate — WpEnumerator
  • -
  • ::find — WpTheme
  • -
  • ::find — WpVersion
  • +
  • ::find — WpTheme
  • +
  • ::find_from_advanced_fingerprinting — WpVersion
  • ::find_from_css_link — WpTheme
  • @@ -161,38 +161,36 @@
  • ::malwares_file — Malwares
  • +
  • ::new — Exploit
  • + +
  • ::new — WpTarget
  • + +
  • ::new — WpPlugin
  • +
  • ::new — WpscanOptions
  • +
  • ::new — WpVersion
  • + +
  • ::new — CacheFileStore
  • + +
  • ::new — Updater
  • + +
  • ::new — Generate_List
  • +
  • ::new — WpVulnerability
  • ::new — RpcClient
  • -
  • ::new — WpPlugin
  • - -
  • ::new — CacheFileStore
  • - -
  • ::new — WpVersion
  • - -
  • ::new — Generate_List
  • - -
  • ::new — Updater
  • +
  • ::new — WpTheme
  • ::new — Svn_Parser
  • -
  • ::new — WpTarget
  • - -
  • ::new — Exploit
  • - -
  • ::new — WpTheme
  • -
  • ::option_to_instance_variable_setter — WpscanOptions
  • ::passive_detection — WpDetector
  • ::reset — Browser
  • -
  • ::timthumbs_file — WpTimthumbs
  • -
  • ::valid_response_codes — WpTarget
  • ::version_pattern — WpVersion
  • @@ -221,6 +219,8 @@
  • #brute_force — BruteForce
  • +
  • #changelog_url — WpItem
  • +
  • #choose_session — Exploit
  • #clean — CacheFileStore
  • @@ -285,6 +285,8 @@
  • #has_bluetrait_event_viewer_protection? — WpLoginProtection
  • +
  • #has_changelog? — WpItem
  • +
  • #has_debug_log? — WpTarget
  • #has_full_path_disclosure? — WpFullPathDisclosure
  • @@ -305,6 +307,8 @@
  • #has_readme? — WpReadme
  • +
  • #has_readme? — WpItem
  • +
  • #has_simple_login_lockdown_protection? — WpLoginProtection
  • #has_timthumbs? — WpTimthumbs
  • @@ -325,22 +329,22 @@
  • #jobs — RpcClient
  • -
  • #kill_session — RpcClient
  • -
  • #kill_session — Exploit
  • +
  • #kill_session — RpcClient
  • +
  • #last_session_id — Exploit
  • #limit_login_attempts_url — WpLoginProtection
  • #load_config — Browser
  • -
  • #local_revision_number — SvnUpdater
  • -
  • #local_revision_number — GitUpdater
  • #local_revision_number — Updater
  • +
  • #local_revision_number — SvnUpdater
  • +
  • #location_uri_from_file_url — WpItem
  • #login — RpcClient
  • @@ -361,10 +365,10 @@
  • #meterpreter_read — Exploit
  • -
  • #meterpreter_write — Exploit
  • -
  • #meterpreter_write — RpcClient
  • +
  • #meterpreter_write — Exploit
  • +
  • #parse — Svn_Parser
  • #plugins_from_aggressive_detection — WpPlugins
  • @@ -379,15 +383,15 @@
  • #read_entry — CacheFileStore
  • -
  • #read_shell — Exploit
  • -
  • #read_shell — RpcClient
  • +
  • #read_shell — Exploit
  • +
  • #readme_url — WpReadme
  • -
  • #redirection — WebSite
  • +
  • #readme_url — WpItem
  • -
  • #replace_variables_in_url — Browser
  • +
  • #redirection — WebSite
  • #repo_directory_arguments — GitUpdater
  • @@ -419,20 +423,18 @@
  • #timthumbs — WpTimthumbs
  • -
  • #timthumbs_targets_url — WpTimthumbs
  • -
  • #to_h — WpscanOptions
  • -
  • #to_s — WpItem
  • -
  • #to_s — WpTheme
  • +
  • #to_s — WpItem
  • +
  • #update — Updater
  • -
  • #update — GitUpdater
  • -
  • #update — SvnUpdater
  • +
  • #update — GitUpdater
  • +
  • #url — WpTarget
  • #url= — WpscanOptions
  • @@ -459,10 +461,10 @@
  • #write_entry — CacheFileStore
  • -
  • #write_shell — RpcClient
  • -
  • #write_shell — Exploit
  • +
  • #write_shell — RpcClient
  • +
  • #xmlrpc_url — WebSite
  • diff --git a/doc/lib/browser_rb.html b/doc/lib/browser_rb.html index 90a9e372..16915803 100644 --- a/doc/lib/browser_rb.html +++ b/doc/lib/browser_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:03:56 +0200
    +
    2012-09-16 15:18:58 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/wp_item_rb.html b/doc/lib/wpscan/modules/wp_item_rb.html index 2a56eb3a..66b6f90f 100644 --- a/doc/lib/wpscan/modules/wp_item_rb.html +++ b/doc/lib/wpscan/modules/wp_item_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-16 10:26:21 +0200
    +
    2012-09-16 16:42:37 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/wp_plugins_rb.html b/doc/lib/wpscan/modules/wp_plugins_rb.html index e23e3f94..60035bc5 100644 --- a/doc/lib/wpscan/modules/wp_plugins_rb.html +++ b/doc/lib/wpscan/modules/wp_plugins_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-16 10:27:05 +0200
    +
    2012-09-16 12:02:47 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/wp_timthumbs_rb.html b/doc/lib/wpscan/modules/wp_timthumbs_rb.html index 54420ab4..4d0cfb92 100644 --- a/doc/lib/wpscan/modules/wp_timthumbs_rb.html +++ b/doc/lib/wpscan/modules/wp_timthumbs_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:01:58 +0200
    +
    2012-09-16 23:27:21 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_detector_rb.html b/doc/lib/wpscan/wp_detector_rb.html index f097cbb4..1dce5688 100644 --- a/doc/lib/wpscan/wp_detector_rb.html +++ b/doc/lib/wpscan/wp_detector_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-16 10:25:30 +0200
    +
    2012-09-16 12:45:39 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_enumerator_rb.html b/doc/lib/wpscan/wp_enumerator_rb.html index 667412ec..5daebfde 100644 --- a/doc/lib/wpscan/wp_enumerator_rb.html +++ b/doc/lib/wpscan/wp_enumerator_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-16 10:25:41 +0200
    +
    2012-09-16 23:22:48 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_options_rb.html b/doc/lib/wpscan/wp_options_rb.html index b50798b1..a3c06ace 100644 --- a/doc/lib/wpscan/wp_options_rb.html +++ b/doc/lib/wpscan/wp_options_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 23:15:59 +0200
    +
    2012-09-16 23:02:21 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_target_rb.html b/doc/lib/wpscan/wp_target_rb.html index 9c10cb8d..a97fc655 100644 --- a/doc/lib/wpscan/wp_target_rb.html +++ b/doc/lib/wpscan/wp_target_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 23:32:52 +0200
    +
    2012-09-16 23:48:55 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_version_rb.html b/doc/lib/wpscan/wp_version_rb.html index 6784d5c4..ba7efd34 100644 --- a/doc/lib/wpscan/wp_version_rb.html +++ b/doc/lib/wpscan/wp_version_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:03:04 +0200
    +
    2012-09-16 23:48:18 +0200
    Requires
    diff --git a/doc/wpscan_rb.html b/doc/wpscan_rb.html index 0e961134..1b22799c 100644 --- a/doc/wpscan_rb.html +++ b/doc/wpscan_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-16 10:23:36 +0200
    +
    2012-09-16 23:28:12 +0200
    Requires