From 1073da25c1e1d53ec392db8b080482e07a1508cb Mon Sep 17 00:00:00 2001 From: Christian Mehlmauer Date: Wed, 19 Sep 2012 22:43:34 +0200 Subject: [PATCH] rdoc --- doc/Array.html | 2 + doc/Browser.html | 2 + doc/BruteForce.html | 12 +- doc/CREDITS.html | 2 + doc/CacheFileStore.html | 2 + doc/Exploit.html | 2 + doc/Generate_List.html | 2 + doc/GitUpdater.html | 2 + doc/Malwares.html | 2 + doc/Object.html | 2 + doc/README.html | 2 + doc/RpcClient.html | 2 + doc/SvnUpdater.html | 2 + doc/Svn_Parser.html | 2 + doc/Updater.html | 2 + doc/UpdaterFactory.html | 2 + doc/Vulnerable.html | 8 +- doc/WebSite.html | 14 +- doc/WpConfigBackup.html | 2 + doc/WpDetector.html | 2 + doc/WpEnumerator.html | 88 ++++++++++++- doc/WpFullPathDisclosure.html | 2 + doc/WpItem.html | 98 ++++++++++++-- doc/WpOptions.html | 51 +------- doc/WpPlugin.html | 12 +- doc/WpPlugins.html | 14 +- doc/WpReadme.html | 2 + doc/WpTarget.html | 98 ++++++++++++-- doc/WpTheme.html | 6 +- doc/WpTimthumbs.html | 12 +- doc/WpUsernames.html | 136 +++++++++++++++++++- doc/WpVersion.html | 6 +- doc/WpVulnerability.html | 2 + doc/WpscanOptions.html | 4 +- doc/created.rid | 39 +++--- doc/index.html | 86 ++++++++++--- doc/lib/common_helper_rb.html | 2 +- doc/lib/wpscan/modules/brute_force_rb.html | 2 +- doc/lib/wpscan/modules/web_site_rb.html | 2 +- doc/lib/wpscan/modules/wp_plugins_rb.html | 2 +- doc/lib/wpscan/modules/wp_timthumbs_rb.html | 2 +- doc/lib/wpscan/modules/wp_usernames_rb.html | 2 +- doc/lib/wpscan/vulnerable_rb.html | 2 +- doc/lib/wpscan/wp_detector_rb.html | 2 +- doc/lib/wpscan/wp_enumerator_rb.html | 2 +- doc/lib/wpscan/wp_options_rb.html | 2 +- doc/lib/wpscan/wp_plugin_rb.html | 2 +- doc/lib/wpscan/wp_target_rb.html | 2 +- doc/lib/wpscan/wp_theme_rb.html | 2 +- doc/lib/wpscan/wp_version_rb.html | 2 +- doc/lib/wpscan/wpscan_options_rb.html | 2 +- doc/wpscan_rb.html | 2 +- 52 files changed, 589 insertions(+), 167 deletions(-) diff --git a/doc/Array.html b/doc/Array.html index e2dc1129..f67b8512 100644 --- a/doc/Array.html +++ b/doc/Array.html @@ -148,6 +148,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Browser.html b/doc/Browser.html index 0824113c..fa094476 100644 --- a/doc/Browser.html +++ b/doc/Browser.html @@ -164,6 +164,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/BruteForce.html b/doc/BruteForce.html index 2a3a1671..26ad0f1a 100644 --- a/doc/BruteForce.html +++ b/doc/BruteForce.html @@ -140,6 +140,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -217,7 +219,7 @@ on large wordlists, although bareable.

    -# File lib/wpscan/modules/brute_force.rb, line 109
    +# File lib/wpscan/modules/brute_force.rb, line 111
     def self.lines_in_file(file_path)
       lines = 0
       File.open(file_path, 'r').each { |line| lines += 1 }
    @@ -284,9 +286,11 @@ on large wordlists, although bareable.

    # the request object request = Browser.instance.forge_request(login_url, - :method => :post, - :params => {:log => username, :pwd => password}, - :cache_timeout => 0 + { + :method => :post, + :params => {:log => username, :pwd => password}, + :cache_timeout => 0 + } ) # tell hydra what to do when the request completes diff --git a/doc/CREDITS.html b/doc/CREDITS.html index ad5054ad..ef7c285a 100644 --- a/doc/CREDITS.html +++ b/doc/CREDITS.html @@ -104,6 +104,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/CacheFileStore.html b/doc/CacheFileStore.html index d80f90ed..186a9000 100644 --- a/doc/CacheFileStore.html +++ b/doc/CacheFileStore.html @@ -154,6 +154,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Exploit.html b/doc/Exploit.html index 8227c066..543ea2cf 100644 --- a/doc/Exploit.html +++ b/doc/Exploit.html @@ -172,6 +172,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Generate_List.html b/doc/Generate_List.html index 1cc73c0f..4f9f4315 100644 --- a/doc/Generate_List.html +++ b/doc/Generate_List.html @@ -154,6 +154,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/GitUpdater.html b/doc/GitUpdater.html index 6810e361..32c09d07 100644 --- a/doc/GitUpdater.html +++ b/doc/GitUpdater.html @@ -152,6 +152,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Malwares.html b/doc/Malwares.html index 7144e973..d75003bd 100644 --- a/doc/Malwares.html +++ b/doc/Malwares.html @@ -144,6 +144,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Object.html b/doc/Object.html index b9dc4153..570500e4 100644 --- a/doc/Object.html +++ b/doc/Object.html @@ -162,6 +162,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/README.html b/doc/README.html index 4f215da6..377560ad 100644 --- a/doc/README.html +++ b/doc/README.html @@ -104,6 +104,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/RpcClient.html b/doc/RpcClient.html index 00c59c99..ee3cf694 100644 --- a/doc/RpcClient.html +++ b/doc/RpcClient.html @@ -172,6 +172,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/SvnUpdater.html b/doc/SvnUpdater.html index 3b904350..034058e3 100644 --- a/doc/SvnUpdater.html +++ b/doc/SvnUpdater.html @@ -150,6 +150,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Svn_Parser.html b/doc/Svn_Parser.html index 5f2cdf64..99cfcc15 100644 --- a/doc/Svn_Parser.html +++ b/doc/Svn_Parser.html @@ -148,6 +148,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Updater.html b/doc/Updater.html index 253fe16e..90f61dda 100644 --- a/doc/Updater.html +++ b/doc/Updater.html @@ -154,6 +154,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/UpdaterFactory.html b/doc/UpdaterFactory.html index 74ed39d1..746a4695 100644 --- a/doc/UpdaterFactory.html +++ b/doc/UpdaterFactory.html @@ -148,6 +148,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/Vulnerable.html b/doc/Vulnerable.html index b319f6a1..1caa2127 100644 --- a/doc/Vulnerable.html +++ b/doc/Vulnerable.html @@ -146,6 +146,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -270,9 +272,9 @@ be empty)

    xml.xpath(@vulns_xpath).each do |node| vulnerabilities << WpVulnerability.new( - node.search('title').text, - node.search('reference').text, - node.search('type').text + node.search("title").text, + node.search("reference").text, + node.search("type").text ) end vulnerabilities diff --git a/doc/WebSite.html b/doc/WebSite.html index 875fd466..5a06aa82 100644 --- a/doc/WebSite.html +++ b/doc/WebSite.html @@ -144,6 +144,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -220,7 +222,7 @@
    -# File lib/wpscan/modules/web_site.rb, line 52
    +# File lib/wpscan/modules/web_site.rb, line 50
     def is_online?
       Browser.instance.get(@uri.to_s).code != 0
     end
    @@ -258,16 +260,14 @@ wordpress = false response = Browser.instance.get(login_url(), - :follow_location => true, - :max_redirects => 2 + { :follow_location => true, :max_redirects => 2 } ) if response.body =~ %{WordPress} wordpress = true else response = Browser.instance.get(xmlrpc_url(), - :follow_location => true, - :max_redirects => 2 + { :follow_location => true, :max_redirects => 2 } ) if response.body =~ %{XML-RPC server accepts POST requests only} @@ -307,7 +307,7 @@ redirection or nil

    -# File lib/wpscan/modules/web_site.rb, line 58
    +# File lib/wpscan/modules/web_site.rb, line 56
     def redirection(url = nil)
       url ||= @uri.to_s
       response = Browser.instance.get(url)
    @@ -347,7 +347,7 @@ redirection or nil

    -# File lib/wpscan/modules/web_site.rb, line 47
    +# File lib/wpscan/modules/web_site.rb, line 45
     def xmlrpc_url
       @uri.merge("xmlrpc.php").to_s
     end
    diff --git a/doc/WpConfigBackup.html b/doc/WpConfigBackup.html index f3fc0a2c..80f0e063 100644 --- a/doc/WpConfigBackup.html +++ b/doc/WpConfigBackup.html @@ -140,6 +140,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/WpDetector.html b/doc/WpDetector.html index f68da914..854015dd 100644 --- a/doc/WpDetector.html +++ b/doc/WpDetector.html @@ -148,6 +148,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/WpEnumerator.html b/doc/WpEnumerator.html index 77f998be..745e783f 100644 --- a/doc/WpEnumerator.html +++ b/doc/WpEnumerator.html @@ -67,6 +67,8 @@
  • ::enumerate
  • +
  • ::generate_items
  • +
    @@ -146,6 +148,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -271,7 +275,7 @@ end url = "#{target[:url]}#{target[:wp_content_dir]}/#{target[:path]}" - request = enum_browser.forge_request(url, :cache_timeout => 0, :follow_location => true) + request = enum_browser.forge_request(url, { :cache_timeout => 0, :follow_location => true }) request_count += 1 request.on_complete do |response| @@ -309,6 +313,88 @@
    +
    +

    Protected Class Methods

    + + +
    + + + +
    + generate_items(options = {}) + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/wp_enumerator.rb, line 88
    +def self.generate_items(options = {})
    +  only_vulnerable   = options[:only_vulnerable_ones]
    +  file              = options[:file]
    +  vulns_file        = options[:vulns_file]
    +  wp_content_dir    = options[:wp_content_dir]
    +  url               = options[:url]
    +  type              = options[:type]
    +  targets_url       = []
    +
    +  if only_vulnerable == false
    +    # Open and parse the 'most popular' plugin list...
    +    File.open(file, 'r') do |f|
    +      f.readlines.collect do |line|
    +        targets_url << {
    +            :url            => url,
    +            :path           => line.strip,
    +            :wp_content_dir => wp_content_dir,
    +            :name           => File.dirname(line.strip)
    +        }
    +      end
    +    end
    +  end
    +
    +  # Timthumbs have no XML file
    +  unless type =~ /timthumbs/
    +    xml = Nokogiri::XML(File.open(vulns_file)) do |config|
    +      config.noblanks
    +    end
    +
    +    # We check if the plugin name from the plugin_vulns_file is already in targets, otherwise we add it
    +    xml.xpath(options[:vulns_xpath_2]).each do |node|
    +      name = node.attribute("name").text
    +      targets_url << {
    +          :url            => url,
    +          :path           => name,
    +          :wp_content_dir => wp_content_dir,
    +          :name           => name
    +      }
    +      end
    +  end
    +
    +  targets_url.flatten!
    +  targets_url.uniq!
    +  # randomize the plugins array to *maybe* help in some crappy IDS/IPS/WAF detection
    +  targets_url.sort_by! { rand }
    +end
    +
    + +
    + + + + +
    + + +
    +
    diff --git a/doc/WpFullPathDisclosure.html b/doc/WpFullPathDisclosure.html index 9400723d..2aed0957 100644 --- a/doc/WpFullPathDisclosure.html +++ b/doc/WpFullPathDisclosure.html @@ -140,6 +140,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/WpItem.html b/doc/WpItem.html index b5730ec8..4f97a8c8 100644 --- a/doc/WpItem.html +++ b/doc/WpItem.html @@ -67,8 +67,12 @@
  • ::new
  • +
  • #<=>
  • +
  • #==
  • +
  • #===
  • +
  • #changelog_url
  • #directory_listing?
  • @@ -168,6 +172,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -355,12 +361,12 @@
     # File lib/wpscan/wp_item.rb, line 25
     def initialize(options = {})
    -  @wp_content_dir = options[:wp_content_dir]
    +  @wp_content_dir = options[:wp_content_dir] || "wp-content"
       @url            = options[:url]
       @path           = options[:path]
       @name           = options[:name] || extract_name_from_url
       @vulns_xml      = options[:vulns_xml]
    -  @vulns_xpath    = options[:vulns_xpath]
    +  @vulns_xpath    = options[:vulns_xpath].sub(/\$name\$/, @name)
     
       raise("url not set") unless @url
       raise("path not set") unless @path
    @@ -384,28 +390,61 @@
             

    Public Instance Methods

    -
    - +
    +
    - ==(item) + <=>(other) click to toggle source
    -

    Object comparer

    +

    Compare

    + + + +
    +
    +# File lib/wpscan/wp_item.rb, line 97
    +def <=>(other)
    +  other.name <=> self.name
    +end
    +
    + +
    + + + + +
    + + +
    + + + +
    + ==(other) + click to toggle source +
    + + +
    + +

    Compare

     # File lib/wpscan/wp_item.rb, line 87
    -def ==(item)
    -  item.name == @name
    +def ==(other)
    +  other.name == self.name
     end
    @@ -417,6 +456,39 @@
    +
    + + + +
    + ===(other) + click to toggle source +
    + + +
    + +

    Compare

    + + + +
    +
    +# File lib/wpscan/wp_item.rb, line 92
    +def ===(other)
    +  other.name == self.name
    +end
    +
    + +
    + + + + +
    + +
    @@ -436,7 +508,7 @@
    -# File lib/wpscan/wp_item.rb, line 97
    +# File lib/wpscan/wp_item.rb, line 107
     def changelog_url
       get_url_without_filename.merge("changelog.txt")
     end
    @@ -612,7 +684,7 @@
    -# File lib/wpscan/wp_item.rb, line 111
    +# File lib/wpscan/wp_item.rb, line 121
     def has_changelog?
       unless @changelog
         status = Browser.instance.get(changelog_url).code
    @@ -649,7 +721,7 @@
                 
                 
    -# File lib/wpscan/wp_item.rb, line 102
    +# File lib/wpscan/wp_item.rb, line 112
     def has_readme?
       unless @readme
         status = Browser.instance.get(readme_url).code
    @@ -686,7 +758,7 @@
                 
                 
    -# File lib/wpscan/wp_item.rb, line 92
    +# File lib/wpscan/wp_item.rb, line 102
     def readme_url
       get_url_without_filename.merge("readme.txt")
     end
    diff --git a/doc/WpOptions.html b/doc/WpOptions.html index 14d3dd3c..9958d401 100644 --- a/doc/WpOptions.html +++ b/doc/WpOptions.html @@ -67,8 +67,6 @@
  • ::check_options
  • -
  • ::get_empty_options
  • -
    @@ -148,6 +146,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -249,7 +249,7 @@
    -# File lib/wpscan/wp_options.rb, line 50
    +# File lib/wpscan/wp_options.rb, line 34
     def self.check_options(options)
       raise("url must be set")                  unless options[:url] != nil and options[:url].to_s.length > 0
       raise("only_vulnerable_ones must be set") unless options[:only_vulnerable_ones] != nil
    @@ -276,51 +276,6 @@
             
    -
    - - - -
    - get_empty_options() - click to toggle source -
    - - -
    - - - - - -
    -
    -# File lib/wpscan/wp_options.rb, line 34
    -def self.get_empty_options
    -  options = {
    -      :url                  => "",
    -      :only_vulnerable_ones => false,
    -      :file                 => "",
    -      :vulns_file           => "",
    -      :vulns_xpath          => "",
    -      :vulns_xpath_2        => "",
    -      :wp_content_dir       => "",
    -      :show_progress_bar    => true,
    -      :error_404_hash       => "",
    -      :type                 => ""
    -  }
    -  options
    -end
    -
    - -
    - - - - -
    - -
    diff --git a/doc/WpPlugin.html b/doc/WpPlugin.html index c3fdf29f..3018311f 100644 --- a/doc/WpPlugin.html +++ b/doc/WpPlugin.html @@ -150,6 +150,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -228,8 +230,10 @@
     # File lib/wpscan/wp_plugin.rb, line 20
     def initialize(options = {})
    -  options[:vulns_xml]   = options[:vulns_xml] || DATA_DIR + '/plugin_vulns.xml'
    -  options[:vulns_xpath] = "//plugin[@name='#@name']/vulnerability"
    +  options[:vulns_xml]     = options[:vulns_xml] || DATA_DIR + '/plugin_vulns.xml'
    +  options[:vulns_xpath]   = "//plugin[@name='$name$']/vulnerability"
    +  options[:vulns_xpath_2] = "//plugin"
    +  options[:type]          = "plugins"
       super(options)
     end
    @@ -270,7 +274,7 @@ href="http://www.exploit-db.com/ghdb/3714/">www.exploit-db.com/ghdb/3714/

    -# File lib/wpscan/wp_plugin.rb, line 31
    +# File lib/wpscan/wp_plugin.rb, line 33
     def error_log?
       response_body = Browser.instance.get(error_log_url(), :headers => { "range" => "bytes=0-700"}).body
       response_body[%{PHP Fatal error}] ? true : false
    @@ -304,7 +308,7 @@ href="http://www.exploit-db.com/ghdb/3714/">www.exploit-db.com/ghdb/3714/

    -# File lib/wpscan/wp_plugin.rb, line 36
    +# File lib/wpscan/wp_plugin.rb, line 38
     def error_log_url
       get_url.merge("error_log").to_s
     end
    diff --git a/doc/WpPlugins.html b/doc/WpPlugins.html index cc8d8fab..353975b3 100644 --- a/doc/WpPlugins.html +++ b/doc/WpPlugins.html @@ -140,6 +140,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -220,8 +222,8 @@
     # File lib/wpscan/modules/wp_plugins.rb, line 24
     def plugins_from_aggressive_detection(options)
    -  options[:file]          = "#{DATA_DIR}/plugins.txt"
    -  options[:vulns_file]    = "#{DATA_DIR}/plugin_vulns.xml"
    +  options[:file]          = options[:file] || "#{DATA_DIR}/plugins.txt"
    +  options[:vulns_file]    = options[:vulns_file] || "#{DATA_DIR}/plugin_vulns.xml"
       options[:vulns_xpath]   = "//plugin[@name='#{@name}']/vulnerability"
       options[:vulns_xpath_2] = "//plugin"
       options[:type]          = "plugins"
    @@ -253,7 +255,7 @@
               
               
    plugins_from_passive_detection(wp_content_dir) + class="method-args">(options) click to toggle source
    @@ -275,16 +277,16 @@ plugins can be found in the source code :

     # File lib/wpscan/modules/wp_plugins.rb, line 49
    -def plugins_from_passive_detection(wp_content_dir)
    +def plugins_from_passive_detection(options)
       plugins = []
    -  temp = WpDetector.passive_detection(url(), "plugins", wp_content_dir)
    +  temp = WpDetector.passive_detection(options[:url], "plugins", options[:wp_content_dir])
     
       temp.each do |item|
         plugins << WpPlugin.new(
             :url            => item[:url],
             :name           => item[:name],
             :path           => item[:path],
    -        :wp_content_dir => wp_content_dir
    +        :wp_content_dir => options[:wp_content_dir]
         )
       end
       plugins.sort_by { |p| p.name }
    diff --git a/doc/WpReadme.html b/doc/WpReadme.html
    index 4461d79c..795ac853 100644
    --- a/doc/WpReadme.html
    +++ b/doc/WpReadme.html
    @@ -140,6 +140,8 @@
             
               
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/WpTarget.html b/doc/WpTarget.html index 4b98c22f..40bdee3e 100644 --- a/doc/WpTarget.html +++ b/doc/WpTarget.html @@ -77,6 +77,10 @@
  • #login_url
  • +
  • #registration_enabled?
  • + +
  • #registration_url
  • +
  • #theme
  • #url
  • @@ -114,6 +118,10 @@ +
  • WpLoginProtection
  • + + +
  • Malwares
  • @@ -214,6 +222,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -327,7 +337,7 @@
    -# File lib/wpscan/wp_target.rb, line 35
    +# File lib/wpscan/wp_target.rb, line 36
     def initialize(target_url, options = {})
       @uri            = URI.parse(add_trailing_slash(add_http_protocol(target_url)))
       @verbose        = options[:verbose]
    @@ -365,7 +375,7 @@
                 
                 
    -# File lib/wpscan/wp_target.rb, line 75
    +# File lib/wpscan/wp_target.rb, line 76
     def self.valid_response_codes
       [200, 403, 301, 302, 500]
     end
    @@ -404,7 +414,7 @@
    -# File lib/wpscan/wp_target.rb, line 115
    +# File lib/wpscan/wp_target.rb, line 116
     def debug_log_url
       @uri.merge("#{wp_content_dir()}/debug.log").to_s
     end
    @@ -437,7 +447,7 @@
    -# File lib/wpscan/wp_target.rb, line 62
    +# File lib/wpscan/wp_target.rb, line 63
     def error_404_hash
       unless @error_404_hash
         non_existant_page = Digest::MD5.hexdigest(rand(9999999999).to_s) + ".html"
    @@ -478,7 +488,7 @@
                 
                 
    -# File lib/wpscan/wp_target.rb, line 109
    +# File lib/wpscan/wp_target.rb, line 110
     def has_debug_log?
       # We only get the first 700 bytes of the file to avoid loading huge file (like 2Go)
       response_body = Browser.instance.get(debug_log_url(), :headers => { "range" => "bytes=0-700"}).body
    @@ -513,7 +523,7 @@
                 
                 
    -# File lib/wpscan/wp_target.rb, line 49
    +# File lib/wpscan/wp_target.rb, line 50
     def login_url
       url = @uri.merge("wp-login.php").to_s
     
    @@ -535,6 +545,72 @@
             
    +
    + + + +
    + registration_enabled?() + click to toggle source +
    + + +
    + +

    Should check wp-login.php if registration is enabled or not

    + + + +
    +
    +# File lib/wpscan/wp_target.rb, line 121
    +def registration_enabled?
    +  # TODO
    +end
    +
    + +
    + + + + +
    + + +
    + + + +
    + registration_url() + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/wp_target.rb, line 125
    +def registration_url
    +  # TODO
    +end
    +
    + +
    + + + + +
    + +
    @@ -554,7 +630,7 @@
    -# File lib/wpscan/wp_target.rb, line 80
    +# File lib/wpscan/wp_target.rb, line 81
     def theme
       WpTheme.find(@uri)
     end
    @@ -587,7 +663,7 @@
    -# File lib/wpscan/wp_target.rb, line 45
    +# File lib/wpscan/wp_target.rb, line 46
     def url
       @uri.to_s
     end
    @@ -620,7 +696,7 @@
    -# File lib/wpscan/wp_target.rb, line 85
    +# File lib/wpscan/wp_target.rb, line 86
     def version
       WpVersion.find(@uri, wp_content_dir)
     end
    @@ -653,7 +729,7 @@
    -# File lib/wpscan/wp_target.rb, line 89
    +# File lib/wpscan/wp_target.rb, line 90
     def wp_content_dir
       unless @wp_content_dir
         index_body = Browser.instance.get(@uri.to_s).body
    @@ -695,7 +771,7 @@
                 
                 
    -# File lib/wpscan/wp_target.rb, line 102
    +# File lib/wpscan/wp_target.rb, line 103
     def wp_plugins_dir
       unless @wp_plugins_dir
         @wp_plugins_dir = wp_content_dir() + "/plugins"
    diff --git a/doc/WpTheme.html b/doc/WpTheme.html
    index 767d2651..ec14de03 100644
    --- a/doc/WpTheme.html
    +++ b/doc/WpTheme.html
    @@ -154,6 +154,8 @@
             
               
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -323,7 +325,7 @@ # File lib/wpscan/wp_theme.rb, line 25 def initialize(options = {}) options[:vulns_xml] = options[:vulns_xml] || DATA_DIR + '/wp_theme_vulns.xml' - options[:vulns_xpath] = "//theme[@name='#{@name}']/vulnerability" + options[:vulns_xpath] = "//theme[@name='$name$']/vulnerability" @version = options[:version] @style_url = options[:style_url] super(options) @@ -365,7 +367,7 @@
     # File lib/wpscan/wp_theme.rb, line 58
     def self.find_from_css_link(target_uri)
    -  response = Browser.instance.get(target_uri.to_s, :follow_location => true, :max_redirects => 2)
    +  response = Browser.instance.get(target_uri.to_s, { :follow_location => true, :max_redirects => 2 })
     
       if matches = %{https?://[^"']+/themes/([^"']+)/style.css}.match(response.body)
         style_url = matches[0]
    diff --git a/doc/WpTimthumbs.html b/doc/WpTimthumbs.html
    index 758869bf..0df2bcfd 100644
    --- a/doc/WpTimthumbs.html
    +++ b/doc/WpTimthumbs.html
    @@ -142,6 +142,8 @@
             
               
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -256,7 +258,7 @@ if @wp_timthumbs.nil? options[:type] = "timthumbs" options[:only_vulnerable_ones] = false - options[:file] = DATA_DIR + "/timthumbs.txt" + options[:file] = options[:file] || DATA_DIR + "/timthumbs.txt" options[:vulns_file] = "xxx" options[:vulns_xpath] = "xxx" options[:vulns_xpath_2] = "xxx" @@ -311,10 +313,10 @@ targets = [] theme_name = URI.escape(theme_name) - [ - 'timthumb.php', 'lib/timthumb.php', 'inc/timthumb.php', 'includes/timthumb.php', - 'scripts/timthumb.php', 'tools/timthumb.php', 'functions/timthumb.php' - ].each do |file| + %{ + timthumb.php lib/timthumb.php inc/timthumb.php includes/timthumb.php + scripts/timthumb.php tools/timthumb.php functions/timthumb.php + }.each do |file| targets << { :url => options[:url], :path => "themes/#{theme_name}/#{file}", diff --git a/doc/WpUsernames.html b/doc/WpUsernames.html index bbafcd16..68421de0 100644 --- a/doc/WpUsernames.html +++ b/doc/WpUsernames.html @@ -59,6 +59,12 @@
  • #author_url
  • +
  • #extract_real_name_from_body
  • + +
  • #get_real_name_from_response
  • + +
  • #get_real_name_from_url
  • +
  • #usernames
  • @@ -140,6 +146,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -216,7 +224,7 @@
    -# File lib/wpscan/modules/wp_usernames.rb, line 49
    +# File lib/wpscan/modules/wp_usernames.rb, line 82
     def author_url(author_id)
       @uri.merge("?author=#{author_id}").to_s
     end
    @@ -230,6 +238,114 @@
    +
    + + + +
    + extract_real_name_from_body(body) + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_usernames.rb, line 78
    +def extract_real_name_from_body(body)
    +  body[%{<title>([^<]*)</title>}, 1]
    +end
    +
    + +
    + + + + +
    + + +
    + + + +
    + get_real_name_from_response(resp) + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_usernames.rb, line 70
    +def get_real_name_from_response(resp)
    +  real_name = nil
    +  if resp.code == 200
    +    real_name = extract_real_name_from_body(resp.body)
    +  end
    +  real_name
    +end
    +
    + +
    + + + + +
    + + +
    + + + +
    + get_real_name_from_url(url) + click to toggle source +
    + + +
    + + + + + +
    +
    +# File lib/wpscan/modules/wp_usernames.rb, line 61
    +def get_real_name_from_url(url)
    +  resp = Browser.instance.get(url, { :follow_location => true, :max_redirects => 2 })
    +  real_name = nil
    +  if resp.code == 200
    +    real_name = extract_real_name_from_body(resp.body)
    +  end
    +  real_name
    +end
    +
    + +
    + + + + +
    + +
    @@ -263,12 +379,24 @@ href="http://seclists.org/fulldisclosure/2011/May/493">seclists.org/fulldisclosu usernames = [] range.each do |author_id| - response = browser.get(author_url(author_id)) + url = author_url(author_id) + response = browser.get(url) + username = nil + real_name = nil if response.code == 301 # username in location? - usernames << response.headers_hash['location'][%{/author/([^/]+)/}, 1] + username = response.headers_hash['location'][%{/author/([^/]+)/}, 1] + # Get the real name from the redirect site + real_name = get_real_name_from_url(url) elsif response.code == 200 # username in body? - usernames << response.body[%{posts by (.*) feed}, 1] + username = response.body[%{posts by (.*) feed}, 1] + real_name = get_real_name_from_response(response) + end + + unless username == nil and real_name == nil + usernames << { :id => author_id, + :name => username ? username : "empty", + :real_name => real_name ? real_name : "empty"} end end diff --git a/doc/WpVersion.html b/doc/WpVersion.html index de990390..ebc327ad 100644 --- a/doc/WpVersion.html +++ b/doc/WpVersion.html @@ -160,6 +160,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -444,7 +446,7 @@ upgrade.

    # 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 = Browser.instance.get(target_uri.to_s, { :follow_location => true, :max_redirects => 2 }) response.body[%{name="generator" content="wordpress ([^"]+)"}, 1] end
    @@ -514,7 +516,7 @@ upgrade.

    # 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 = Browser.instance.get(target_uri.merge("feed/").to_s, { :follow_location => true, :max_redirects => 2 }) response.body[%{<generator>http://wordpress.org/\?v=([^<]+)</generator>}, 1] end
    diff --git a/doc/WpVulnerability.html b/doc/WpVulnerability.html index 1ed30cbe..4ac3b571 100644 --- a/doc/WpVulnerability.html +++ b/doc/WpVulnerability.html @@ -146,6 +146,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • diff --git a/doc/WpscanOptions.html b/doc/WpscanOptions.html index 1cd81b83..b82da23f 100644 --- a/doc/WpscanOptions.html +++ b/doc/WpscanOptions.html @@ -180,6 +180,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -795,7 +797,7 @@ value

    ) elsif cli_option === "--enumerate" # Special cases # Default value if no argument is given - cli_value = "Ttup" if cli_value.length == 0 + cli_value = "T!tup!" if cli_value.length == 0 enumerate_options_from_string(cli_value) else diff --git a/doc/created.rid b/doc/created.rid index 7f836cb6..d6dc4763 100644 --- a/doc/created.rid +++ b/doc/created.rid @@ -1,40 +1,41 @@ -Mon, 17 Sep 2012 23:33:41 +0200 +Wed, 19 Sep 2012 22:43:09 +0200 ./CREDITS Mon, 17 Sep 2012 20:18:24 +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/common_helper.rb Tue, 18 Sep 2012 20:09:48 +0200 ./lib/environment.rb Sat, 15 Sep 2012 08:04:16 +0200 ./lib/updater/git_updater.rb Sat, 15 Sep 2012 08:00:23 +0200 ./lib/updater/svn_updater.rb Sat, 15 Sep 2012 08:00:34 +0200 ./lib/updater/updater.rb Sat, 15 Sep 2012 08:00:40 +0200 ./lib/updater/updater_factory.rb Sat, 15 Sep 2012 08:00:46 +0200 ./lib/wpscan/exploit.rb Sat, 15 Sep 2012 08:02:16 +0200 -./lib/wpscan/modules/brute_force.rb Sat, 15 Sep 2012 08:00:54 +0200 +./lib/wpscan/modules/brute_force.rb Wed, 19 Sep 2012 21:41:41 +0200 ./lib/wpscan/modules/malwares.rb Sat, 15 Sep 2012 08:01:01 +0200 -./lib/wpscan/modules/web_site.rb Sat, 15 Sep 2012 08:01:06 +0200 +./lib/wpscan/modules/web_site.rb Wed, 19 Sep 2012 21:33:46 +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_plugins.rb Sun, 16 Sep 2012 12:02:47 +0200 +./lib/wpscan/modules/wp_login_protection.rb Tue, 18 Sep 2012 17:51:20 +0200 +./lib/wpscan/modules/wp_plugins.rb Tue, 18 Sep 2012 22:27:43 +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 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/modules/wp_themes.rb Tue, 18 Sep 2012 22:28:05 +0200 +./lib/wpscan/modules/wp_timthumbs.rb Wed, 19 Sep 2012 15:03:22 +0200 +./lib/wpscan/modules/wp_usernames.rb Wed, 19 Sep 2012 22:09:14 +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 Mon, 17 Sep 2012 17:40:36 +0200 -./lib/wpscan/wp_enumerator.rb Mon, 17 Sep 2012 17:54:28 +0200 -./lib/wpscan/wp_item.rb Mon, 17 Sep 2012 22:04:16 +0200 -./lib/wpscan/wp_options.rb Sun, 16 Sep 2012 23:02:21 +0200 -./lib/wpscan/wp_plugin.rb Mon, 17 Sep 2012 22:03:47 +0200 -./lib/wpscan/wp_target.rb Mon, 17 Sep 2012 22:51:21 +0200 -./lib/wpscan/wp_theme.rb Mon, 17 Sep 2012 22:23:12 +0200 -./lib/wpscan/wp_version.rb Sun, 16 Sep 2012 23:48:18 +0200 +./lib/wpscan/vulnerable.rb Wed, 19 Sep 2012 22:21:47 +0200 +./lib/wpscan/wp_detector.rb Wed, 19 Sep 2012 22:29:50 +0200 +./lib/wpscan/wp_enumerator.rb Wed, 19 Sep 2012 22:30:45 +0200 +./lib/wpscan/wp_item.rb Wed, 19 Sep 2012 22:21:19 +0200 +./lib/wpscan/wp_options.rb Tue, 18 Sep 2012 22:28:27 +0200 +./lib/wpscan/wp_plugin.rb Wed, 19 Sep 2012 22:20:29 +0200 +./lib/wpscan/wp_target.rb Wed, 19 Sep 2012 17:40:16 +0200 +./lib/wpscan/wp_theme.rb Wed, 19 Sep 2012 22:20:40 +0200 +./lib/wpscan/wp_version.rb Wed, 19 Sep 2012 21:33:07 +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 Mon, 17 Sep 2012 22:44:37 +0200 +./lib/wpscan/wpscan_options.rb Tue, 18 Sep 2012 17:29:40 +0200 ./lib/wpstools/generate_list.rb Sat, 15 Sep 2012 08:03:43 +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 Mon, 17 Sep 2012 17:42:32 +0200 +./wpscan.rb Wed, 19 Sep 2012 22:06:17 +0200 ./wpstools.rb Sat, 15 Sep 2012 08:06:35 +0200 diff --git a/doc/index.html b/doc/index.html index c384ff0a..b06908a3 100644 --- a/doc/index.html +++ b/doc/index.html @@ -82,6 +82,8 @@
  • WpItem
  • +
  • WpLoginProtection
  • +
  • WpOptions
  • WpPlugin
  • @@ -141,7 +143,7 @@
  • ::find_from_wooframework — WpTheme
  • -
  • ::get_empty_options — WpOptions
  • +
  • ::generate_items — WpEnumerator
  • ::get_opt_long — WpscanOptions
  • @@ -161,26 +163,26 @@
  • ::new — CacheFileStore
  • -
  • ::new — WpscanOptions
  • +
  • ::new — WpItem
  • ::new — WpVersion
  • ::new — WpVulnerability
  • -
  • ::new — RpcClient
  • +
  • ::new — WpscanOptions
  • -
  • ::new — WpItem
  • +
  • ::new — RpcClient
  • ::new — Updater
  • ::new — Svn_Parser
  • -
  • ::new — WpPlugin
  • -
  • ::new — WpTheme
  • ::new — WpTarget
  • +
  • ::new — WpPlugin
  • +
  • ::new — Generate_List
  • ::new — Exploit
  • @@ -195,8 +197,12 @@
  • ::version_pattern — WpVersion
  • +
  • #<=> — WpItem
  • +
  • #== — WpItem
  • +
  • #=== — WpItem
  • +
  • #=== — WpTheme
  • #_grep_ — Array
  • @@ -211,6 +217,10 @@
  • #banner — Object
  • +
  • #better_wp_security_url — WpLoginProtection
  • + +
  • #bluetrait_event_viewer_url — WpLoginProtection
  • +
  • #brute_force — BruteForce
  • #changelog_url — WpItem
  • @@ -241,14 +251,16 @@
  • #error_log_url — WpPlugin
  • -
  • #exploit — Exploit
  • -
  • #exploit — RpcClient
  • +
  • #exploit — Exploit
  • +
  • #exploit_info — Exploit
  • #extract_name_from_url — WpItem
  • +
  • #extract_real_name_from_body — WpUsernames
  • +
  • #forge_request — Browser
  • #full_path_disclosure_url — WpFullPathDisclosure
  • @@ -269,25 +281,45 @@
  • #get_popular_items — Generate_List
  • +
  • #get_real_name_from_response — WpUsernames
  • + +
  • #get_real_name_from_url — WpUsernames
  • +
  • #get_url — WpItem
  • #get_url_without_filename — WpItem
  • #grep — Array
  • +
  • #has_better_wp_security_protection? — WpLoginProtection
  • + +
  • #has_bluetrait_event_viewer_protection? — WpLoginProtection
  • +
  • #has_changelog? — WpItem
  • #has_debug_log? — WpTarget
  • #has_full_path_disclosure? — WpFullPathDisclosure
  • +
  • #has_limit_login_attempts_protection? — WpLoginProtection
  • + +
  • #has_login_lock_protection? — WpLoginProtection
  • + +
  • #has_login_lockdown_protection? — WpLoginProtection
  • + +
  • #has_login_protection? — WpLoginProtection
  • + +
  • #has_login_security_solution_protection? — WpLoginProtection
  • +
  • #has_malwares? — Malwares
  • #has_options? — WpscanOptions
  • +
  • #has_readme? — WpItem
  • +
  • #has_readme? — WpReadme
  • -
  • #has_readme? — WpItem
  • +
  • #has_simple_login_lockdown_protection? — WpLoginProtection
  • #has_timthumbs? — WpTimthumbs
  • @@ -295,10 +327,10 @@
  • #is_installed? — SvnUpdater
  • -
  • #is_installed? — Updater
  • -
  • #is_installed? — GitUpdater
  • +
  • #is_installed? — Updater
  • +
  • #is_online? — WebSite
  • #is_wordpress? — WebSite
  • @@ -307,12 +339,14 @@
  • #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 — GitUpdater
  • @@ -323,6 +357,10 @@
  • #login — RpcClient
  • +
  • #login_protection_plugin — WpLoginProtection
  • + +
  • #login_security_solution_url — WpLoginProtection
  • +
  • #login_url — WpTarget
  • #malwares — Malwares
  • @@ -331,14 +369,14 @@
  • #merge_request_params — Browser
  • -
  • #meterpreter_read — RpcClient
  • -
  • #meterpreter_read — Exploit
  • -
  • #meterpreter_write — RpcClient
  • +
  • #meterpreter_read — RpcClient
  • #meterpreter_write — Exploit
  • +
  • #meterpreter_write — RpcClient
  • +
  • #parse — Svn_Parser
  • #plugins_from_aggressive_detection — WpPlugins
  • @@ -353,16 +391,20 @@
  • #read_entry — CacheFileStore
  • -
  • #read_shell — RpcClient
  • -
  • #read_shell — Exploit
  • -
  • #readme_url — WpItem
  • +
  • #read_shell — RpcClient
  • #readme_url — WpReadme
  • +
  • #readme_url — WpItem
  • +
  • #redirection — WebSite
  • +
  • #registration_enabled? — WpTarget
  • + +
  • #registration_url — WpTarget
  • +
  • #repo_directory_arguments — GitUpdater
  • #require_files_from_directory — Object
  • @@ -371,12 +413,14 @@
  • #session_count — Exploit
  • -
  • #sessions — RpcClient
  • -
  • #sessions — Exploit
  • +
  • #sessions — RpcClient
  • +
  • #set_option_from_cli — WpscanOptions
  • +
  • #simple_login_lockdown_url — WpLoginProtection
  • +
  • #start — Exploit
  • #targets_url_from_theme — WpTimthumbs
  • diff --git a/doc/lib/common_helper_rb.html b/doc/lib/common_helper_rb.html index c140e19e..4a301e36 100644 --- a/doc/lib/common_helper_rb.html +++ b/doc/lib/common_helper_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:04:08 +0200
    +
    2012-09-18 20:09:48 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/brute_force_rb.html b/doc/lib/wpscan/modules/brute_force_rb.html index b5a5fd56..dc0472db 100644 --- a/doc/lib/wpscan/modules/brute_force_rb.html +++ b/doc/lib/wpscan/modules/brute_force_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:00:54 +0200
    +
    2012-09-19 21:41:41 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/web_site_rb.html b/doc/lib/wpscan/modules/web_site_rb.html index 4e21ca05..de62b355 100644 --- a/doc/lib/wpscan/modules/web_site_rb.html +++ b/doc/lib/wpscan/modules/web_site_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:01:06 +0200
    +
    2012-09-19 21:33:46 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/wp_plugins_rb.html b/doc/lib/wpscan/modules/wp_plugins_rb.html index 60035bc5..82543a7e 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 12:02:47 +0200
    +
    2012-09-18 22:27:43 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/wp_timthumbs_rb.html b/doc/lib/wpscan/modules/wp_timthumbs_rb.html index 4d0cfb92..fbcf0959 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-16 23:27:21 +0200
    +
    2012-09-19 15:03:22 +0200
    Requires
    diff --git a/doc/lib/wpscan/modules/wp_usernames_rb.html b/doc/lib/wpscan/modules/wp_usernames_rb.html index 6f6320fc..3e5d3cd9 100644 --- a/doc/lib/wpscan/modules/wp_usernames_rb.html +++ b/doc/lib/wpscan/modules/wp_usernames_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:02:04 +0200
    +
    2012-09-19 22:09:14 +0200
    Requires
    diff --git a/doc/lib/wpscan/vulnerable_rb.html b/doc/lib/wpscan/vulnerable_rb.html index 0d33e1a7..2463a78a 100644 --- a/doc/lib/wpscan/vulnerable_rb.html +++ b/doc/lib/wpscan/vulnerable_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-15 08:02:37 +0200
    +
    2012-09-19 22:21:47 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_detector_rb.html b/doc/lib/wpscan/wp_detector_rb.html index 7d1b8c5b..cdf9b6eb 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-17 17:40:36 +0200
    +
    2012-09-19 22:29:50 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_enumerator_rb.html b/doc/lib/wpscan/wp_enumerator_rb.html index aecefb03..dc92d563 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-17 17:54:28 +0200
    +
    2012-09-19 22:30:45 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_options_rb.html b/doc/lib/wpscan/wp_options_rb.html index a3c06ace..a66b4c64 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-16 23:02:21 +0200
    +
    2012-09-18 22:28:27 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_plugin_rb.html b/doc/lib/wpscan/wp_plugin_rb.html index 36da7dec..e2982d89 100644 --- a/doc/lib/wpscan/wp_plugin_rb.html +++ b/doc/lib/wpscan/wp_plugin_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-17 22:03:47 +0200
    +
    2012-09-19 22:20:29 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_target_rb.html b/doc/lib/wpscan/wp_target_rb.html index b1980082..ceb525f7 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-17 22:51:21 +0200
    +
    2012-09-19 17:40:16 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_theme_rb.html b/doc/lib/wpscan/wp_theme_rb.html index 41e768ab..0c445f45 100644 --- a/doc/lib/wpscan/wp_theme_rb.html +++ b/doc/lib/wpscan/wp_theme_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-17 22:23:12 +0200
    +
    2012-09-19 22:20:40 +0200
    Requires
    diff --git a/doc/lib/wpscan/wp_version_rb.html b/doc/lib/wpscan/wp_version_rb.html index ba7efd34..ab7c8863 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-16 23:48:18 +0200
    +
    2012-09-19 21:33:07 +0200
    Requires
    diff --git a/doc/lib/wpscan/wpscan_options_rb.html b/doc/lib/wpscan/wpscan_options_rb.html index 48ad414b..fe9b4819 100644 --- a/doc/lib/wpscan/wpscan_options_rb.html +++ b/doc/lib/wpscan/wpscan_options_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-17 22:44:37 +0200
    +
    2012-09-18 17:29:40 +0200
    Requires
    diff --git a/doc/wpscan_rb.html b/doc/wpscan_rb.html index 8ab453a9..bd4bb22f 100644 --- a/doc/wpscan_rb.html +++ b/doc/wpscan_rb.html @@ -24,7 +24,7 @@
    Last Modified
    -
    2012-09-17 17:42:32 +0200
    +
    2012-09-19 22:06:17 +0200
    Requires