diff --git a/data/plugin_vulns.xml b/data/plugin_vulns.xml
index a29a6d97..fe8d08b6 100644
--- a/data/plugin_vulns.xml
+++ b/data/plugin_vulns.xml
@@ -37,6 +37,7 @@ ryandewhurst at gmail
# File lib/browser.rb, line 61 +# File lib/browser.rb, line 60 def self.instance(options = {}) unless @@instance @@instance = new(options) @@ -322,7 +322,7 @@-# File lib/browser.rb, line 68 +# File lib/browser.rb, line 67 def self.reset @@instance = nil end@@ -358,7 +358,7 @@-# File lib/browser.rb, line 168 +# File lib/browser.rb, line 167 def forge_request(url, params = {}) Typhoeus::Request.new( url.to_s, @@ -391,7 +391,7 @@-# File lib/browser.rb, line 156 +# File lib/browser.rb, line 155 def get(url, params = {}) run_request( forge_request(url, params.merge(:method => :get)) @@ -426,7 +426,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 128 +# File lib/browser.rb, line 127 def load_config(config_file = nil) @config_file = config_file || @config_file @@ -464,7 +464,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 97 +# File lib/browser.rb, line 96 def max_threads=(max_threads) if max_threads.nil? or max_threads <= 0 max_threads = 1 @@ -497,7 +497,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 175 +# File lib/browser.rb, line 174 def merge_request_params(params = {}) if @proxy params = params.merge(:proxy => @proxy) @@ -562,7 +562,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 162 +# File lib/browser.rb, line 161 def post(url, params = {}) run_request( forge_request(url, params.merge(:method => :post)) @@ -594,7 +594,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 104 +# File lib/browser.rb, line 103 def proxy_auth=(auth) unless auth.nil? if auth.is_a?(Hash) @@ -639,7 +639,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 123 +# File lib/browser.rb, line 122 def raise_invalid_proxy_format raise "Invalid proxy auth format, expected username:password or {:proxy_username => username, :proxy_password => password}" end@@ -669,7 +669,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 85 +# File lib/browser.rb, line 84 def user_agent case @user_agent_mode when "semi-static" @@ -707,7 +707,7 @@ browser object, hydra will not have the new @max_threads and-# File lib/browser.rb, line 72 +# File lib/browser.rb, line 71 def user_agent_mode=(ua_mode) ua_mode ||= "static" diff --git a/doc/BruteForce.html b/doc/BruteForce.html index 4837d869..e66da05b 100644 --- a/doc/BruteForce.html +++ b/doc/BruteForce.html @@ -213,7 +213,7 @@ on large wordlists, although bareable.-# File lib/wpscan/modules/brute_force.rb, line 114 +# File lib/wpscan/modules/brute_force.rb, line 117 def self.lines_in_file(file_path) lines = 0 File.open(file_path, 'r').each { || lines += 1 } @@ -239,24 +239,27 @@ on large wordlists, although bareable.brute_force(logins, wordlist_path) + class="method-args">(logins, wordlist_path, options = {}) click to toggle source-diff --git a/doc/Object.html b/doc/Object.html index 88534dc5..6b6182b9 100644 --- a/doc/Object.html +++ b/doc/Object.html @@ -539,9 +539,10 @@ puts "--follow-redirection If the target url has a redirection, it will be followed without asking if you wanted to do so or not" puts "--wp-content-dir <wp content dir> WPScan try to find the content directory (ie wp-content) by scanning the index page, however you can specified it. Subdirectories are allowed" puts "--wp-plugins-dir <wp plugins dir> Same thing than --wp-content-dir but for the plugins directory. If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed" - puts "--proxy Supply a proxy in the format host:port or protocol://host:port (will override the one from conf/browser.conf.json)." - puts " HTTP, SOCKS4 SOCKS4A and SOCKS5 are supported. If no protocol is given (format host:port), HTTP will be used" - puts "--proxy-auth Supply the proxy login credentials in the format username:password (will override the one from conf/browser.conf.json)." + puts "--proxy <[protocol://]host:port> Supply a proxy (will override the one from conf/browser.conf.json)." + puts " HTTP, SOCKS4 SOCKS4A and SOCKS5 are supported. If no protocol is given (format host:port), HTTP will be used" + puts "--proxy-auth <username:password> Supply the proxy login credentials (will override the one from conf/browser.conf.json)." + puts "--basic-auth <username:password> Set the HTTP Basic authentification" puts "--wordlist | -w <wordlist> Supply a wordlist for the password bruter and do the brute." puts "--threads | -t <number of threads> The number of threads to use when multi-threading requests. (will override the value from conf/browser.conf.json)" puts "--username | -U <username> Only brute force the supplied username." diff --git a/doc/README.html b/doc/README.html index 4f935f99..6684563b 100644 --- a/doc/README.html +++ b/doc/README.html @@ -193,23 +193,23 @@ href="http://www.gnu.org/licenses/">www.gnu.org/licenses/>. -> Installing on Debian/Ubuntu: - sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev + sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev git clone https:/%rgithub.com/wpscanteam/wpscan.git cd wpscan - sudo gem install bundler && bundle install + sudo gem install bundler && bundle install --without test development -> Installing on Fedora: sudo yum install libcurl-devel git clone https:/%rgithub.com/wpscanteam/wpscan.git cd wpscan - sudo gem install bundler && bundle install + sudo gem install bundler && bundle install --without test development -> Installing on Mac OS X: git clone https:/%rgithub.com/wpscanteam/wpscan.git cd wpscan - sudo gem install bundler && bundle install + sudo gem install bundler && bundle install --without test developmentparam array of string logins param string wordlist_path
+param array of string logins param string wordlist_path param hash options
+ +boolean :show_progression If true, will output the details (Sucess, error etc)-diff --git a/doc/Gemfile.html b/doc/Gemfile.html index 9dd729b8..e3694771 100644 --- a/doc/Gemfile.html +++ b/doc/Gemfile.html @@ -145,8 +145,16 @@# File lib/wpscan/modules/brute_force.rb, line 23 -def brute_force(logins, wordlist_path) +# File lib/wpscan/modules/brute_force.rb, line 25 +def brute_force(logins, wordlist_path, options = {}) hydra = Browser.instance.hydra number_of_passwords = BruteForce.lines_in_file(wordlist_path) login_url = login_url() found = [] + show_progression = options[:show_progression] || false logins.each do |login| queue_count = 0 @@ -273,7 +276,7 @@ on large wordlists, although bareable. queue_count += 1 # create local vars for on_complete call back, Issue 51. - username = login.name != 'empty' ? login.name : login.nickname # Issue #66 + username = login.name != 'empty' ? login.name : login.nickname # Issue #66 password = password # the request object @@ -293,23 +296,23 @@ on large wordlists, although bareable. if response.body =~ %rlogin_error/ puts "\nIncorrect username and/or password." if @verbose elsif response.code == 302 - puts "\n " + green("[SUCCESS]") + " Username : #{username} Password : #{password}\n" + puts "\n " + green("[SUCCESS]") + " Username : #{username} Password : #{password}\n" if show_progression found << { :name => username, :password => password } password_found = true elsif response.timed_out? - puts red("ERROR:") + " Request timed out." + puts red("ERROR:") + " Request timed out." if show_progression elsif response.code == 0 - puts red("ERROR:") + " No response from remote server. WAF/IPS?" + puts red("ERROR:") + " No response from remote server. WAF/IPS?" if show_progression # code is a fixnum, needs a string for regex elsif response.code.to_s =~ %r^50/ - puts red("ERROR:") + " Server error, try reducing the number of threads." + puts red("ERROR:") + " Server error, try reducing the number of threads." if show_progression else - puts "\n" + red("ERROR:") + " We recieved an unknown response for #{password}..." - if @verbose - puts red("Code: #{response.code.to_s}") - puts red("Body: #{response.body}") - puts - end + puts "\n" + red("ERROR:") + " We recieved an unknown response for #{password}..." if show_progression + + # ugly method to get the coverage :/ (otherwise some output is present in the rspec) + puts red("Code: #{response.code.to_s}") if @verbose + puts red("Body: #{response.body}") if @verbose + puts if @verbose end end @@ -320,7 +323,7 @@ on large wordlists, although bareable. hydra.queue(request) # progress indicator - print "\r Brute forcing user '#{username}' with #{number_of_passwords} passwords... #{(request_count * 100) / number_of_passwords}% complete." + print "\r Brute forcing user '#{username}' with #{number_of_passwords} passwords... #{(request_count * 100) / number_of_passwords}% complete." if show_progression # it can take a long time to queue 2 million requests, # for that reason, we queue @threads, send @threads, queue @threads and so on. diff --git a/doc/CREDITS.html b/doc/CREDITS.html index 0ae7ea72..fbcdf067 100644 --- a/doc/CREDITS.html +++ b/doc/CREDITS.html @@ -160,7 +160,7 @@ potential solutions to bugs. Callum Pember - Implemented proxy support - callumpember at gmail.com g0tmi1k - Additional timthumb checks + bug reports. Melvin Lammerts - Reported a couple of fake vulnerabilities - melvin at 12k.nl Christian Mehlmauer - @FireFart - Theme -enumeration +enumeration Paolo Perego - @thesp0nge - Basic authentificationsource “rubygems.org”
-gem “typhoeus”, “0.4.2” gem “rspec”, :require => “spec” gem “nokogiri” -gem “json” gem “webmock”, “1.8.11” gem “simplecov”
+gem “typhoeus”, “0.4.2” gem “nokogiri” gem “json”
+ +group :development, :test do
+ +gem "webmock", "1.8.11" +gem "simplecov" +gem "rspec", :require => "spec" ++ +end
KNOWN ISSUES==
@@ -286,13 +286,15 @@ specified it. Subdirectories are allowed for the plugins directory. If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed -–proxy Supply a proxy in the format host:port or protocol://host:port -(will override the one from conf/browser.conf.json). HTTP, SOCKS4 SOCKS4A -and SOCKS5 are supported. If no protocol is given (format host:port), HTTP -will be used
+–proxy <[protocol://]host:port> Supply a proxy (will override the +one from conf/browser.conf.json).
-–proxy-auth Supply the proxy login credentials in the format -username:password (will override the one from conf/browser.conf.json).
+HTTP, SOCKS4 SOCKS4A and SOCKS5 are supported. If no protocol is given (format host:port), HTTP will be used+ +–proxy-auth <username:password> Supply the proxy login credentials +(will override the one from conf/browser.conf.json).
+ +–basic-auth <username:password> Set the HTTP Basic authentification
–wordlist | -w <wordlist> Supply a wordlist for the password bruter and do the brute.
@@ -331,7 +333,9 @@ conf/browser.conf.json) | -u Update to the latest revision. –generate_plugin_list [number of pages] Generate a new data/plugins.txt file. (supply number of pages to parse, default : 150) –gpl Alias for -–generate_plugin_list +–generate_plugin_list –check-local-vulnerable-files | –clvf <local +directory> Perform a recursive scan in the <local directory> to +find vulnerable files or shellsWPSTOOLS EXAMPLES==
- @@ -339,6 +343,11 @@ pages] Generate a new data/plugins.txt file. (supply number of
ruby wpstools.rb –generate_plugin_list 150
++ +
- +
Locally scan a wordpress installation for vulnerable files or shells :
+ruby wpstools.rb –check-local-vulnerable-files /var/www/wordpress/
PROJECT HOME===
diff --git a/doc/Vulnerable.html b/doc/Vulnerable.html index 2c130d94..9cb883b6 100644 --- a/doc/Vulnerable.html +++ b/doc/Vulnerable.html @@ -261,7 +261,7 @@ be empty) xml.xpath(@vulns_xpath).each do |node| vulnerabilities << WpVulnerability.new( node.search("title").text, - node.search("reference").text, + node.search("reference").map(&:text), node.search("type").text ) end diff --git a/doc/WebSite.html b/doc/WebSite.html index cf6c67a5..909aec0c 100644 --- a/doc/WebSite.html +++ b/doc/WebSite.html @@ -64,16 +64,24 @@+
@@ -200,10 +208,80 @@ +- ::page_hash + +
- #error_404_hash +
- #has_basic_auth?
- #has_xml_rpc? -
- #is_online? +
- #homepage_hash -
- #is_wordpress? +
- #online?
- #redirection +
- #rss_url + +
- #wordpress? +
- #xml_rpc_url
+ +Public Class Methods
+ + ++ ++ + ++ page_hash(url) + click to toggle source ++ + ++ ++ + + + +Return the MD5 hash of the page given by url
+ + + +++ +# File lib/wpscan/modules/web_site.rb, line 88 +def self.page_hash(url) + Digest::MD5.hexdigest(Browser.instance.get(url).body) +end+Public Instance Methods
++ ++ ++ error_404_hash() + click to toggle source ++ + ++ ++ + + + +Return the MD5 hash of a 404 page
+ + + +++ +# File lib/wpscan/modules/web_site.rb, line 100 +def error_404_hash + unless @error_404_hash + non_existant_page = Digest::MD5.hexdigest(rand(9999999999).to_s) + ".html" + @error_404_hash = WebSite.page_hash(@uri.merge(non_existant_page).to_s) + end + @error_404_hash +end+@@ -220,7 +298,7 @@-# File lib/wpscan/modules/web_site.rb, line 69 +# File lib/wpscan/modules/web_site.rb, line 26 def has_basic_auth? Browser.instance.get(@uri.to_s).code == 401 end@@ -250,7 +328,7 @@--# File lib/wpscan/modules/web_site.rb, line 60 +# File lib/wpscan/modules/web_site.rb, line 56 def has_xml_rpc? !xml_rpc_url.nil? end@@ -264,10 +342,43 @@+- - -+ + +- is_online?homepage_hash() + click to toggle source ++ + ++ + + + + ++ + + + +++ +# File lib/wpscan/modules/web_site.rb, line 92 +def homepage_hash + unless @homepage_hash + @homepage_hash = WebSite.page_hash(@uri.to_s) + end + @homepage_hash +end++ +-+ online?() click to toggle source@@ -279,69 +390,19 @@ --# File lib/wpscan/modules/web_site.rb, line 65 -def is_online? +++# File lib/wpscan/modules/web_site.rb, line 22 +def online? Browser.instance.get(@uri.to_s).code != 0 end-- -+- is_wordpress?() - click to toggle source -- - -- -- - - - -check if the remote website is actually running wordpress.
- - - --- -# File lib/wpscan/modules/web_site.rb, line 23 -def is_wordpress? - wordpress = false - - response = Browser.instance.get( - login_url(), - {:follow_location => true, :max_redirects => 2} - ) - - if response.body =~ %r{WordPress} - wordpress = true - else - response = Browser.instance.get( - xml_rpc_url, - {:follow_location => true, :max_redirects => 2} - ) - - if response.body =~ %r{XML-RPC server accepts POST requests only} - wordpress = true - end - end - - wordpress -end-@@ -383,6 +444,88 @@ redirection or nil++ ++ + ++ rss_url() + click to toggle source ++ + ++ ++ + + + +Will try to find the rss url in the homepage Only the first one found iw +returned
+ + + +++ +# File lib/wpscan/modules/web_site.rb, line 110 +def rss_url + homepage_body = Browser.instance.get(@uri.to_s).body + homepage_body[%r{<link .* type="application/rss\+xml" .* href="([^"]+)" />}, 1] +end++ ++ ++ wordpress?() + click to toggle source ++ + ++ ++ + + + +check if the remote website is actually running wordpress.
+ + + +++ +# File lib/wpscan/modules/web_site.rb, line 32 +def wordpress? + wordpress = false + + response = Browser.instance.get( + login_url(), + {:follow_location => true, :max_redirects => 2} + ) + + if response.body =~ %r{WordPress} + wordpress = true + else + response = Browser.instance.get( + xml_rpc_url, + {:follow_location => true, :max_redirects => 2} + ) + + if response.body =~ %r{XML-RPC server accepts POST requests only} + wordpress = true + end + end + + wordpress +end+@@ -399,7 +542,7 @@ redirection or nil-# File lib/wpscan/modules/web_site.rb, line 47 +# File lib/wpscan/modules/web_site.rb, line 60 def xml_rpc_url unless @xmlrpc_url headers = Browser.instance.get(@uri.to_s).headers_hash diff --git a/doc/WpDetector.html b/doc/WpDetector.html index 400a9131..a375aa9a 100644 --- a/doc/WpDetector.html +++ b/doc/WpDetector.html @@ -277,25 +277,25 @@# File lib/wpscan/wp_detector.rb, line 52 def self.passive_detection(url, type, wp_content_dir) - items = [] - response = Browser.instance.get(url) - regex1 = %r{(?:[^=:]+)\s?(?:=|:)\s?(?:"|')[^"']+\\?/} - regex2 = %r{\\?/} - regex3 = %r{\\?/([^/\\"']+)\\?(?:/|"|')} + items = [] + response = Browser.instance.get(url) + regex1 = %r{(?:[^=:]+)\s?(?:=|:)\s?(?:"|')[^"']+\\?/} + regex2 = %r{\\?/} + regex3 = %r{\\?/([^/\\"']+)\\?(?:/|"|')} # Custom wp-content dir is now used in this regex - names = response.body.scan(%r#{regex1}#{Regexp.escape(wp_content_dir)}#{regex2}#{Regexp.escape(type)}#{regex3}/) + names = response.body.scan(%r#{regex1}#{Regexp.escape(wp_content_dir)}#{regex2}#{Regexp.escape(type)}#{regex3}/) names.flatten! names.uniq! names.each do |item| items << WpItem.new( - :base_url => url, - :name => item, - :type => type, - :path => "#{item}/", - :wp_content_dir => wp_content_dir, - :vulns_file => "" + :base_url => url, + :name => item, + :type => type, + :path => "#{item}/", + :wp_content_dir => wp_content_dir, + :vulns_file => "" ) end items diff --git a/doc/WpEnumerator.html b/doc/WpEnumerator.html index 49e380e1..6a74d375 100644 --- a/doc/WpEnumerator.html +++ b/doc/WpEnumerator.html @@ -234,7 +234,7 @@
filename- filename in the data directory with paths- @@ -253,13 +253,14 @@ end end - found = [] - queue_count = 0 - request_count = 0 - enum_browser = Browser.instance - enum_hydra = enum_browser.hydra - enumerate_size = targets.size - exclude_regexp = options[:exclude_content_based] ? %r{#{options[:exclude_content_based]}} : nil + found = [] + queue_count = 0 + request_count = 0 + enum_browser = Browser.instance + enum_hydra = enum_browser.hydra + enumerate_size = targets.size + exclude_regexp = options[:exclude_content_based] ? %r{#{options[:exclude_content_based]}} : nil + show_progression = options[:show_progression] || false targets.each do |target| url = target.get_full_url @@ -268,11 +269,12 @@ request_count += 1 request.on_complete do |response| + page_hash = Digest::MD5.hexdigest(response.body) - print "\rChecking for #{enumerate_size} total #{options[:type]}... #{(request_count * 100) / enumerate_size}% complete." if options[:show_progress_bar] + print "\rChecking for #{enumerate_size} total #{options[:type]}... #{(request_count * 100) / enumerate_size}% complete." if show_progression if WpTarget.valid_response_codes.include?(response.code) - if Digest::MD5.hexdigest(response.body) != options[:error_404_hash] + if page_hash != options[:error_404_hash] and page_hash != options[:homepage_hash] if options[:exclude_content_based] unless response.body[exclude_regexp] found << target @@ -328,7 +330,7 @@+
show_progress_bar- Show a progress bar during enumeration
show_progression- Show a progress bar during enumeration-# File lib/wpscan/wp_enumerator.rb, line 91 +# File lib/wpscan/wp_enumerator.rb, line 93 def self.generate_items(options = {}) only_vulnerable = options[:only_vulnerable_ones] file = options[:file] @@ -344,13 +346,13 @@ File.open(file, "r") do |f| f.readlines.collect do |line| targets_url << WpItem.new( - :base_url => url, - :path => line.strip, - :wp_content_dir => wp_content_dir, - :name => File.dirname(line.strip), - :vulns_file => vulns_file, - :type => type, - :wp_plugins_dir => plugins_dir + :base_url => url, + :path => line.strip, + :wp_content_dir => wp_content_dir, + :name => File.dirname(line.strip), + :vulns_file => vulns_file, + :type => type, + :wp_plugins_dir => plugins_dir ) end end @@ -366,13 +368,13 @@ xml.xpath(options[:vulns_xpath_2]).each do |node| name = node.attribute("name").text targets_url << WpItem.new( - :base_url => url, - :path => name, - :wp_content_dir => wp_content_dir, - :name => name, - :vulns_file => vulns_file, - :type => type, - :wp_plugins_dir => plugins_dir + :base_url => url, + :path => name, + :wp_content_dir => wp_content_dir, + :name => name, + :vulns_file => vulns_file, + :type => type, + :wp_plugins_dir => plugins_dir ) end end diff --git a/doc/WpOptions.html b/doc/WpOptions.html index 5f32724a..77dc0a43 100644 --- a/doc/WpOptions.html +++ b/doc/WpOptions.html @@ -198,7 +198,7 @@
wp_content_dir- Name of the wp-content directory- +
show_progress_bar- Show a progress bar during enumeration
show_progression- Show a progress bar during enumeration
error_404_hash- MD5 hash of a 404 page@@ -250,7 +250,7 @@ raise("vulns_xpath must be set") unless options[:vulns_xpath] != nil and options[:vulns_xpath].length > 0 raise("vulns_xpath_2 must be set") unless options[:vulns_xpath_2] != nil and options[:vulns_xpath_2].length > 0 raise("wp_content_dir must be set") unless options[:wp_content_dir] != nil and options[:wp_content_dir].length > 0 - raise("show_progress_bar must be set") unless options[:show_progress_bar] != nil + raise("show_progression must be set") unless options[:show_progression] != nil 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 diff --git a/doc/WpPlugins.html b/doc/WpPlugins.html index 3c68341f..5aad8562 100644 --- a/doc/WpPlugins.html +++ b/doc/WpPlugins.html @@ -218,7 +218,7 @@ def plugins_from_aggressive_detection(options) options[:file] = options[:file] || (options[:full] ? "#{DATA_DIR}/plugins_full.txt" : "#{DATA_DIR}/plugins.txt") options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? - options[:vulns_file] : DATA_DIR + "/plugin_vulns.xml" + options[:vulns_file] : DATA_DIR + "/plugin_vulns.xml" options[:vulns_xpath] = "//plugin[@name='#{@name}']/vulnerability" options[:vulns_xpath_2] = "//plugin" options[:type] = "plugins" @@ -226,12 +226,12 @@ plugins = [] result.each do |r| plugins << WpPlugin.new( - :base_url => r.base_url, - :path => r.path, - :wp_content_dir => r.wp_content_dir, - :name => r.name, - :type => "plugins", - :wp_plugins_dir => r.wp_plugins_dir + :base_url => r.base_url, + :path => r.path, + :wp_content_dir => r.wp_content_dir, + :name => r.name, + :type => "plugins", + :wp_plugins_dir => r.wp_plugins_dir ) end plugins.sort_by { |p| p.name } @@ -277,12 +277,12 @@ plugins can be found in the source code : temp.each do |item| plugins << WpPlugin.new( - :base_url => item.base_url, - :name => item.name, - :path => item.path, - :wp_content_dir => options[:wp_content_dir], - :type => "plugins", - :wp_plugins_dir => options[:wp_plugins_dir] + :base_url => item.base_url, + :name => item.name, + :path => item.path, + :wp_content_dir => options[:wp_content_dir], + :type => "plugins", + :wp_plugins_dir => options[:wp_plugins_dir] ) end plugins.sort_by { |p| p.name } diff --git a/doc/WpTarget.html b/doc/WpTarget.html index a72809ff..6737819f 100644 --- a/doc/WpTarget.html +++ b/doc/WpTarget.html @@ -128,8 +128,6 @@ #debug_log_url - #error_404_hash - #has_debug_log? #is_multisite? @@ -333,7 +331,7 @@ -# File lib/wpscan/wp_target.rb, line 36 +# File lib/wpscan/wp_target.rb, line 34 def initialize(target_url, options = {}) @uri = URI.parse(add_trailing_slash(add_http_protocol(target_url))) @verbose = options[:verbose] @@ -369,7 +367,7 @@-# File lib/wpscan/wp_target.rb, line 77 +# File lib/wpscan/wp_target.rb, line 62 def self.valid_response_codes [200, 301, 302, 401, 403, 500] end@@ -405,7 +403,7 @@--# File lib/wpscan/wp_target.rb, line 124 +# File lib/wpscan/wp_target.rb, line 109 def debug_log_url @uri.merge("#{wp_content_dir()}/debug.log").to_s end@@ -419,44 +417,6 @@- -- -- error_404_hash() - click to toggle source -- - -- -- - - - -Return the MD5 hash of a 404 page
- - - --- -# File lib/wpscan/wp_target.rb, line 64 -def error_404_hash - unless @error_404_hash - non_existant_page = Digest::MD5.hexdigest(rand(9999999999).to_s) + ".html" - - response = Browser.instance.get(@uri.merge(non_existant_page).to_s) - - @error_404_hash = Digest::MD5.hexdigest(response.body) - end - - @error_404_hash -end-@@ -473,7 +433,7 @@-# File lib/wpscan/wp_target.rb, line 118 +# File lib/wpscan/wp_target.rb, line 103 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 @@ -505,7 +465,7 @@-# File lib/wpscan/wp_target.rb, line 163 +# File lib/wpscan/wp_target.rb, line 148 def is_multisite? unless @multisite # when multi site, there is no redirection or a redirect to the site itself @@ -550,7 +510,7 @@-# File lib/wpscan/wp_target.rb, line 51 +# File lib/wpscan/wp_target.rb, line 49 def login_url url = @uri.merge("wp-login.php").to_s @@ -588,7 +548,7 @@-# File lib/wpscan/wp_target.rb, line 141 +# File lib/wpscan/wp_target.rb, line 126 def registration_enabled? resp = Browser.instance.get(registration_url) # redirect only on non multi sites @@ -632,7 +592,7 @@-# File lib/wpscan/wp_target.rb, line 159 +# File lib/wpscan/wp_target.rb, line 144 def registration_url is_multisite? ? @uri.merge("wp-signup.php") : @uri.merge("wp-login.php?action=register") end@@ -662,7 +622,7 @@-# File lib/wpscan/wp_target.rb, line 135 +# File lib/wpscan/wp_target.rb, line 120 def search_replace_db_2_exists? resp = Browser.instance.get(search_replace_db_2_url) resp.code == 200 && resp.body[%r{by interconnect}] @@ -695,7 +655,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 131 +# File lib/wpscan/wp_target.rb, line 116 def search_replace_db_2_url @uri.merge("searchreplacedb2.php").to_s end@@ -725,7 +685,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 82 +# File lib/wpscan/wp_target.rb, line 67 def theme WpTheme.find(@uri) end@@ -755,7 +715,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 47 +# File lib/wpscan/wp_target.rb, line 45 def url @uri.to_s end@@ -785,7 +745,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 87 +# File lib/wpscan/wp_target.rb, line 72 def version WpVersion.find(@uri, wp_content_dir) end@@ -815,7 +775,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 91 +# File lib/wpscan/wp_target.rb, line 76 def wp_content_dir unless @wp_content_dir index_body = Browser.instance.get(@uri.to_s).body @@ -857,7 +817,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 107 +# File lib/wpscan/wp_target.rb, line 92 def wp_plugins_dir unless @wp_plugins_dir @wp_plugins_dir = "#{wp_content_dir}/plugins" @@ -890,7 +850,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases/"-# File lib/wpscan/wp_target.rb, line 114 +# File lib/wpscan/wp_target.rb, line 99 def wp_plugins_dir_exists? Browser.instance.get(@uri.merge(wp_plugins_dir)).code != 404 enddiff --git a/doc/WpTheme.html b/doc/WpTheme.html index 2497bdad..20e6049a 100644 --- a/doc/WpTheme.html +++ b/doc/WpTheme.html @@ -295,7 +295,7 @@# 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_file] : DATA_DIR + "/theme_vulns.xml" options[:vulns_xpath] = "//theme[@name='$name$']/vulnerability" options[:type] = "themes" @version = options[:version] diff --git a/doc/WpThemes.html b/doc/WpThemes.html index 28a9c6e6..8e0675a3 100644 --- a/doc/WpThemes.html +++ b/doc/WpThemes.html @@ -216,7 +216,7 @@ def themes_from_aggressive_detection(options) options[:file] = options[:file] || (options[:full] ? "#{DATA_DIR}/themes_full.txt" : "#{DATA_DIR}/themes.txt") options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? - options[:vulns_file] : DATA_DIR + "/wp_theme_vulns.xml" + options[:vulns_file] : DATA_DIR + "/theme_vulns.xml" options[:vulns_xpath] = "//theme[@name='#{@name}']/vulnerability" options[:vulns_xpath_2] = "//theme" options[:type] = "themes" diff --git a/doc/WpUsernames.html b/doc/WpUsernames.html index 85c71826..2b1f585a 100644 --- a/doc/WpUsernames.html +++ b/doc/WpUsernames.html @@ -416,7 +416,7 @@ href="http://seclists.org/fulldisclosure/2011/May/493">seclists.org/fulldisclosu username = nil nickname = nil if response.code == 301 # username in location? - username = response.headers_hash['location'][%r{/author/([^/]+)/}, 1] + username = response.headers_hash['location'][%r{/author/([^/\b]+)/?}, 1] # Get the real name from the redirect site nickname = get_nickname_from_url(url) elsif response.code == 200 # username in body? diff --git a/doc/WpVulnerability.html b/doc/WpVulnerability.html index c5920ded..23cade94 100644 --- a/doc/WpVulnerability.html +++ b/doc/WpVulnerability.html @@ -198,9 +198,9 @@Attributes
-+- referencereferences[RW]@@ -250,7 +250,7 @@new(title, reference, type) + class="method-args">(title, references, type) click to toggle source@@ -263,9 +263,9 @@diff --git a/doc/created.rid b/doc/created.rid index 39fb5ca5..81a32dcf 100644 --- a/doc/created.rid +++ b/doc/created.rid @@ -1,43 +1,43 @@ -Thu, 13 Dec 2012 16:46:56 +0100 -./CREDITS Tue, 25 Sep 2012 20:37:12 +0200 -./Gemfile Thu, 06 Dec 2012 19:53:03 +0100 -./lib/browser.rb Thu, 13 Dec 2012 11:04:19 +0100 -./lib/cache_file_store.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/common_helper.rb Sat, 10 Nov 2012 09:50:17 +0100 -./lib/environment.rb Fri, 23 Nov 2012 18:46:41 +0100 -./lib/updater/git_updater.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/updater/svn_updater.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/updater/updater.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/updater/updater_factory.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/exploit.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/modules/brute_force.rb Thu, 06 Dec 2012 19:53:03 +0100 -./lib/wpscan/modules/malwares.rb Sat, 10 Nov 2012 09:50:17 +0100 -./lib/wpscan/modules/web_site.rb Thu, 13 Dec 2012 16:41:55 +0100 -./lib/wpscan/modules/wp_config_backup.rb Tue, 16 Oct 2012 22:00:10 +0200 -./lib/wpscan/modules/wp_full_path_disclosure.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/modules/wp_login_protection.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/modules/wp_plugins.rb Wed, 28 Nov 2012 20:07:48 +0100 -./lib/wpscan/modules/wp_readme.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/modules/wp_themes.rb Wed, 28 Nov 2012 20:07:48 +0100 -./lib/wpscan/modules/wp_timthumbs.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/modules/wp_usernames.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/msfrpc_client.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/vulnerable.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/wp_detector.rb Thu, 06 Dec 2012 19:53:03 +0100 -./lib/wpscan/wp_enumerator.rb Thu, 06 Dec 2012 19:53:03 +0100 -./lib/wpscan/wp_item.rb Sat, 10 Nov 2012 09:50:17 +0100 -./lib/wpscan/wp_options.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/wp_plugin.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/wp_target.rb Thu, 13 Dec 2012 16:20:41 +0100 -./lib/wpscan/wp_theme.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/wp_user.rb Thu, 06 Dec 2012 21:07:19 +0100 -./lib/wpscan/wp_version.rb Thu, 13 Dec 2012 11:04:19 +0100 -./lib/wpscan/wp_vulnerability.rb Tue, 25 Sep 2012 20:37:12 +0200 -./lib/wpscan/wpscan_helper.rb Thu, 06 Dec 2012 19:53:03 +0100 -./lib/wpscan/wpscan_options.rb Thu, 13 Dec 2012 11:04:19 +0100 -./lib/wpstools/generate_list.rb Wed, 28 Nov 2012 20:07:48 +0100 -./lib/wpstools/parse_svn.rb Sat, 10 Nov 2012 09:50:17 +0100 -./lib/wpstools/wpstools_helper.rb Fri, 07 Dec 2012 20:17:22 +0100 -./README Thu, 13 Dec 2012 11:04:19 +0100 -./wpscan.rb Thu, 13 Dec 2012 16:23:41 +0100 -./wpstools.rb Fri, 07 Dec 2012 20:17:22 +0100 +Wed, 09 Jan 2013 23:03:38 +0100 +./CREDITS Wed, 09 Jan 2013 21:31:44 +0100 +./Gemfile Wed, 09 Jan 2013 21:31:44 +0100 +./lib/browser.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/cache_file_store.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/common_helper.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/environment.rb Wed, 09 Jan 2013 21:33:11 +0100 +./lib/updater/git_updater.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/updater/svn_updater.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/updater/updater.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/updater/updater_factory.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/exploit.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/brute_force.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/malwares.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/web_site.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_config_backup.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_full_path_disclosure.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_login_protection.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_plugins.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_readme.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_themes.rb Wed, 09 Jan 2013 23:00:05 +0100 +./lib/wpscan/modules/wp_timthumbs.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/modules/wp_usernames.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/msfrpc_client.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/vulnerable.rb Wed, 09 Jan 2013 22:46:41 +0100 +./lib/wpscan/wp_detector.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_enumerator.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_item.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_options.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_plugin.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_target.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_theme.rb Wed, 09 Jan 2013 22:59:58 +0100 +./lib/wpscan/wp_user.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_version.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wp_vulnerability.rb Wed, 09 Jan 2013 22:46:41 +0100 +./lib/wpscan/wpscan_helper.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpscan/wpscan_options.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpstools/generate_list.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpstools/parse_svn.rb Wed, 09 Jan 2013 21:31:44 +0100 +./lib/wpstools/wpstools_helper.rb Wed, 09 Jan 2013 21:33:11 +0100 +./README Wed, 09 Jan 2013 21:33:11 +0100 +./wpscan.rb Wed, 09 Jan 2013 22:46:41 +0100 +./wpstools.rb Wed, 09 Jan 2013 22:59:49 +0100 diff --git a/doc/js/quicksearch.js b/doc/js/quicksearch.js deleted file mode 100644 index 70dbd33c..00000000 --- a/doc/js/quicksearch.js +++ /dev/null @@ -1,114 +0,0 @@ -/** - * - * JQuery QuickSearch - Hook up a form field to hide non-matching elements. - * $Id: quicksearch.js 53 2009-01-07 02:52:03Z deveiant $ - * - * Author: Michael Granger# File lib/wpscan/wp_vulnerability.rb, line 22 -def initialize(title, reference, type) +def initialize(title, references, type) @title = title - @reference = reference + @references = references @type = type end- * - */ -jQuery.fn.quicksearch = function( target, searchElems, options ) { - // console.debug( "Quicksearch fn" ); - - var settings = { - delay: 250, - clearButton: false, - highlightMatches: false, - focusOnLoad: false, - noSearchResultsIndicator: null - }; - if ( options ) $.extend( settings, options ); - - return jQuery(this).each( function() { - // console.debug( "Creating a new quicksearch on %o for %o", this, searchElems ); - new jQuery.quicksearch( this, searchElems, settings ); - }); -}; - - -jQuery.quicksearch = function( searchBox, searchElems, settings ) { - var timeout; - var boxdiv = $(searchBox).parents('div').eq(0); - - function init() { - setupKeyEventHandlers(); - focusOnLoad(); - }; - - function setupKeyEventHandlers() { - // console.debug( "Hooking up the 'keypress' event to %o", searchBox ); - $(searchBox). - unbind( 'keyup' ). - keyup( function(e) { return onSearchKey( e.keyCode ); }); - $(searchBox). - unbind( 'keypress' ). - keypress( function(e) { - switch( e.which ) { - // Execute the search on Enter, Tab, or Newline - case 9: - case 13: - case 10: - clearTimeout( timeout ); - e.preventDefault(); - doQuickSearch(); - break; - - // Allow backspace - case 8: - return true; - break; - - // Only allow valid search characters - default: - return validQSChar( e.charCode ); - } - }); - }; - - function focusOnLoad() { - if ( !settings.focusOnLoad ) return false; - $(searchBox).focus(); - }; - - function onSearchKey ( code ) { - clearTimeout( timeout ); - // console.debug( "...scheduling search." ); - timeout = setTimeout( doQuickSearch, settings.delay ); - }; - - function validQSChar( code ) { - var c = String.fromCharCode( code ); - return ( - (c == ':') || - (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') - ); - }; - - function doQuickSearch() { - var searchText = searchBox.value; - var pat = new RegExp( searchText, "im" ); - var shownCount = 0; - - if ( settings.noSearchResultsIndicator ) { - $('#' + settings.noSearchResultsIndicator).hide(); - } - - // All elements start out hidden - $(searchElems).each( function(index) { - var str = $(this).text(); - - if ( pat.test(str) ) { - shownCount += 1; - $(this).fadeIn(); - } else { - $(this).hide(); - } - }); - - if ( shownCount == 0 && settings.noSearchResultsIndicator ) { - $('#' + settings.noSearchResultsIndicator).slideDown(); - } - }; - - init(); -}; diff --git a/doc/js/search_index.js b/doc/js/search_index.js index 1c3662d4..4fe26b00 100644 --- a/doc/js/search_index.js +++ b/doc/js/search_index.js @@ -1 +1 @@ -var search_data = {"index":{"searchIndex":["array","browser","bruteforce","cachefilestore","exploit","generate_list","gitupdater","malwares","object","rpcclient","svnupdater","svn_parser","uri","updater","updaterfactory","vulnerable","website","wpconfigbackup","wpdetector","wpenumerator","wpfullpathdisclosure","wpitem","wploginprotection","wpoptions","wpplugin","wpplugins","wpreadme","wptarget","wptheme","wpthemes","wptimthumbs","wpuser","wpusernames","wpversion","wpvulnerability","wpscanoptions","<=>()","<=>()","==()","===()","===()","===()","_grep_()","add_http_protocol()","add_trailing_slash()","aggressive_detection()","authenticate()","author_url()","available_updaters_classes()","banner()","basic_auth=()","better_wp_security_url()","bluetrait_event_viewer_url()","brute_force()","changelog_url()","check_options()","choose_session()","clean()","clean_option()","colorize()","config_backup()","config_backup_files()","debug_log_url()","directory_listing?()","enumerate()","enumerate_all_plugins=()","enumerate_all_themes=()","enumerate_only_vulnerable_plugins=()","enumerate_only_vulnerable_themes=()","enumerate_options_from_string()","enumerate_plugins=()","enumerate_themes=()","eql?()","error_404_hash()","error_log?()","error_log_url()","escape()","exploit()","exploit()","exploit_info()","extract_name_from_url()","extract_nickname_from_body()","find()","find()","find_from_advanced_fingerprinting()","find_from_atom_generator()","find_from_css_link()","find_from_links_opml()","find_from_meta_generator()","find_from_rdf_generator()","find_from_readme()","find_from_rss_generator()","find_from_sitemap_generator()","find_from_wooframework()","forge_request()","full_path_disclosure_url()","generate_full_list()","generate_items()","generate_popular_list()","get()","get_entry_file_path()","get_equal_string_end()","get_exploit_info()","get_full_url()","get_nickname_from_response()","get_nickname_from_url()","get_opt_long()","get_options()","get_payloads()","get_popular_items()","get_sub_folder()","get_updater()","get_url_without_filename()","green()","grep()","has_basic_auth?()","has_better_wp_security_protection?()","has_bluetrait_event_viewer_protection?()","has_changelog?()","has_debug_log?()","has_full_path_disclosure?()","has_limit_login_attempts_protection?()","has_login_lock_protection?()","has_login_lockdown_protection?()","has_login_protection?()","has_login_security_solution_protection?()","has_malwares?()","has_options?()","has_readme?()","has_readme?()","has_simple_login_lockdown_protection?()","has_timthumbs?()","has_xml_rpc?()","help()","id()","id=()","instance()","is_installed?()","is_installed?()","is_installed?()","is_long_option?()","is_multisite?()","is_online?()","is_wordpress?()","job_id()","jobs()","kill_session()","kill_session()","last_session_id()","limit_login_attempts_url()","lines_in_file()","load_config()","load_from_arguments()","local_revision_number()","local_revision_number()","local_revision_number()","login()","login_protection_plugin()","login_security_solution_url()","login_url()","malware_pattern()","malwares()","malwares_file()","max_threads=()","merge_request_params()","meterpreter_read()","meterpreter_read()","meterpreter_write()","meterpreter_write()","name()","name=()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","nickname()","nickname=()","option_to_instance_variable_setter()","parse()","passive_detection()","plugins_from_aggressive_detection()","plugins_from_passive_detection()","post()","proxy=()","proxy_auth=()","proxy_auth=()","raise_invalid_proxy_format()","raise_must_be_implemented()","read_entry()","read_shell()","read_shell()","readme_url()","readme_url()","red()","redirection()","registration_enabled?()","registration_url()","remove_junk_from_nickname()","repo_directory_arguments()","require_files_from_directory()","reset()","save()","search_replace_db_2_exists?()","search_replace_db_2_url()","session_count()","sessions()","sessions()","set_file_name()","set_option_from_cli()","simple_login_lockdown_url()","start()","targets_url_from_theme()","theme()","themes_from_aggressive_detection()","themes_from_passive_detection()","threads=()","timthumbs()","to_h()","to_s()","update()","update()","update()","url()","url=()","usage()","user_agent()","user_agent_mode=()","usernames()","valid_response_codes()","version()","version()","version_pattern()","vulnerabilities()","wordlist=()","wp_content_dir()","wp_plugins_dir()","wp_plugins_dir_exists?()","write_entry()","write_shell()","write_shell()","xml_rpc_url()","credits","gemfile","readme"],"longSearchIndex":["array","browser","bruteforce","cachefilestore","exploit","generate_list","gitupdater","malwares","object","rpcclient","svnupdater","svn_parser","uri","updater","updaterfactory","vulnerable","website","wpconfigbackup","wpdetector","wpenumerator","wpfullpathdisclosure","wpitem","wploginprotection","wpoptions","wpplugin","wpplugins","wpreadme","wptarget","wptheme","wpthemes","wptimthumbs","wpuser","wpusernames","wpversion","wpvulnerability","wpscanoptions","wpitem#<=>()","wpuser#<=>()","wpitem#==()","wpitem#===()","wptheme#===()","wpuser#===()","array#_grep_()","object#add_http_protocol()","object#add_trailing_slash()","wpdetector::aggressive_detection()","rpcclient#authenticate()","wpusernames#author_url()","updaterfactory::available_updaters_classes()","object#banner()","wpscanoptions#basic_auth=()","wploginprotection#better_wp_security_url()","wploginprotection#bluetrait_event_viewer_url()","bruteforce#brute_force()","wpitem#changelog_url()","wpoptions::check_options()","exploit#choose_session()","cachefilestore#clean()","wpscanoptions::clean_option()","object#colorize()","wpconfigbackup#config_backup()","wpconfigbackup::config_backup_files()","wptarget#debug_log_url()","wpitem#directory_listing?()","wpenumerator::enumerate()","wpscanoptions#enumerate_all_plugins=()","wpscanoptions#enumerate_all_themes=()","wpscanoptions#enumerate_only_vulnerable_plugins=()","wpscanoptions#enumerate_only_vulnerable_themes=()","wpscanoptions#enumerate_options_from_string()","wpscanoptions#enumerate_plugins=()","wpscanoptions#enumerate_themes=()","wpuser#eql?()","wptarget#error_404_hash()","wpplugin#error_log?()","wpplugin#error_log_url()","uri::escape()","exploit#exploit()","rpcclient#exploit()","exploit#exploit_info()","wpitem#extract_name_from_url()","wpusernames#extract_nickname_from_body()","wptheme::find()","wpversion::find()","wpversion::find_from_advanced_fingerprinting()","wpversion::find_from_atom_generator()","wptheme::find_from_css_link()","wpversion::find_from_links_opml()","wpversion::find_from_meta_generator()","wpversion::find_from_rdf_generator()","wpversion::find_from_readme()","wpversion::find_from_rss_generator()","wpversion::find_from_sitemap_generator()","wptheme::find_from_wooframework()","browser#forge_request()","wpfullpathdisclosure#full_path_disclosure_url()","generate_list#generate_full_list()","wpenumerator::generate_items()","generate_list#generate_popular_list()","browser#get()","cachefilestore#get_entry_file_path()","object#get_equal_string_end()","rpcclient#get_exploit_info()","wpitem#get_full_url()","wpusernames#get_nickname_from_response()","wpusernames#get_nickname_from_url()","wpscanoptions::get_opt_long()","rpcclient#get_options()","rpcclient#get_payloads()","generate_list#get_popular_items()","wpitem#get_sub_folder()","updaterfactory::get_updater()","wpitem#get_url_without_filename()","object#green()","array#grep()","website#has_basic_auth?()","wploginprotection#has_better_wp_security_protection?()","wploginprotection#has_bluetrait_event_viewer_protection?()","wpitem#has_changelog?()","wptarget#has_debug_log?()","wpfullpathdisclosure#has_full_path_disclosure?()","wploginprotection#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?()","malwares#has_malwares?()","wpscanoptions#has_options?()","wpitem#has_readme?()","wpreadme#has_readme?()","wploginprotection#has_simple_login_lockdown_protection?()","wptimthumbs#has_timthumbs?()","website#has_xml_rpc?()","object#help()","wpuser#id()","wpuser#id=()","browser::instance()","gitupdater#is_installed?()","svnupdater#is_installed?()","updater#is_installed?()","wpscanoptions::is_long_option?()","wptarget#is_multisite?()","website#is_online?()","website#is_wordpress?()","exploit#job_id()","rpcclient#jobs()","exploit#kill_session()","rpcclient#kill_session()","exploit#last_session_id()","wploginprotection#limit_login_attempts_url()","bruteforce::lines_in_file()","browser#load_config()","wpscanoptions::load_from_arguments()","gitupdater#local_revision_number()","svnupdater#local_revision_number()","updater#local_revision_number()","rpcclient#login()","wploginprotection#login_protection_plugin()","wploginprotection#login_security_solution_url()","wptarget#login_url()","malwares::malware_pattern()","malwares#malwares()","malwares::malwares_file()","browser#max_threads=()","browser#merge_request_params()","exploit#meterpreter_read()","rpcclient#meterpreter_read()","exploit#meterpreter_write()","rpcclient#meterpreter_write()","wpuser#name()","wpuser#name=()","cachefilestore::new()","exploit::new()","generate_list::new()","rpcclient::new()","svn_parser::new()","updater::new()","wpitem::new()","wpplugin::new()","wptarget::new()","wptheme::new()","wpuser::new()","wpversion::new()","wpvulnerability::new()","wpscanoptions::new()","wpuser#nickname()","wpuser#nickname=()","wpscanoptions::option_to_instance_variable_setter()","svn_parser#parse()","wpdetector::passive_detection()","wpplugins#plugins_from_aggressive_detection()","wpplugins#plugins_from_passive_detection()","browser#post()","wpscanoptions#proxy=()","browser#proxy_auth=()","wpscanoptions#proxy_auth=()","browser#raise_invalid_proxy_format()","updater#raise_must_be_implemented()","cachefilestore#read_entry()","exploit#read_shell()","rpcclient#read_shell()","wpitem#readme_url()","wpreadme#readme_url()","object#red()","website#redirection()","wptarget#registration_enabled?()","wptarget#registration_url()","wpusernames#remove_junk_from_nickname()","gitupdater#repo_directory_arguments()","object#require_files_from_directory()","browser::reset()","generate_list#save()","wptarget#search_replace_db_2_exists?()","wptarget#search_replace_db_2_url()","exploit#session_count()","exploit#sessions()","rpcclient#sessions()","generate_list#set_file_name()","wpscanoptions#set_option_from_cli()","wploginprotection#simple_login_lockdown_url()","exploit#start()","wptimthumbs#targets_url_from_theme()","wptarget#theme()","wpthemes#themes_from_aggressive_detection()","wpthemes#themes_from_passive_detection()","wpscanoptions#threads=()","wptimthumbs#timthumbs()","wpscanoptions#to_h()","wpitem#to_s()","gitupdater#update()","svnupdater#update()","updater#update()","wptarget#url()","wpscanoptions#url=()","object#usage()","browser#user_agent()","browser#user_agent_mode=()","wpusernames#usernames()","wptarget::valid_response_codes()","wpitem#version()","wptarget#version()","wpversion::version_pattern()","vulnerable#vulnerabilities()","wpscanoptions#wordlist=()","wptarget#wp_content_dir()","wptarget#wp_plugins_dir()","wptarget#wp_plugins_dir_exists?()","cachefilestore#write_entry()","exploit#write_shell()","rpcclient#write_shell()","website#xml_rpc_url()","","",""],"info":[["Array","","Array.html","",""],["Browser","","Browser.html","",""],["BruteForce","","BruteForce.html","",""],["CacheFileStore","","CacheFileStore.html","",""],["Exploit","","Exploit.html",""," This library should contain all methods for exploitation.\n"],["Generate_List","","Generate_List.html","","
This tool generates a list to use for plugin and theme enumeration\n"],["GitUpdater","","GitUpdater.html","",""],["Malwares","","Malwares.html","",""],["Object","","Object.html","",""],["RpcClient","","RpcClient.html","","
This library should contain all methods to communicate with msfrpc. See\nframework/documentation/msfrpc.txt …\n"],["SvnUpdater","","SvnUpdater.html","",""],["Svn_Parser","","Svn_Parser.html","","
This Class Parses SVN Repositories via HTTP\n"],["URI","","URI.html","",""],["Updater","","Updater.html","","
This class act as an absract one\n"],["UpdaterFactory","","UpdaterFactory.html","",""],["Vulnerable","","Vulnerable.html","",""],["WebSite","","WebSite.html","",""],["WpConfigBackup","","WpConfigBackup.html","",""],["WpDetector","","WpDetector.html","",""],["WpEnumerator","","WpEnumerator.html","","
Enumerate over a given set of items and check if they exist\n"],["WpFullPathDisclosure","","WpFullPathDisclosure.html","",""],["WpItem","","WpItem.html","",""],["WpLoginProtection","","WpLoginProtection.html","",""],["WpOptions","","WpOptions.html","","
Options Hash\n
Options\n
url- The base URL of the WordPress site\n"],["WpPlugin","","WpPlugin.html","",""],["WpPlugins","","WpPlugins.html","",""],["WpReadme","","WpReadme.html","",""],["WpTarget","","WpTarget.html","",""],["WpTheme","","WpTheme.html","",""],["WpThemes","","WpThemes.html","",""],["WpTimthumbs","","WpTimthumbs.html","",""],["WpUser","","WpUser.html","",""],["WpUsernames","","WpUsernames.html","",""],["WpVersion","","WpVersion.html","",""],["WpVulnerability","","WpVulnerability.html","",""],["WpscanOptions","","WpscanOptions.html","",""],["<=>","WpItem","WpItem.html#method-i-3C-3D-3E","(other)","Compare\n"],["<=>","WpUser","WpUser.html#method-i-3C-3D-3E","(item)",""],["==","WpItem","WpItem.html#method-i-3D-3D","(other)","
Compare\n"],["===","WpItem","WpItem.html#method-i-3D-3D-3D","(other)","
Compare\n"],["===","WpTheme","WpTheme.html#method-i-3D-3D-3D","(wp_theme)",""],["===","WpUser","WpUser.html#method-i-3D-3D-3D","(item)",""],["_grep_","Array","Array.html#method-i-_grep_","(regexp)","
Fix for grep with symbols in ruby <= 1.8.7\n"],["add_http_protocol","Object","Object.html#method-i-add_http_protocol","(url)","
Add protocol\n"],["add_trailing_slash","Object","Object.html#method-i-add_trailing_slash","(url)",""],["aggressive_detection","WpDetector","WpDetector.html#method-c-aggressive_detection","(options, items = [])",""],["authenticate","RpcClient","RpcClient.html#method-i-authenticate","()","
check authentication\n"],["author_url","WpUsernames","WpUsernames.html#method-i-author_url","(author_id)",""],["available_updaters_classes","UpdaterFactory","UpdaterFactory.html#method-c-available_updaters_classes","()","
return array of class symbols\n"],["banner","Object","Object.html#method-i-banner","()","
our 1337 banner\n"],["basic_auth=","WpscanOptions","WpscanOptions.html#method-i-basic_auth-3D","(basic_auth)",""],["better_wp_security_url","WpLoginProtection","WpLoginProtection.html#method-i-better_wp_security_url","()",""],["bluetrait_event_viewer_url","WpLoginProtection","WpLoginProtection.html#method-i-bluetrait_event_viewer_url","()",""],["brute_force","BruteForce","BruteForce.html#method-i-brute_force","(logins, wordlist_path)","
param array of string logins param string wordlist_path\n"],["changelog_url","WpItem","WpItem.html#method-i-changelog_url","()","
Url for changelog.txt\n"],["check_options","WpOptions","WpOptions.html#method-c-check_options","(options)",""],["choose_session","Exploit","Exploit.html#method-i-choose_session","()","
if there is more than 1 session, allow the user to choose one.\n"],["clean","CacheFileStore","CacheFileStore.html#method-i-clean","()",""],["clean_option","WpscanOptions","WpscanOptions.html#method-c-clean_option","(option)","
Will removed the ‘-’ or ‘–’ chars at the beginning of option and replace\nany remaining ‘-’ by ‘_’\n
param …\n"],["colorize","Object","Object.html#method-i-colorize","(text, color_code)",""],["config_backup","WpConfigBackup","WpConfigBackup.html#method-i-config_backup","()","
Checks to see if wp-config.php has a backup See www.feross.org/cmsploit/\nreturn an array of backup config …\n"],["config_backup_files","WpConfigBackup","WpConfigBackup.html#method-c-config_backup_files","()","
@return Array\n"],["debug_log_url","WpTarget","WpTarget.html#method-i-debug_log_url","()",""],["directory_listing?","WpItem","WpItem.html#method-i-directory_listing-3F","()","
Is directory listing enabled?\n"],["enumerate","WpEnumerator","WpEnumerator.html#method-c-enumerate","(options = {}, items = nil)","
Enumerate the given Targets\n
Attributes\n
targets- targets to enumerate\n"],["enumerate_all_plugins=","WpscanOptions","WpscanOptions.html#method-i-enumerate_all_plugins-3D","(enumerate_all_plugins)",""],["enumerate_all_themes=","WpscanOptions","WpscanOptions.html#method-i-enumerate_all_themes-3D","(enumerate_all_themes)",""],["enumerate_only_vulnerable_plugins=","WpscanOptions","WpscanOptions.html#method-i-enumerate_only_vulnerable_plugins-3D","(enumerate_only_vulnerable_plugins)",""],["enumerate_only_vulnerable_themes=","WpscanOptions","WpscanOptions.html#method-i-enumerate_only_vulnerable_themes-3D","(enumerate_only_vulnerable_themes)",""],["enumerate_options_from_string","WpscanOptions","WpscanOptions.html#method-i-enumerate_options_from_string","(value)","Will set enumerate_* from the string value IE : if value = vp =>\n:enumerate_only_vulnerable_plugins …\n"],["enumerate_plugins=","WpscanOptions","WpscanOptions.html#method-i-enumerate_plugins-3D","(enumerate_plugins)",""],["enumerate_themes=","WpscanOptions","WpscanOptions.html#method-i-enumerate_themes-3D","(enumerate_themes)",""],["eql?","WpUser","WpUser.html#method-i-eql-3F","(item)",""],["error_404_hash","WpTarget","WpTarget.html#method-i-error_404_hash","()","
Return the MD5 hash of a 404 page\n"],["error_log?","WpPlugin","WpPlugin.html#method-i-error_log-3F","()","
Discover any error_log files created by WordPress These are created by the\nWordPress error_log() function …\n"],["error_log_url","WpPlugin","WpPlugin.html#method-i-error_log_url","()",""],["escape","URI","URI.html#method-c-escape","(str)",""],["exploit","Exploit","Exploit.html#method-i-exploit","(msf_module, payload)","
exploit\n"],["exploit","RpcClient","RpcClient.html#method-i-exploit","(name, opts)","
execute exploit\n"],["exploit_info","Exploit","Exploit.html#method-i-exploit_info","(msf_module,payload)","
output our exploit data\n"],["extract_name_from_url","WpItem","WpItem.html#method-i-extract_name_from_url","()","
Extract item name from a url\n"],["extract_nickname_from_body","WpUsernames","WpUsernames.html#method-i-extract_nickname_from_body","(body)",""],["find","WpTheme","WpTheme.html#method-c-find","(target_uri)",""],["find","WpVersion","WpVersion.html#method-c-find","(target_uri, wp_content_dir)","
Will use all method self.find_from_* to try to detect the version Once the\nversion is found, it will …\n"],["find_from_advanced_fingerprinting","WpVersion","WpVersion.html#method-c-find_from_advanced_fingerprinting","(options)","
Uses data/wp_versions.xml to try to identify a wordpress version.\n
It does this by using client side file …\n"],["find_from_atom_generator","WpVersion","WpVersion.html#method-c-find_from_atom_generator","(options)","
Attempts to find the WordPress version from, the generator tag in the Atom\nsource.\n"],["find_from_css_link","WpTheme","WpTheme.html#method-c-find_from_css_link","(target_uri)","
Discover the wordpress theme name by parsing the css link rel\n"],["find_from_links_opml","WpVersion","WpVersion.html#method-c-find_from_links_opml","(options)","
Attempts to find the WordPress version from the p-links-opml.php file.\n"],["find_from_meta_generator","WpVersion","WpVersion.html#method-c-find_from_meta_generator","(options)","
Attempts to find the wordpress version from, the generator meta tag in the\nhtml source.\n
The meta tag can …\n"],["find_from_rdf_generator","WpVersion","WpVersion.html#method-c-find_from_rdf_generator","(options)","
Attempts to find WordPress version from, the generator tag in the RDF feed\nsource.\n"],["find_from_readme","WpVersion","WpVersion.html#method-c-find_from_readme","(options)","
Attempts to find the WordPress version from the readme.html file.\n"],["find_from_rss_generator","WpVersion","WpVersion.html#method-c-find_from_rss_generator","(options)","
Attempts to find the WordPress version from, the generator tag in the RSS\nfeed source.\n"],["find_from_sitemap_generator","WpVersion","WpVersion.html#method-c-find_from_sitemap_generator","(options)","
Attempts to find the WordPress version from the sitemap.xml file.\n
See: code.google.com/p/wpscan/issues/detail?id=109 …\n"],["find_from_wooframework","WpTheme","WpTheme.html#method-c-find_from_wooframework","(target_uri)","
code.google.com/p/wpscan/issues/detail?id=141\n"],["forge_request","Browser","Browser.html#method-i-forge_request","(url, params = {})",""],["full_path_disclosure_url","WpFullPathDisclosure","WpFullPathDisclosure.html#method-i-full_path_disclosure_url","()",""],["generate_full_list","Generate_List","Generate_List.html#method-i-generate_full_list","()",""],["generate_items","WpEnumerator","WpEnumerator.html#method-c-generate_items","(options = {})",""],["generate_popular_list","Generate_List","Generate_List.html#method-i-generate_popular_list","(pages)",""],["get","Browser","Browser.html#method-i-get","(url, params = {})",""],["get_entry_file_path","CacheFileStore","CacheFileStore.html#method-i-get_entry_file_path","(key)",""],["get_equal_string_end","Object","Object.html#method-i-get_equal_string_end","(stringarray = [\"\"])","
Gets the string all elements in stringarray ends with\n"],["get_exploit_info","RpcClient","RpcClient.html#method-i-get_exploit_info","(name)","
retrieve information about the exploit\n"],["get_full_url","WpItem","WpItem.html#method-i-get_full_url","()","
Get the full url for this item\n"],["get_nickname_from_response","WpUsernames","WpUsernames.html#method-i-get_nickname_from_response","(resp)",""],["get_nickname_from_url","WpUsernames","WpUsernames.html#method-i-get_nickname_from_url","(url)",""],["get_opt_long","WpscanOptions","WpscanOptions.html#method-c-get_opt_long","()","
Even if a short option is given (IE : -u), the long one will be returned\n(IE : –url)\n"],["get_options","RpcClient","RpcClient.html#method-i-get_options","(name)","
retrieve exploit options\n"],["get_payloads","RpcClient","RpcClient.html#method-i-get_payloads","(name)","
retrieve the exploit payloads\n"],["get_popular_items","Generate_List","Generate_List.html#method-i-get_popular_items","(pages)","
Send a HTTP request to the WordPress most popular theme or plugin webpage\nparse the response for the …\n"],["get_sub_folder","WpItem","WpItem.html#method-i-get_sub_folder","()",""],["get_updater","UpdaterFactory","UpdaterFactory.html#method-c-get_updater","(repo_directory)",""],["get_url_without_filename","WpItem","WpItem.html#method-i-get_url_without_filename","()","
Gets the full url for this item without filenames\n"],["green","Object","Object.html#method-i-green","(text)",""],["grep","Array","Array.html#method-i-grep","(regexp)",""],["has_basic_auth?","WebSite","WebSite.html#method-i-has_basic_auth-3F","()",""],["has_better_wp_security_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_better_wp_security_protection-3F","()","
wordpress.org/extend/plugins/better-wp-security/\n"],["has_bluetrait_event_viewer_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_bluetrait_event_viewer_protection-3F","()","
wordpress.org/extend/plugins/bluetrait-event-viewer/\n"],["has_changelog?","WpItem","WpItem.html#method-i-has_changelog-3F","()","
changelog.txt present?\n"],["has_debug_log?","WpTarget","WpTarget.html#method-i-has_debug_log-3F","()",""],["has_full_path_disclosure?","WpFullPathDisclosure","WpFullPathDisclosure.html#method-i-has_full_path_disclosure-3F","()","
Check for Full Path Disclosure (FPD)\n"],["has_limit_login_attempts_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_limit_login_attempts_protection-3F","()","
wordpress.org/extend/plugins/limit-login-attempts/\n"],["has_login_lock_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_lock_protection-3F","()","
wordpress.org/extend/plugins/login-lock/\n"],["has_login_lockdown_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_lockdown_protection-3F","()","
Thanks to Alip Aswalid for providing this method.\nwordpress.org/extend/plugins/login-lockdown/\n"],["has_login_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_protection-3F","()",""],["has_login_security_solution_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_security_solution_protection-3F","()","
wordpress.org/extend/plugins/login-security-solution/\n"],["has_malwares?","Malwares","Malwares.html#method-i-has_malwares-3F","(malwares_file_path = nil)",""],["has_options?","WpscanOptions","WpscanOptions.html#method-i-has_options-3F","()",""],["has_readme?","WpItem","WpItem.html#method-i-has_readme-3F","()","
readme.txt present?\n"],["has_readme?","WpReadme","WpReadme.html#method-i-has_readme-3F","()","
Checks to see if the readme.html file exists\n
This file comes by default in a wordpress installation, and …\n"],["has_simple_login_lockdown_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_simple_login_lockdown_protection-3F","()","
wordpress.org/extend/plugins/simple-login-lockdown/\n"],["has_timthumbs?","WpTimthumbs","WpTimthumbs.html#method-i-has_timthumbs-3F","(theme_name, options = {})",""],["has_xml_rpc?","WebSite","WebSite.html#method-i-has_xml_rpc-3F","()",""],["help","Object","Object.html#method-i-help","()","
command help\n"],["id","WpUser","WpUser.html#method-i-id","()",""],["id=","WpUser","WpUser.html#method-i-id-3D","(new_id)",""],["instance","Browser","Browser.html#method-c-instance","(options = {})",""],["is_installed?","GitUpdater","GitUpdater.html#method-i-is_installed-3F","()",""],["is_installed?","SvnUpdater","SvnUpdater.html#method-i-is_installed-3F","()",""],["is_installed?","Updater","Updater.html#method-i-is_installed-3F","()",""],["is_long_option?","WpscanOptions","WpscanOptions.html#method-c-is_long_option-3F","(option)",""],["is_multisite?","WpTarget","WpTarget.html#method-i-is_multisite-3F","()",""],["is_online?","WebSite","WebSite.html#method-i-is_online-3F","()","
Checks if the remote website is up.\n"],["is_wordpress?","WebSite","WebSite.html#method-i-is_wordpress-3F","()","
check if the remote website is actually running wordpress.\n"],["job_id","Exploit","Exploit.html#method-i-job_id","()","
not sure if this is needed?! not used.\n"],["jobs","RpcClient","RpcClient.html#method-i-jobs","()","
list msf jobs\n"],["kill_session","Exploit","Exploit.html#method-i-kill_session","(id)","
kill a session by session id\n"],["kill_session","RpcClient","RpcClient.html#method-i-kill_session","(id)","
kill msf session\n"],["last_session_id","Exploit","Exploit.html#method-i-last_session_id","()","
the last active session id created\n"],["limit_login_attempts_url","WpLoginProtection","WpLoginProtection.html#method-i-limit_login_attempts_url","()",""],["lines_in_file","BruteForce","BruteForce.html#method-c-lines_in_file","(file_path)","
Counts the number of lines in the wordlist It can take a couple of minutes\non large wordlists, although …\n"],["load_config","Browser","Browser.html#method-i-load_config","(config_file = nil)","
TODO reload hydra (if the .load_config is called on a browser object, hydra\nwill not have the new @max_threads …\n"],["load_from_arguments","WpscanOptions","WpscanOptions.html#method-c-load_from_arguments","()","
Will load the options from ARGV return WpscanOptions\n"],["local_revision_number","GitUpdater","GitUpdater.html#method-i-local_revision_number","()","
Git has not a revsion number like SVN, so we will take the 7 first chars of\nthe last commit hash\n"],["local_revision_number","SvnUpdater","SvnUpdater.html#method-i-local_revision_number","()",""],["local_revision_number","Updater","Updater.html#method-i-local_revision_number","()",""],["login","RpcClient","RpcClient.html#method-i-login","()","
login to msfrpcd\n"],["login_protection_plugin","WpLoginProtection","WpLoginProtection.html#method-i-login_protection_plugin","()","
Checks if a login protection plugin is enabled\ncode.google.com/p/wpscan/issues/detail?id=111 return a …\n"],["login_security_solution_url","WpLoginProtection","WpLoginProtection.html#method-i-login_security_solution_url","()",""],["login_url","WpTarget","WpTarget.html#method-i-login_url","()",""],["malware_pattern","Malwares","Malwares.html#method-c-malware_pattern","(url_regex)",""],["malwares","Malwares","Malwares.html#method-i-malwares","(malwares_file_path = nil)","
return array of string (url of malwares found)\n"],["malwares_file","Malwares","Malwares.html#method-c-malwares_file","(malwares_file_path)",""],["max_threads=","Browser","Browser.html#method-i-max_threads-3D","(max_threads)",""],["merge_request_params","Browser","Browser.html#method-i-merge_request_params","(params = {})",""],["meterpreter_read","Exploit","Exploit.html#method-i-meterpreter_read","(id)","
read data from a meterpreter session data must be base64 decoded.\n"],["meterpreter_read","RpcClient","RpcClient.html#method-i-meterpreter_read","(id)",""],["meterpreter_write","Exploit","Exploit.html#method-i-meterpreter_write","(id, data)","
write data to a meterpreter session data must be base64 encoded.\n"],["meterpreter_write","RpcClient","RpcClient.html#method-i-meterpreter_write","(id, data)",""],["name","WpUser","WpUser.html#method-i-name","()",""],["name=","WpUser","WpUser.html#method-i-name-3D","(new_name)",""],["new","CacheFileStore","CacheFileStore.html#method-c-new","(storage_path, serializer = Marshal)","
The serializer must have the 2 methods .load and .dump (Marshal and YAML\nhave them) YAML is Human Readable …\n"],["new","Exploit","Exploit.html#method-c-new","(wp_url, type, uri, postdata, use_proxy, proxy_addr, proxy_port)",""],["new","Generate_List","Generate_List.html#method-c-new","(type, verbose)","
type = themes | plugins\n"],["new","RpcClient","RpcClient.html#method-c-new","()",""],["new","Svn_Parser","Svn_Parser.html#method-c-new","(svn_root, verbose, keep_empty_dirs = false)",""],["new","Updater","Updater.html#method-c-new","(repo_directory = nil)","
TODO : add a last ‘/ to repo_directory if it’s not present\n"],["new","WpItem","WpItem.html#method-c-new","(options)",""],["new","WpPlugin","WpPlugin.html#method-c-new","(options = {})",""],["new","WpTarget","WpTarget.html#method-c-new","(target_url, options = {})",""],["new","WpTheme","WpTheme.html#method-c-new","(options = {})",""],["new","WpUser","WpUser.html#method-c-new","(name, id, nickname)",""],["new","WpVersion","WpVersion.html#method-c-new","(number, options = {})",""],["new","WpVulnerability","WpVulnerability.html#method-c-new","(title, reference, type)",""],["new","WpscanOptions","WpscanOptions.html#method-c-new","()",""],["nickname","WpUser","WpUser.html#method-i-nickname","()",""],["nickname=","WpUser","WpUser.html#method-i-nickname-3D","(new_nickname)",""],["option_to_instance_variable_setter","WpscanOptions","WpscanOptions.html#method-c-option_to_instance_variable_setter","(option)",""],["parse","Svn_Parser","Svn_Parser.html#method-i-parse","(dirs=nil)",""],["passive_detection","WpDetector","WpDetector.html#method-c-passive_detection","(url, type, wp_content_dir)","
plugins and themes can be found in the source code :\n\n
<script src='http://example.com/wp-content/plugins/s2member/...' ...\n"],["plugins_from_aggressive_detection","WpPlugins","WpPlugins.html#method-i-plugins_from_aggressive_detection","(options)","Enumerate installed plugins.\n
return array of WpPlugin\n"],["plugins_from_passive_detection","WpPlugins","WpPlugins.html#method-i-plugins_from_passive_detection","(options)","
code.google.com/p/wpscan/issues/detail?id=42 plugins can be found in the\nsource code :\n\n
<script src='http://example.com/wp-content/plugins/s2member/...' ...\n"],["post","Browser","Browser.html#method-i-post","(url, params = {})",""],["proxy=","WpscanOptions","WpscanOptions.html#method-i-proxy-3D","(proxy)",""],["proxy_auth=","Browser","Browser.html#method-i-proxy_auth-3D","(auth)",""],["proxy_auth=","WpscanOptions","WpscanOptions.html#method-i-proxy_auth-3D","(auth)",""],["raise_invalid_proxy_format","Browser","Browser.html#method-i-raise_invalid_proxy_format","()",""],["raise_must_be_implemented","Updater","Updater.html#method-i-raise_must_be_implemented","()",""],["read_entry","CacheFileStore","CacheFileStore.html#method-i-read_entry","(key)",""],["read_shell","Exploit","Exploit.html#method-i-read_shell","(id)","read data from a shell, meterpreter is not classed as a shell.\n"],["read_shell","RpcClient","RpcClient.html#method-i-read_shell","(id)","
reads any pending output from session\n"],["readme_url","WpItem","WpItem.html#method-i-readme_url","()","
Url for readme.txt\n"],["readme_url","WpReadme","WpReadme.html#method-i-readme_url","()",""],["red","Object","Object.html#method-i-red","(text)",""],["redirection","WebSite","WebSite.html#method-i-redirection","(url = nil)","
see if the remote url returns 30x redirect return a string with the\nredirection or nil\n"],["registration_enabled?","WpTarget","WpTarget.html#method-i-registration_enabled-3F","()","
Should check wp-login.php if registration is enabled or not\n"],["registration_url","WpTarget","WpTarget.html#method-i-registration_url","()",""],["remove_junk_from_nickname","WpUsernames","WpUsernames.html#method-i-remove_junk_from_nickname","(usernames)",""],["repo_directory_arguments","GitUpdater","GitUpdater.html#method-i-repo_directory_arguments","()",""],["require_files_from_directory","Object","Object.html#method-i-require_files_from_directory","(absolute_dir_path, files_pattern = \"*.rb\")","
TODO : add an exclude pattern ?\n"],["reset","Browser","Browser.html#method-c-reset","()",""],["save","Generate_List","Generate_List.html#method-i-save","(items)","
Save the file\n"],["search_replace_db_2_exists?","WpTarget","WpTarget.html#method-i-search_replace_db_2_exists-3F","()",""],["search_replace_db_2_url","WpTarget","WpTarget.html#method-i-search_replace_db_2_url","()","
Script for replacing strings in wordpress databases reveals databse\ncredentials after hitting submit …\n"],["session_count","Exploit","Exploit.html#method-i-session_count","()","
a count of the amount of active sessions\n"],["sessions","Exploit","Exploit.html#method-i-sessions","()","
all sessions and related session data\n"],["sessions","RpcClient","RpcClient.html#method-i-sessions","()","
list msf sessions\n"],["set_file_name","Generate_List","Generate_List.html#method-i-set_file_name","(type)",""],["set_option_from_cli","WpscanOptions","WpscanOptions.html#method-i-set_option_from_cli","(cli_option, cli_value)","
string cli_option : –url, -u, –proxy etc string cli_value : the option\nvalue\n"],["simple_login_lockdown_url","WpLoginProtection","WpLoginProtection.html#method-i-simple_login_lockdown_url","()",""],["start","Exploit","Exploit.html#method-i-start","()","
figure out what to exploit\n"],["targets_url_from_theme","WpTimthumbs","WpTimthumbs.html#method-i-targets_url_from_theme","(theme_name, options)",""],["theme","WpTarget","WpTarget.html#method-i-theme","()","
return WpTheme\n"],["themes_from_aggressive_detection","WpThemes","WpThemes.html#method-i-themes_from_aggressive_detection","(options)",""],["themes_from_passive_detection","WpThemes","WpThemes.html#method-i-themes_from_passive_detection","(options)",""],["threads=","WpscanOptions","WpscanOptions.html#method-i-threads-3D","(threads)",""],["timthumbs","WpTimthumbs","WpTimthumbs.html#method-i-timthumbs","(theme_name = nil, options = {})",""],["to_h","WpscanOptions","WpscanOptions.html#method-i-to_h","()","
return Hash\n"],["to_s","WpItem","WpItem.html#method-i-to_s","()","
To string. Adds a version number if detected\n"],["update","GitUpdater","GitUpdater.html#method-i-update","()",""],["update","SvnUpdater","SvnUpdater.html#method-i-update","()",""],["update","Updater","Updater.html#method-i-update","()",""],["url","WpTarget","WpTarget.html#method-i-url","()","
Alias of @uri.to_s\n"],["url=","WpscanOptions","WpscanOptions.html#method-i-url-3D","(url)",""],["usage","Object","Object.html#method-i-usage","()","
wpscan usage\n"],["user_agent","Browser","Browser.html#method-i-user_agent","()","
return the user agent, according to the user_agent_mode\n"],["user_agent_mode=","Browser","Browser.html#method-i-user_agent_mode-3D","(ua_mode)",""],["usernames","WpUsernames","WpUsernames.html#method-i-usernames","(options = {})","
Enumerate wordpress usernames by using Veronica Valeros’s technique:\nseclists.org/fulldisclosure/2011/May/493 …\n"],["valid_response_codes","WpTarget","WpTarget.html#method-c-valid_response_codes","()","
Valid HTTP return codes\n"],["version","WpItem","WpItem.html#method-i-version","()","
Returns version number from readme.txt if it exists\n"],["version","WpTarget","WpTarget.html#method-i-version","()","
return WpVersion\n"],["version_pattern","WpVersion","WpVersion.html#method-c-version_pattern","()","
Used to check if the version is correct: must contain at least one dot.\n"],["vulnerabilities","Vulnerable","Vulnerable.html#method-i-vulnerabilities","()","
@return an array of WpVulnerability (can be empty)\n"],["wordlist=","WpscanOptions","WpscanOptions.html#method-i-wordlist-3D","(wordlist)",""],["wp_content_dir","WpTarget","WpTarget.html#method-i-wp_content_dir","()",""],["wp_plugins_dir","WpTarget","WpTarget.html#method-i-wp_plugins_dir","()",""],["wp_plugins_dir_exists?","WpTarget","WpTarget.html#method-i-wp_plugins_dir_exists-3F","()",""],["write_entry","CacheFileStore","CacheFileStore.html#method-i-write_entry","(key, data_to_store, cache_timeout)",""],["write_shell","Exploit","Exploit.html#method-i-write_shell","(id, data)","
write data to a shell, meterpreter is not classed as a shell.\n"],["write_shell","RpcClient","RpcClient.html#method-i-write_shell","(id, data)","
writes the specified input into the session\n"],["xml_rpc_url","WebSite","WebSite.html#method-i-xml_rpc_url","()",""],["CREDITS","","CREDITS.html","","
*CREDITS*\n
This file is to give credit to WPScan’s contributors. If you feel your name\nshould be in here, …\n"],["Gemfile","","Gemfile.html","","
source “rubygems.org”\n
gem “typhoeus”, “0.4.2” gem “rspec”, :require …\n"],["README","","README.html","","
__\n\n
__ _______ _____\n\\ \\ / / __ \\ / ____|\n \\ \\ /\\ / /| |__) | (___ ___ __ _ _ __ ...\n"]]}} \ No newline at end of file +var search_data = {"index":{"searchIndex":["array","browser","bruteforce","cachefilestore","exploit","generate_list","gitupdater","malwares","object","rpcclient","svnupdater","svn_parser","uri","updater","updaterfactory","vulnerable","website","wpconfigbackup","wpdetector","wpenumerator","wpfullpathdisclosure","wpitem","wploginprotection","wpoptions","wpplugin","wpplugins","wpreadme","wptarget","wptheme","wpthemes","wptimthumbs","wpuser","wpusernames","wpversion","wpvulnerability","wpscanoptions","<=>()","<=>()","==()","===()","===()","===()","_grep_()","add_http_protocol()","add_trailing_slash()","aggressive_detection()","authenticate()","author_url()","available_updaters_classes()","banner()","basic_auth=()","better_wp_security_url()","bluetrait_event_viewer_url()","brute_force()","changelog_url()","check_options()","choose_session()","clean()","clean_option()","colorize()","config_backup()","config_backup_files()","debug_log_url()","directory_listing?()","enumerate()","enumerate_all_plugins=()","enumerate_all_themes=()","enumerate_only_vulnerable_plugins=()","enumerate_only_vulnerable_themes=()","enumerate_options_from_string()","enumerate_plugins=()","enumerate_themes=()","eql?()","error_404_hash()","error_log?()","error_log_url()","escape()","exploit()","exploit()","exploit_info()","extract_name_from_url()","extract_nickname_from_body()","find()","find()","find_from_advanced_fingerprinting()","find_from_atom_generator()","find_from_css_link()","find_from_links_opml()","find_from_meta_generator()","find_from_rdf_generator()","find_from_readme()","find_from_rss_generator()","find_from_sitemap_generator()","find_from_wooframework()","forge_request()","full_path_disclosure_url()","generate_full_list()","generate_items()","generate_popular_list()","get()","get_entry_file_path()","get_equal_string_end()","get_exploit_info()","get_full_url()","get_nickname_from_response()","get_nickname_from_url()","get_opt_long()","get_options()","get_payloads()","get_popular_items()","get_sub_folder()","get_updater()","get_url_without_filename()","green()","grep()","has_basic_auth?()","has_better_wp_security_protection?()","has_bluetrait_event_viewer_protection?()","has_changelog?()","has_debug_log?()","has_full_path_disclosure?()","has_limit_login_attempts_protection?()","has_login_lock_protection?()","has_login_lockdown_protection?()","has_login_protection?()","has_login_security_solution_protection?()","has_malwares?()","has_options?()","has_readme?()","has_readme?()","has_simple_login_lockdown_protection?()","has_timthumbs?()","has_xml_rpc?()","help()","homepage_hash()","id()","id=()","instance()","is_installed?()","is_installed?()","is_installed?()","is_long_option?()","is_multisite?()","job_id()","jobs()","kill_session()","kill_session()","last_session_id()","limit_login_attempts_url()","lines_in_file()","load_config()","load_from_arguments()","local_revision_number()","local_revision_number()","local_revision_number()","login()","login_protection_plugin()","login_security_solution_url()","login_url()","malware_pattern()","malwares()","malwares_file()","max_threads=()","merge_request_params()","meterpreter_read()","meterpreter_read()","meterpreter_write()","meterpreter_write()","name()","name=()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","nickname()","nickname=()","online?()","option_to_instance_variable_setter()","page_hash()","parse()","passive_detection()","plugins_from_aggressive_detection()","plugins_from_passive_detection()","post()","proxy=()","proxy_auth=()","proxy_auth=()","raise_invalid_proxy_format()","raise_must_be_implemented()","read_entry()","read_shell()","read_shell()","readme_url()","readme_url()","red()","redirection()","registration_enabled?()","registration_url()","remove_junk_from_nickname()","repo_directory_arguments()","require_files_from_directory()","reset()","rss_url()","save()","search_replace_db_2_exists?()","search_replace_db_2_url()","session_count()","sessions()","sessions()","set_file_name()","set_option_from_cli()","simple_login_lockdown_url()","start()","targets_url_from_theme()","theme()","themes_from_aggressive_detection()","themes_from_passive_detection()","threads=()","timthumbs()","to_h()","to_s()","update()","update()","update()","url()","url=()","usage()","user_agent()","user_agent_mode=()","usernames()","valid_response_codes()","version()","version()","version_pattern()","vulnerabilities()","wordlist=()","wordpress?()","wp_content_dir()","wp_plugins_dir()","wp_plugins_dir_exists?()","write_entry()","write_shell()","write_shell()","xml_rpc_url()","credits","gemfile","readme"],"longSearchIndex":["array","browser","bruteforce","cachefilestore","exploit","generate_list","gitupdater","malwares","object","rpcclient","svnupdater","svn_parser","uri","updater","updaterfactory","vulnerable","website","wpconfigbackup","wpdetector","wpenumerator","wpfullpathdisclosure","wpitem","wploginprotection","wpoptions","wpplugin","wpplugins","wpreadme","wptarget","wptheme","wpthemes","wptimthumbs","wpuser","wpusernames","wpversion","wpvulnerability","wpscanoptions","wpitem#<=>()","wpuser#<=>()","wpitem#==()","wpitem#===()","wptheme#===()","wpuser#===()","array#_grep_()","object#add_http_protocol()","object#add_trailing_slash()","wpdetector::aggressive_detection()","rpcclient#authenticate()","wpusernames#author_url()","updaterfactory::available_updaters_classes()","object#banner()","wpscanoptions#basic_auth=()","wploginprotection#better_wp_security_url()","wploginprotection#bluetrait_event_viewer_url()","bruteforce#brute_force()","wpitem#changelog_url()","wpoptions::check_options()","exploit#choose_session()","cachefilestore#clean()","wpscanoptions::clean_option()","object#colorize()","wpconfigbackup#config_backup()","wpconfigbackup::config_backup_files()","wptarget#debug_log_url()","wpitem#directory_listing?()","wpenumerator::enumerate()","wpscanoptions#enumerate_all_plugins=()","wpscanoptions#enumerate_all_themes=()","wpscanoptions#enumerate_only_vulnerable_plugins=()","wpscanoptions#enumerate_only_vulnerable_themes=()","wpscanoptions#enumerate_options_from_string()","wpscanoptions#enumerate_plugins=()","wpscanoptions#enumerate_themes=()","wpuser#eql?()","website#error_404_hash()","wpplugin#error_log?()","wpplugin#error_log_url()","uri::escape()","exploit#exploit()","rpcclient#exploit()","exploit#exploit_info()","wpitem#extract_name_from_url()","wpusernames#extract_nickname_from_body()","wptheme::find()","wpversion::find()","wpversion::find_from_advanced_fingerprinting()","wpversion::find_from_atom_generator()","wptheme::find_from_css_link()","wpversion::find_from_links_opml()","wpversion::find_from_meta_generator()","wpversion::find_from_rdf_generator()","wpversion::find_from_readme()","wpversion::find_from_rss_generator()","wpversion::find_from_sitemap_generator()","wptheme::find_from_wooframework()","browser#forge_request()","wpfullpathdisclosure#full_path_disclosure_url()","generate_list#generate_full_list()","wpenumerator::generate_items()","generate_list#generate_popular_list()","browser#get()","cachefilestore#get_entry_file_path()","object#get_equal_string_end()","rpcclient#get_exploit_info()","wpitem#get_full_url()","wpusernames#get_nickname_from_response()","wpusernames#get_nickname_from_url()","wpscanoptions::get_opt_long()","rpcclient#get_options()","rpcclient#get_payloads()","generate_list#get_popular_items()","wpitem#get_sub_folder()","updaterfactory::get_updater()","wpitem#get_url_without_filename()","object#green()","array#grep()","website#has_basic_auth?()","wploginprotection#has_better_wp_security_protection?()","wploginprotection#has_bluetrait_event_viewer_protection?()","wpitem#has_changelog?()","wptarget#has_debug_log?()","wpfullpathdisclosure#has_full_path_disclosure?()","wploginprotection#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?()","malwares#has_malwares?()","wpscanoptions#has_options?()","wpitem#has_readme?()","wpreadme#has_readme?()","wploginprotection#has_simple_login_lockdown_protection?()","wptimthumbs#has_timthumbs?()","website#has_xml_rpc?()","object#help()","website#homepage_hash()","wpuser#id()","wpuser#id=()","browser::instance()","gitupdater#is_installed?()","svnupdater#is_installed?()","updater#is_installed?()","wpscanoptions::is_long_option?()","wptarget#is_multisite?()","exploit#job_id()","rpcclient#jobs()","exploit#kill_session()","rpcclient#kill_session()","exploit#last_session_id()","wploginprotection#limit_login_attempts_url()","bruteforce::lines_in_file()","browser#load_config()","wpscanoptions::load_from_arguments()","gitupdater#local_revision_number()","svnupdater#local_revision_number()","updater#local_revision_number()","rpcclient#login()","wploginprotection#login_protection_plugin()","wploginprotection#login_security_solution_url()","wptarget#login_url()","malwares::malware_pattern()","malwares#malwares()","malwares::malwares_file()","browser#max_threads=()","browser#merge_request_params()","exploit#meterpreter_read()","rpcclient#meterpreter_read()","exploit#meterpreter_write()","rpcclient#meterpreter_write()","wpuser#name()","wpuser#name=()","cachefilestore::new()","exploit::new()","generate_list::new()","rpcclient::new()","svn_parser::new()","updater::new()","wpitem::new()","wpplugin::new()","wptarget::new()","wptheme::new()","wpuser::new()","wpversion::new()","wpvulnerability::new()","wpscanoptions::new()","wpuser#nickname()","wpuser#nickname=()","website#online?()","wpscanoptions::option_to_instance_variable_setter()","website::page_hash()","svn_parser#parse()","wpdetector::passive_detection()","wpplugins#plugins_from_aggressive_detection()","wpplugins#plugins_from_passive_detection()","browser#post()","wpscanoptions#proxy=()","browser#proxy_auth=()","wpscanoptions#proxy_auth=()","browser#raise_invalid_proxy_format()","updater#raise_must_be_implemented()","cachefilestore#read_entry()","exploit#read_shell()","rpcclient#read_shell()","wpitem#readme_url()","wpreadme#readme_url()","object#red()","website#redirection()","wptarget#registration_enabled?()","wptarget#registration_url()","wpusernames#remove_junk_from_nickname()","gitupdater#repo_directory_arguments()","object#require_files_from_directory()","browser::reset()","website#rss_url()","generate_list#save()","wptarget#search_replace_db_2_exists?()","wptarget#search_replace_db_2_url()","exploit#session_count()","exploit#sessions()","rpcclient#sessions()","generate_list#set_file_name()","wpscanoptions#set_option_from_cli()","wploginprotection#simple_login_lockdown_url()","exploit#start()","wptimthumbs#targets_url_from_theme()","wptarget#theme()","wpthemes#themes_from_aggressive_detection()","wpthemes#themes_from_passive_detection()","wpscanoptions#threads=()","wptimthumbs#timthumbs()","wpscanoptions#to_h()","wpitem#to_s()","gitupdater#update()","svnupdater#update()","updater#update()","wptarget#url()","wpscanoptions#url=()","object#usage()","browser#user_agent()","browser#user_agent_mode=()","wpusernames#usernames()","wptarget::valid_response_codes()","wpitem#version()","wptarget#version()","wpversion::version_pattern()","vulnerable#vulnerabilities()","wpscanoptions#wordlist=()","website#wordpress?()","wptarget#wp_content_dir()","wptarget#wp_plugins_dir()","wptarget#wp_plugins_dir_exists?()","cachefilestore#write_entry()","exploit#write_shell()","rpcclient#write_shell()","website#xml_rpc_url()","","",""],"info":[["Array","","Array.html","",""],["Browser","","Browser.html","",""],["BruteForce","","BruteForce.html","",""],["CacheFileStore","","CacheFileStore.html","",""],["Exploit","","Exploit.html","","This library should contain all methods for exploitation.\n"],["Generate_List","","Generate_List.html","","
This tool generates a list to use for plugin and theme enumeration\n"],["GitUpdater","","GitUpdater.html","",""],["Malwares","","Malwares.html","",""],["Object","","Object.html","",""],["RpcClient","","RpcClient.html","","
This library should contain all methods to communicate with msfrpc. See\nframework/documentation/msfrpc.txt …\n"],["SvnUpdater","","SvnUpdater.html","",""],["Svn_Parser","","Svn_Parser.html","","
This Class Parses SVN Repositories via HTTP\n"],["URI","","URI.html","",""],["Updater","","Updater.html","","
This class act as an absract one\n"],["UpdaterFactory","","UpdaterFactory.html","",""],["Vulnerable","","Vulnerable.html","",""],["WebSite","","WebSite.html","",""],["WpConfigBackup","","WpConfigBackup.html","",""],["WpDetector","","WpDetector.html","",""],["WpEnumerator","","WpEnumerator.html","","
Enumerate over a given set of items and check if they exist\n"],["WpFullPathDisclosure","","WpFullPathDisclosure.html","",""],["WpItem","","WpItem.html","",""],["WpLoginProtection","","WpLoginProtection.html","",""],["WpOptions","","WpOptions.html","","
Options Hash\n
Options\n
url- The base URL of the WordPress site\n"],["WpPlugin","","WpPlugin.html","",""],["WpPlugins","","WpPlugins.html","",""],["WpReadme","","WpReadme.html","",""],["WpTarget","","WpTarget.html","",""],["WpTheme","","WpTheme.html","",""],["WpThemes","","WpThemes.html","",""],["WpTimthumbs","","WpTimthumbs.html","",""],["WpUser","","WpUser.html","",""],["WpUsernames","","WpUsernames.html","",""],["WpVersion","","WpVersion.html","",""],["WpVulnerability","","WpVulnerability.html","",""],["WpscanOptions","","WpscanOptions.html","",""],["<=>","WpItem","WpItem.html#method-i-3C-3D-3E","(other)","Compare\n"],["<=>","WpUser","WpUser.html#method-i-3C-3D-3E","(item)",""],["==","WpItem","WpItem.html#method-i-3D-3D","(other)","
Compare\n"],["===","WpItem","WpItem.html#method-i-3D-3D-3D","(other)","
Compare\n"],["===","WpTheme","WpTheme.html#method-i-3D-3D-3D","(wp_theme)",""],["===","WpUser","WpUser.html#method-i-3D-3D-3D","(item)",""],["_grep_","Array","Array.html#method-i-_grep_","(regexp)","
Fix for grep with symbols in ruby <= 1.8.7\n"],["add_http_protocol","Object","Object.html#method-i-add_http_protocol","(url)","
Add protocol\n"],["add_trailing_slash","Object","Object.html#method-i-add_trailing_slash","(url)",""],["aggressive_detection","WpDetector","WpDetector.html#method-c-aggressive_detection","(options, items = [])",""],["authenticate","RpcClient","RpcClient.html#method-i-authenticate","()","
check authentication\n"],["author_url","WpUsernames","WpUsernames.html#method-i-author_url","(author_id)",""],["available_updaters_classes","UpdaterFactory","UpdaterFactory.html#method-c-available_updaters_classes","()","
return array of class symbols\n"],["banner","Object","Object.html#method-i-banner","()","
our 1337 banner\n"],["basic_auth=","WpscanOptions","WpscanOptions.html#method-i-basic_auth-3D","(basic_auth)",""],["better_wp_security_url","WpLoginProtection","WpLoginProtection.html#method-i-better_wp_security_url","()",""],["bluetrait_event_viewer_url","WpLoginProtection","WpLoginProtection.html#method-i-bluetrait_event_viewer_url","()",""],["brute_force","BruteForce","BruteForce.html#method-i-brute_force","(logins, wordlist_path, options = {})","
param array of string logins param string wordlist_path param hash options\n\n
boolean :show_progression If ...\n"],["changelog_url","WpItem","WpItem.html#method-i-changelog_url","()","Url for changelog.txt\n"],["check_options","WpOptions","WpOptions.html#method-c-check_options","(options)",""],["choose_session","Exploit","Exploit.html#method-i-choose_session","()","
if there is more than 1 session, allow the user to choose one.\n"],["clean","CacheFileStore","CacheFileStore.html#method-i-clean","()",""],["clean_option","WpscanOptions","WpscanOptions.html#method-c-clean_option","(option)","
Will removed the ‘-’ or ‘–’ chars at the beginning of option and replace\nany remaining ‘-’ by ‘_’\n
param …\n"],["colorize","Object","Object.html#method-i-colorize","(text, color_code)",""],["config_backup","WpConfigBackup","WpConfigBackup.html#method-i-config_backup","()","
Checks to see if wp-config.php has a backup See www.feross.org/cmsploit/\nreturn an array of backup config …\n"],["config_backup_files","WpConfigBackup","WpConfigBackup.html#method-c-config_backup_files","()","
@return Array\n"],["debug_log_url","WpTarget","WpTarget.html#method-i-debug_log_url","()",""],["directory_listing?","WpItem","WpItem.html#method-i-directory_listing-3F","()","
Is directory listing enabled?\n"],["enumerate","WpEnumerator","WpEnumerator.html#method-c-enumerate","(options = {}, items = nil)","
Enumerate the given Targets\n
Attributes\n
targets- targets to enumerate\n"],["enumerate_all_plugins=","WpscanOptions","WpscanOptions.html#method-i-enumerate_all_plugins-3D","(enumerate_all_plugins)",""],["enumerate_all_themes=","WpscanOptions","WpscanOptions.html#method-i-enumerate_all_themes-3D","(enumerate_all_themes)",""],["enumerate_only_vulnerable_plugins=","WpscanOptions","WpscanOptions.html#method-i-enumerate_only_vulnerable_plugins-3D","(enumerate_only_vulnerable_plugins)",""],["enumerate_only_vulnerable_themes=","WpscanOptions","WpscanOptions.html#method-i-enumerate_only_vulnerable_themes-3D","(enumerate_only_vulnerable_themes)",""],["enumerate_options_from_string","WpscanOptions","WpscanOptions.html#method-i-enumerate_options_from_string","(value)","Will set enumerate_* from the string value IE : if value = vp =>\n:enumerate_only_vulnerable_plugins …\n"],["enumerate_plugins=","WpscanOptions","WpscanOptions.html#method-i-enumerate_plugins-3D","(enumerate_plugins)",""],["enumerate_themes=","WpscanOptions","WpscanOptions.html#method-i-enumerate_themes-3D","(enumerate_themes)",""],["eql?","WpUser","WpUser.html#method-i-eql-3F","(item)",""],["error_404_hash","WebSite","WebSite.html#method-i-error_404_hash","()","
Return the MD5 hash of a 404 page\n"],["error_log?","WpPlugin","WpPlugin.html#method-i-error_log-3F","()","
Discover any error_log files created by WordPress These are created by the\nWordPress error_log() function …\n"],["error_log_url","WpPlugin","WpPlugin.html#method-i-error_log_url","()",""],["escape","URI","URI.html#method-c-escape","(str)",""],["exploit","Exploit","Exploit.html#method-i-exploit","(msf_module, payload)","
exploit\n"],["exploit","RpcClient","RpcClient.html#method-i-exploit","(name, opts)","
execute exploit\n"],["exploit_info","Exploit","Exploit.html#method-i-exploit_info","(msf_module,payload)","
output our exploit data\n"],["extract_name_from_url","WpItem","WpItem.html#method-i-extract_name_from_url","()","
Extract item name from a url\n"],["extract_nickname_from_body","WpUsernames","WpUsernames.html#method-i-extract_nickname_from_body","(body)",""],["find","WpTheme","WpTheme.html#method-c-find","(target_uri)",""],["find","WpVersion","WpVersion.html#method-c-find","(target_uri, wp_content_dir)","
Will use all method self.find_from_* to try to detect the version Once the\nversion is found, it will …\n"],["find_from_advanced_fingerprinting","WpVersion","WpVersion.html#method-c-find_from_advanced_fingerprinting","(options)","
Uses data/wp_versions.xml to try to identify a wordpress version.\n
It does this by using client side file …\n"],["find_from_atom_generator","WpVersion","WpVersion.html#method-c-find_from_atom_generator","(options)","
Attempts to find the WordPress version from, the generator tag in the Atom\nsource.\n"],["find_from_css_link","WpTheme","WpTheme.html#method-c-find_from_css_link","(target_uri)","
Discover the wordpress theme name by parsing the css link rel\n"],["find_from_links_opml","WpVersion","WpVersion.html#method-c-find_from_links_opml","(options)","
Attempts to find the WordPress version from the p-links-opml.php file.\n"],["find_from_meta_generator","WpVersion","WpVersion.html#method-c-find_from_meta_generator","(options)","
Attempts to find the wordpress version from, the generator meta tag in the\nhtml source.\n
The meta tag can …\n"],["find_from_rdf_generator","WpVersion","WpVersion.html#method-c-find_from_rdf_generator","(options)","
Attempts to find WordPress version from, the generator tag in the RDF feed\nsource.\n"],["find_from_readme","WpVersion","WpVersion.html#method-c-find_from_readme","(options)","
Attempts to find the WordPress version from the readme.html file.\n"],["find_from_rss_generator","WpVersion","WpVersion.html#method-c-find_from_rss_generator","(options)","
Attempts to find the WordPress version from, the generator tag in the RSS\nfeed source.\n"],["find_from_sitemap_generator","WpVersion","WpVersion.html#method-c-find_from_sitemap_generator","(options)","
Attempts to find the WordPress version from the sitemap.xml file.\n
See: code.google.com/p/wpscan/issues/detail?id=109 …\n"],["find_from_wooframework","WpTheme","WpTheme.html#method-c-find_from_wooframework","(target_uri)","
code.google.com/p/wpscan/issues/detail?id=141\n"],["forge_request","Browser","Browser.html#method-i-forge_request","(url, params = {})",""],["full_path_disclosure_url","WpFullPathDisclosure","WpFullPathDisclosure.html#method-i-full_path_disclosure_url","()",""],["generate_full_list","Generate_List","Generate_List.html#method-i-generate_full_list","()",""],["generate_items","WpEnumerator","WpEnumerator.html#method-c-generate_items","(options = {})",""],["generate_popular_list","Generate_List","Generate_List.html#method-i-generate_popular_list","(pages)",""],["get","Browser","Browser.html#method-i-get","(url, params = {})",""],["get_entry_file_path","CacheFileStore","CacheFileStore.html#method-i-get_entry_file_path","(key)",""],["get_equal_string_end","Object","Object.html#method-i-get_equal_string_end","(stringarray = [\"\"])","
Gets the string all elements in stringarray ends with\n"],["get_exploit_info","RpcClient","RpcClient.html#method-i-get_exploit_info","(name)","
retrieve information about the exploit\n"],["get_full_url","WpItem","WpItem.html#method-i-get_full_url","()","
Get the full url for this item\n"],["get_nickname_from_response","WpUsernames","WpUsernames.html#method-i-get_nickname_from_response","(resp)",""],["get_nickname_from_url","WpUsernames","WpUsernames.html#method-i-get_nickname_from_url","(url)",""],["get_opt_long","WpscanOptions","WpscanOptions.html#method-c-get_opt_long","()","
Even if a short option is given (IE : -u), the long one will be returned\n(IE : –url)\n"],["get_options","RpcClient","RpcClient.html#method-i-get_options","(name)","
retrieve exploit options\n"],["get_payloads","RpcClient","RpcClient.html#method-i-get_payloads","(name)","
retrieve the exploit payloads\n"],["get_popular_items","Generate_List","Generate_List.html#method-i-get_popular_items","(pages)","
Send a HTTP request to the WordPress most popular theme or plugin webpage\nparse the response for the …\n"],["get_sub_folder","WpItem","WpItem.html#method-i-get_sub_folder","()",""],["get_updater","UpdaterFactory","UpdaterFactory.html#method-c-get_updater","(repo_directory)",""],["get_url_without_filename","WpItem","WpItem.html#method-i-get_url_without_filename","()","
Gets the full url for this item without filenames\n"],["green","Object","Object.html#method-i-green","(text)",""],["grep","Array","Array.html#method-i-grep","(regexp)",""],["has_basic_auth?","WebSite","WebSite.html#method-i-has_basic_auth-3F","()",""],["has_better_wp_security_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_better_wp_security_protection-3F","()","
wordpress.org/extend/plugins/better-wp-security/\n"],["has_bluetrait_event_viewer_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_bluetrait_event_viewer_protection-3F","()","
wordpress.org/extend/plugins/bluetrait-event-viewer/\n"],["has_changelog?","WpItem","WpItem.html#method-i-has_changelog-3F","()","
changelog.txt present?\n"],["has_debug_log?","WpTarget","WpTarget.html#method-i-has_debug_log-3F","()",""],["has_full_path_disclosure?","WpFullPathDisclosure","WpFullPathDisclosure.html#method-i-has_full_path_disclosure-3F","()","
Check for Full Path Disclosure (FPD)\n"],["has_limit_login_attempts_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_limit_login_attempts_protection-3F","()","
wordpress.org/extend/plugins/limit-login-attempts/\n"],["has_login_lock_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_lock_protection-3F","()","
wordpress.org/extend/plugins/login-lock/\n"],["has_login_lockdown_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_lockdown_protection-3F","()","
Thanks to Alip Aswalid for providing this method.\nwordpress.org/extend/plugins/login-lockdown/\n"],["has_login_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_protection-3F","()",""],["has_login_security_solution_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_login_security_solution_protection-3F","()","
wordpress.org/extend/plugins/login-security-solution/\n"],["has_malwares?","Malwares","Malwares.html#method-i-has_malwares-3F","(malwares_file_path = nil)",""],["has_options?","WpscanOptions","WpscanOptions.html#method-i-has_options-3F","()",""],["has_readme?","WpItem","WpItem.html#method-i-has_readme-3F","()","
readme.txt present?\n"],["has_readme?","WpReadme","WpReadme.html#method-i-has_readme-3F","()","
Checks to see if the readme.html file exists\n
This file comes by default in a wordpress installation, and …\n"],["has_simple_login_lockdown_protection?","WpLoginProtection","WpLoginProtection.html#method-i-has_simple_login_lockdown_protection-3F","()","
wordpress.org/extend/plugins/simple-login-lockdown/\n"],["has_timthumbs?","WpTimthumbs","WpTimthumbs.html#method-i-has_timthumbs-3F","(theme_name, options = {})",""],["has_xml_rpc?","WebSite","WebSite.html#method-i-has_xml_rpc-3F","()",""],["help","Object","Object.html#method-i-help","()","
command help\n"],["homepage_hash","WebSite","WebSite.html#method-i-homepage_hash","()",""],["id","WpUser","WpUser.html#method-i-id","()",""],["id=","WpUser","WpUser.html#method-i-id-3D","(new_id)",""],["instance","Browser","Browser.html#method-c-instance","(options = {})",""],["is_installed?","GitUpdater","GitUpdater.html#method-i-is_installed-3F","()",""],["is_installed?","SvnUpdater","SvnUpdater.html#method-i-is_installed-3F","()",""],["is_installed?","Updater","Updater.html#method-i-is_installed-3F","()",""],["is_long_option?","WpscanOptions","WpscanOptions.html#method-c-is_long_option-3F","(option)",""],["is_multisite?","WpTarget","WpTarget.html#method-i-is_multisite-3F","()",""],["job_id","Exploit","Exploit.html#method-i-job_id","()","
not sure if this is needed?! not used.\n"],["jobs","RpcClient","RpcClient.html#method-i-jobs","()","
list msf jobs\n"],["kill_session","Exploit","Exploit.html#method-i-kill_session","(id)","
kill a session by session id\n"],["kill_session","RpcClient","RpcClient.html#method-i-kill_session","(id)","
kill msf session\n"],["last_session_id","Exploit","Exploit.html#method-i-last_session_id","()","
the last active session id created\n"],["limit_login_attempts_url","WpLoginProtection","WpLoginProtection.html#method-i-limit_login_attempts_url","()",""],["lines_in_file","BruteForce","BruteForce.html#method-c-lines_in_file","(file_path)","
Counts the number of lines in the wordlist It can take a couple of minutes\non large wordlists, although …\n"],["load_config","Browser","Browser.html#method-i-load_config","(config_file = nil)","
TODO reload hydra (if the .load_config is called on a browser object, hydra\nwill not have the new @max_threads …\n"],["load_from_arguments","WpscanOptions","WpscanOptions.html#method-c-load_from_arguments","()","
Will load the options from ARGV return WpscanOptions\n"],["local_revision_number","GitUpdater","GitUpdater.html#method-i-local_revision_number","()","
Git has not a revsion number like SVN, so we will take the 7 first chars of\nthe last commit hash\n"],["local_revision_number","SvnUpdater","SvnUpdater.html#method-i-local_revision_number","()",""],["local_revision_number","Updater","Updater.html#method-i-local_revision_number","()",""],["login","RpcClient","RpcClient.html#method-i-login","()","
login to msfrpcd\n"],["login_protection_plugin","WpLoginProtection","WpLoginProtection.html#method-i-login_protection_plugin","()","
Checks if a login protection plugin is enabled\ncode.google.com/p/wpscan/issues/detail?id=111 return a …\n"],["login_security_solution_url","WpLoginProtection","WpLoginProtection.html#method-i-login_security_solution_url","()",""],["login_url","WpTarget","WpTarget.html#method-i-login_url","()",""],["malware_pattern","Malwares","Malwares.html#method-c-malware_pattern","(url_regex)",""],["malwares","Malwares","Malwares.html#method-i-malwares","(malwares_file_path = nil)","
return array of string (url of malwares found)\n"],["malwares_file","Malwares","Malwares.html#method-c-malwares_file","(malwares_file_path)",""],["max_threads=","Browser","Browser.html#method-i-max_threads-3D","(max_threads)",""],["merge_request_params","Browser","Browser.html#method-i-merge_request_params","(params = {})",""],["meterpreter_read","Exploit","Exploit.html#method-i-meterpreter_read","(id)","
read data from a meterpreter session data must be base64 decoded.\n"],["meterpreter_read","RpcClient","RpcClient.html#method-i-meterpreter_read","(id)",""],["meterpreter_write","Exploit","Exploit.html#method-i-meterpreter_write","(id, data)","
write data to a meterpreter session data must be base64 encoded.\n"],["meterpreter_write","RpcClient","RpcClient.html#method-i-meterpreter_write","(id, data)",""],["name","WpUser","WpUser.html#method-i-name","()",""],["name=","WpUser","WpUser.html#method-i-name-3D","(new_name)",""],["new","CacheFileStore","CacheFileStore.html#method-c-new","(storage_path, serializer = Marshal)","
The serializer must have the 2 methods .load and .dump (Marshal and YAML\nhave them) YAML is Human Readable …\n"],["new","Exploit","Exploit.html#method-c-new","(wp_url, type, uri, postdata, use_proxy, proxy_addr, proxy_port)",""],["new","Generate_List","Generate_List.html#method-c-new","(type, verbose)","
type = themes | plugins\n"],["new","RpcClient","RpcClient.html#method-c-new","()",""],["new","Svn_Parser","Svn_Parser.html#method-c-new","(svn_root, verbose, keep_empty_dirs = false)",""],["new","Updater","Updater.html#method-c-new","(repo_directory = nil)","
TODO : add a last ‘/ to repo_directory if it’s not present\n"],["new","WpItem","WpItem.html#method-c-new","(options)",""],["new","WpPlugin","WpPlugin.html#method-c-new","(options = {})",""],["new","WpTarget","WpTarget.html#method-c-new","(target_url, options = {})",""],["new","WpTheme","WpTheme.html#method-c-new","(options = {})",""],["new","WpUser","WpUser.html#method-c-new","(name, id, nickname)",""],["new","WpVersion","WpVersion.html#method-c-new","(number, options = {})",""],["new","WpVulnerability","WpVulnerability.html#method-c-new","(title, references, type)",""],["new","WpscanOptions","WpscanOptions.html#method-c-new","()",""],["nickname","WpUser","WpUser.html#method-i-nickname","()",""],["nickname=","WpUser","WpUser.html#method-i-nickname-3D","(new_nickname)",""],["online?","WebSite","WebSite.html#method-i-online-3F","()","
Checks if the remote website is up.\n"],["option_to_instance_variable_setter","WpscanOptions","WpscanOptions.html#method-c-option_to_instance_variable_setter","(option)",""],["page_hash","WebSite","WebSite.html#method-c-page_hash","(url)","
Return the MD5 hash of the page given by url\n"],["parse","Svn_Parser","Svn_Parser.html#method-i-parse","(dirs=nil)",""],["passive_detection","WpDetector","WpDetector.html#method-c-passive_detection","(url, type, wp_content_dir)","
plugins and themes can be found in the source code :\n\n
<script src='http://example.com/wp-content/plugins/s2member/...' ...\n"],["plugins_from_aggressive_detection","WpPlugins","WpPlugins.html#method-i-plugins_from_aggressive_detection","(options)","Enumerate installed plugins.\n
return array of WpPlugin\n"],["plugins_from_passive_detection","WpPlugins","WpPlugins.html#method-i-plugins_from_passive_detection","(options)","
code.google.com/p/wpscan/issues/detail?id=42 plugins can be found in the\nsource code :\n\n
<script src='http://example.com/wp-content/plugins/s2member/...' ...\n"],["post","Browser","Browser.html#method-i-post","(url, params = {})",""],["proxy=","WpscanOptions","WpscanOptions.html#method-i-proxy-3D","(proxy)",""],["proxy_auth=","Browser","Browser.html#method-i-proxy_auth-3D","(auth)",""],["proxy_auth=","WpscanOptions","WpscanOptions.html#method-i-proxy_auth-3D","(auth)",""],["raise_invalid_proxy_format","Browser","Browser.html#method-i-raise_invalid_proxy_format","()",""],["raise_must_be_implemented","Updater","Updater.html#method-i-raise_must_be_implemented","()",""],["read_entry","CacheFileStore","CacheFileStore.html#method-i-read_entry","(key)",""],["read_shell","Exploit","Exploit.html#method-i-read_shell","(id)","read data from a shell, meterpreter is not classed as a shell.\n"],["read_shell","RpcClient","RpcClient.html#method-i-read_shell","(id)","
reads any pending output from session\n"],["readme_url","WpItem","WpItem.html#method-i-readme_url","()","
Url for readme.txt\n"],["readme_url","WpReadme","WpReadme.html#method-i-readme_url","()",""],["red","Object","Object.html#method-i-red","(text)",""],["redirection","WebSite","WebSite.html#method-i-redirection","(url = nil)","
see if the remote url returns 30x redirect return a string with the\nredirection or nil\n"],["registration_enabled?","WpTarget","WpTarget.html#method-i-registration_enabled-3F","()","
Should check wp-login.php if registration is enabled or not\n"],["registration_url","WpTarget","WpTarget.html#method-i-registration_url","()",""],["remove_junk_from_nickname","WpUsernames","WpUsernames.html#method-i-remove_junk_from_nickname","(usernames)",""],["repo_directory_arguments","GitUpdater","GitUpdater.html#method-i-repo_directory_arguments","()",""],["require_files_from_directory","Object","Object.html#method-i-require_files_from_directory","(absolute_dir_path, files_pattern = \"*.rb\")","
TODO : add an exclude pattern ?\n"],["reset","Browser","Browser.html#method-c-reset","()",""],["rss_url","WebSite","WebSite.html#method-i-rss_url","()","
Will try to find the rss url in the homepage Only the first one found iw\nreturned\n"],["save","Generate_List","Generate_List.html#method-i-save","(items)","
Save the file\n"],["search_replace_db_2_exists?","WpTarget","WpTarget.html#method-i-search_replace_db_2_exists-3F","()",""],["search_replace_db_2_url","WpTarget","WpTarget.html#method-i-search_replace_db_2_url","()","
Script for replacing strings in wordpress databases reveals databse\ncredentials after hitting submit …\n"],["session_count","Exploit","Exploit.html#method-i-session_count","()","
a count of the amount of active sessions\n"],["sessions","Exploit","Exploit.html#method-i-sessions","()","
all sessions and related session data\n"],["sessions","RpcClient","RpcClient.html#method-i-sessions","()","
list msf sessions\n"],["set_file_name","Generate_List","Generate_List.html#method-i-set_file_name","(type)",""],["set_option_from_cli","WpscanOptions","WpscanOptions.html#method-i-set_option_from_cli","(cli_option, cli_value)","
string cli_option : –url, -u, –proxy etc string cli_value : the option\nvalue\n"],["simple_login_lockdown_url","WpLoginProtection","WpLoginProtection.html#method-i-simple_login_lockdown_url","()",""],["start","Exploit","Exploit.html#method-i-start","()","
figure out what to exploit\n"],["targets_url_from_theme","WpTimthumbs","WpTimthumbs.html#method-i-targets_url_from_theme","(theme_name, options)",""],["theme","WpTarget","WpTarget.html#method-i-theme","()","
return WpTheme\n"],["themes_from_aggressive_detection","WpThemes","WpThemes.html#method-i-themes_from_aggressive_detection","(options)",""],["themes_from_passive_detection","WpThemes","WpThemes.html#method-i-themes_from_passive_detection","(options)",""],["threads=","WpscanOptions","WpscanOptions.html#method-i-threads-3D","(threads)",""],["timthumbs","WpTimthumbs","WpTimthumbs.html#method-i-timthumbs","(theme_name = nil, options = {})",""],["to_h","WpscanOptions","WpscanOptions.html#method-i-to_h","()","
return Hash\n"],["to_s","WpItem","WpItem.html#method-i-to_s","()","
To string. Adds a version number if detected\n"],["update","GitUpdater","GitUpdater.html#method-i-update","()",""],["update","SvnUpdater","SvnUpdater.html#method-i-update","()",""],["update","Updater","Updater.html#method-i-update","()",""],["url","WpTarget","WpTarget.html#method-i-url","()","
Alias of @uri.to_s\n"],["url=","WpscanOptions","WpscanOptions.html#method-i-url-3D","(url)",""],["usage","Object","Object.html#method-i-usage","()","
wpscan usage\n"],["user_agent","Browser","Browser.html#method-i-user_agent","()","
return the user agent, according to the user_agent_mode\n"],["user_agent_mode=","Browser","Browser.html#method-i-user_agent_mode-3D","(ua_mode)",""],["usernames","WpUsernames","WpUsernames.html#method-i-usernames","(options = {})","
Enumerate wordpress usernames by using Veronica Valeros’s technique:\nseclists.org/fulldisclosure/2011/May/493 …\n"],["valid_response_codes","WpTarget","WpTarget.html#method-c-valid_response_codes","()","
Valid HTTP return codes\n"],["version","WpItem","WpItem.html#method-i-version","()","
Returns version number from readme.txt if it exists\n"],["version","WpTarget","WpTarget.html#method-i-version","()","
return WpVersion\n"],["version_pattern","WpVersion","WpVersion.html#method-c-version_pattern","()","
Used to check if the version is correct: must contain at least one dot.\n"],["vulnerabilities","Vulnerable","Vulnerable.html#method-i-vulnerabilities","()","
@return an array of WpVulnerability (can be empty)\n"],["wordlist=","WpscanOptions","WpscanOptions.html#method-i-wordlist-3D","(wordlist)",""],["wordpress?","WebSite","WebSite.html#method-i-wordpress-3F","()","
check if the remote website is actually running wordpress.\n"],["wp_content_dir","WpTarget","WpTarget.html#method-i-wp_content_dir","()",""],["wp_plugins_dir","WpTarget","WpTarget.html#method-i-wp_plugins_dir","()",""],["wp_plugins_dir_exists?","WpTarget","WpTarget.html#method-i-wp_plugins_dir_exists-3F","()",""],["write_entry","CacheFileStore","CacheFileStore.html#method-i-write_entry","(key, data_to_store, cache_timeout)",""],["write_shell","Exploit","Exploit.html#method-i-write_shell","(id, data)","
write data to a shell, meterpreter is not classed as a shell.\n"],["write_shell","RpcClient","RpcClient.html#method-i-write_shell","(id, data)","
writes the specified input into the session\n"],["xml_rpc_url","WebSite","WebSite.html#method-i-xml_rpc_url","()",""],["CREDITS","","CREDITS.html","","
*CREDITS*\n
This file is to give credit to WPScan’s contributors. If you feel your name\nshould be in here, …\n"],["Gemfile","","Gemfile.html","","
source “rubygems.org”\n
gem “typhoeus”, “0.4.2” gem “nokogiri” gem …\n"],["README","","README.html","","
__\n\n
__ _______ _____\n\\ \\ / / __ \\ / ____|\n \\ \\ /\\ / /| |__) | (___ ___ __ _ _ __ ...\n"]]}} \ No newline at end of file diff --git a/doc/js/thickbox-compressed.js b/doc/js/thickbox-compressed.js deleted file mode 100644 index 3a3fdae1..00000000 --- a/doc/js/thickbox-compressed.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Thickbox 3 - One Box To Rule Them All. - * By Cody Lindley (http://www.codylindley.com) - * Copyright (c) 2007 cody lindley - * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php -*/ - -var tb_pathToImage = "../images/loadingAnimation.gif"; - -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<4 5=\'B\'>4><4 5=\'8\'>4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'>4><4 5=\'8\'>4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' />4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D&1d;&1d;2T &2R;1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;&2O; 2N1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"4>4><4 5=\'2A\'>1l 1k 1j 1s4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'>4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'>4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"4><4 5=\'2e\'>1l 1k 1j 1s4>4> ")}n{$("#B").N();$("#8").q(" ")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"4><4 5=\'2e\'>1l 1k 1j 1s4>4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'>4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'>4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i - - - - - - - File: browser.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/cache_file_store_rb.html b/doc/lib/cache_file_store_rb.html deleted file mode 100644 index d6d0dd1f..00000000 --- a/doc/lib/cache_file_store_rb.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - --- -Description
- -File: cache_file_store.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- yaml
- -- -- - - diff --git a/doc/lib/common_helper_rb.html b/doc/lib/common_helper_rb.html deleted file mode 100644 index 32b59fe7..00000000 --- a/doc/lib/common_helper_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: common_helper.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 18:38:13 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/environment_rb.html b/doc/lib/environment_rb.html deleted file mode 100644 index 7595805f..00000000 --- a/doc/lib/environment_rb.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - --- -Description
- -File: environment.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- rubygems
- -- getoptlong
- -- uri
- -- time
- -- resolv
- -- xmlrpc/client
- -- digest/md5
- -- readline
- -- base64
- -- cgi
- -- rbconfig
- -- pp
- -- typhoeus
- -- json
- -- nokogiri
- -- -- - - diff --git a/doc/lib/updater/git_updater_rb.html b/doc/lib/updater/git_updater_rb.html deleted file mode 100644 index cb8a3959..00000000 --- a/doc/lib/updater/git_updater_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: git_updater.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/updater/svn_updater_rb.html b/doc/lib/updater/svn_updater_rb.html deleted file mode 100644 index 5d7ab41f..00000000 --- a/doc/lib/updater/svn_updater_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: svn_updater.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/updater/updater_factory_rb.html b/doc/lib/updater/updater_factory_rb.html deleted file mode 100644 index 8e9e78ff..00000000 --- a/doc/lib/updater/updater_factory_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: updater_factory.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/updater/updater_rb.html b/doc/lib/updater/updater_rb.html deleted file mode 100644 index d7db529d..00000000 --- a/doc/lib/updater/updater_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: updater.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/exploit_rb.html b/doc/lib/wpscan/exploit_rb.html deleted file mode 100644 index 888efe73..00000000 --- a/doc/lib/wpscan/exploit_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: exploit.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/brute_force_rb.html b/doc/lib/wpscan/modules/brute_force_rb.html deleted file mode 100644 index cf7c2420..00000000 --- a/doc/lib/wpscan/modules/brute_force_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: brute_force.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/malwares_rb.html b/doc/lib/wpscan/modules/malwares_rb.html deleted file mode 100644 index 9a67c28d..00000000 --- a/doc/lib/wpscan/modules/malwares_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: malwares.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 16:21:49 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/web_site_rb.html b/doc/lib/wpscan/modules/web_site_rb.html deleted file mode 100644 index 28b02c87..00000000 --- a/doc/lib/wpscan/modules/web_site_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: web_site.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_config_backup_rb.html b/doc/lib/wpscan/modules/wp_config_backup_rb.html deleted file mode 100644 index d5d00fec..00000000 --- a/doc/lib/wpscan/modules/wp_config_backup_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_config_backup.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 16:18:23 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_full_path_disclosure_rb.html b/doc/lib/wpscan/modules/wp_full_path_disclosure_rb.html deleted file mode 100644 index 4cb1b50b..00000000 --- a/doc/lib/wpscan/modules/wp_full_path_disclosure_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_full_path_disclosure.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_login_protection_rb.html b/doc/lib/wpscan/modules/wp_login_protection_rb.html deleted file mode 100644 index 3161f5b7..00000000 --- a/doc/lib/wpscan/modules/wp_login_protection_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_login_protection.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_plugins_rb.html b/doc/lib/wpscan/modules/wp_plugins_rb.html deleted file mode 100644 index a5d45c3e..00000000 --- a/doc/lib/wpscan/modules/wp_plugins_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_plugins.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_readme_rb.html b/doc/lib/wpscan/modules/wp_readme_rb.html deleted file mode 100644 index 0be85640..00000000 --- a/doc/lib/wpscan/modules/wp_readme_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_readme.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_themes_rb.html b/doc/lib/wpscan/modules/wp_themes_rb.html deleted file mode 100644 index bf09e6aa..00000000 --- a/doc/lib/wpscan/modules/wp_themes_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_themes.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_timthumbs_rb.html b/doc/lib/wpscan/modules/wp_timthumbs_rb.html deleted file mode 100644 index ae9378b0..00000000 --- a/doc/lib/wpscan/modules/wp_timthumbs_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_timthumbs.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/modules/wp_usernames_rb.html b/doc/lib/wpscan/modules/wp_usernames_rb.html deleted file mode 100644 index a3fc63e6..00000000 --- a/doc/lib/wpscan/modules/wp_usernames_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_usernames.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/msfrpc_client_rb.html b/doc/lib/wpscan/msfrpc_client_rb.html deleted file mode 100644 index 2cf220dc..00000000 --- a/doc/lib/wpscan/msfrpc_client_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: msfrpc_client.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/vulnerable_rb.html b/doc/lib/wpscan/vulnerable_rb.html deleted file mode 100644 index 83d0c7b3..00000000 --- a/doc/lib/wpscan/vulnerable_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: vulnerable.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_detector_rb.html b/doc/lib/wpscan/wp_detector_rb.html deleted file mode 100644 index 12efba67..00000000 --- a/doc/lib/wpscan/wp_detector_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_detector.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_enumerator_rb.html b/doc/lib/wpscan/wp_enumerator_rb.html deleted file mode 100644 index 2feb7d5d..00000000 --- a/doc/lib/wpscan/wp_enumerator_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_enumerator.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_item_rb.html b/doc/lib/wpscan/wp_item_rb.html deleted file mode 100644 index ac08b5f5..00000000 --- a/doc/lib/wpscan/wp_item_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_item.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_options_rb.html b/doc/lib/wpscan/wp_options_rb.html deleted file mode 100644 index 67824a0d..00000000 --- a/doc/lib/wpscan/wp_options_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_options.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_plugin_rb.html b/doc/lib/wpscan/wp_plugin_rb.html deleted file mode 100644 index 3c23e15f..00000000 --- a/doc/lib/wpscan/wp_plugin_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_plugin.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_target_rb.html b/doc/lib/wpscan/wp_target_rb.html deleted file mode 100644 index fa16d844..00000000 --- a/doc/lib/wpscan/wp_target_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_target.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 16:19:38 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_theme_rb.html b/doc/lib/wpscan/wp_theme_rb.html deleted file mode 100644 index 34abf8e9..00000000 --- a/doc/lib/wpscan/wp_theme_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_theme.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_user_rb.html b/doc/lib/wpscan/wp_user_rb.html deleted file mode 100644 index d95b2089..00000000 --- a/doc/lib/wpscan/wp_user_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_user.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_version_rb.html b/doc/lib/wpscan/wp_version_rb.html deleted file mode 100644 index 45b08b9c..00000000 --- a/doc/lib/wpscan/wp_version_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_version.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wp_vulnerability_rb.html b/doc/lib/wpscan/wp_vulnerability_rb.html deleted file mode 100644 index 96024e73..00000000 --- a/doc/lib/wpscan/wp_vulnerability_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wp_vulnerability.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wpscan_helper_rb.html b/doc/lib/wpscan/wpscan_helper_rb.html deleted file mode 100644 index 3129dd86..00000000 --- a/doc/lib/wpscan/wpscan_helper_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wpscan_helper.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpscan/wpscan_options_rb.html b/doc/lib/wpscan/wpscan_options_rb.html deleted file mode 100644 index 2488372b..00000000 --- a/doc/lib/wpscan/wpscan_options_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wpscan_options.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 15:45:42 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpstools/generate_list_rb.html b/doc/lib/wpstools/generate_list_rb.html deleted file mode 100644 index 8861b4d6..00000000 --- a/doc/lib/wpstools/generate_list_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: generate_list.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpstools/parse_svn_rb.html b/doc/lib/wpstools/parse_svn_rb.html deleted file mode 100644 index 90522f43..00000000 --- a/doc/lib/wpstools/parse_svn_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: parse_svn.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/lib/wpstools/wpstools_helper_rb.html b/doc/lib/wpstools/wpstools_helper_rb.html deleted file mode 100644 index bde27394..00000000 --- a/doc/lib/wpstools/wpstools_helper_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wpstools_helper.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/table_of_contents.html b/doc/table_of_contents.html index 7e49770f..d50626a3 100644 --- a/doc/table_of_contents.html +++ b/doc/table_of_contents.html @@ -187,10 +187,10 @@-- -Description
- -::escape — URI - ::find — WpTheme - ::find — WpVersion + ::find — WpTheme + ::find_from_advanced_fingerprinting — WpVersion ::find_from_atom_generator — WpVersion @@ -229,36 +229,38 @@ ::malwares_file — Malwares - ::new — WpPlugin - - ::new — WpscanOptions - - ::new — RpcClient - ::new — WpVersion + ::new — WpPlugin + ::new — WpItem - ::new — WpTarget - - ::new — WpUser - ::new — CacheFileStore - ::new — Updater + ::new — WpscanOptions - ::new — WpVulnerability - - ::new — Generate_List - - ::new — Exploit - - ::new — Svn_Parser + ::new — WpTarget ::new — WpTheme + ::new — WpUser + + ::new — Updater + + ::new — Exploit + + ::new — Generate_List + + ::new — WpVulnerability + + ::new — Svn_Parser + + ::new — RpcClient + ::option_to_instance_variable_setter — WpscanOptions + ::page_hash — WebSite + ::passive_detection — WpDetector ::reset — Browser @@ -273,12 +275,12 @@ #== — WpItem - #=== — WpItem - #=== — WpUser #=== — WpTheme + #=== — WpItem + #_grep_ — Array #add_http_protocol — Object @@ -329,7 +331,7 @@ #eql? — WpUser - #error_404_hash — WpTarget + #error_404_hash — WebSite #error_log? — WpPlugin @@ -407,10 +409,10 @@ #has_options? — WpscanOptions - #has_readme? — WpItem - #has_readme? — WpReadme + #has_readme? — WpItem + #has_simple_login_lockdown_protection? — WpLoginProtection #has_timthumbs? — WpTimthumbs @@ -419,22 +421,20 @@ #help — Object + #homepage_hash — WebSite + #id — WpUser #id= — WpUser - #is_installed? — SvnUpdater - #is_installed? — GitUpdater #is_installed? — Updater + #is_installed? — SvnUpdater + #is_multisite? — WpTarget - #is_online? — WebSite - - #is_wordpress? — WebSite - #job_id — Exploit #jobs — RpcClient @@ -473,10 +473,10 @@ #meterpreter_read — Exploit - #meterpreter_write — Exploit - #meterpreter_write — RpcClient + #meterpreter_write — Exploit + #name — WpUser #name= — WpUser @@ -485,6 +485,8 @@ #nickname= — WpUser + #online? — WebSite + #parse — Svn_Parser #plugins_from_aggressive_detection — WpPlugins @@ -527,6 +529,8 @@ #require_files_from_directory — Object + #rss_url — WebSite + #save — Generate_List #search_replace_db_2_exists? — WpTarget @@ -563,12 +567,12 @@ #to_s — WpItem + #update — SvnUpdater + #update — GitUpdater #update — Updater - #update — SvnUpdater - #url — WpTarget #url= — WpscanOptions @@ -589,6 +593,8 @@ #wordlist= — WpscanOptions + #wordpress? — WebSite + #wp_content_dir — WpTarget #wp_plugins_dir — WpTarget diff --git a/doc/wpscan_rb.html b/doc/wpscan_rb.html deleted file mode 100644 index 7604844d..00000000 --- a/doc/wpscan_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - File: wpscan.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/doc/wpstools_rb.html b/doc/wpstools_rb.html deleted file mode 100644 index 3378a67f..00000000 --- a/doc/wpstools_rb.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - --- -Description
- -File: wpstools.rb [RDoc Documentation] - - - - - - - - - - --- --
-- Last Modified
-- 2012-10-23 12:20:01 +0200
- - -- Requires
-- -
- - - -- -
-- -- - - diff --git a/lib/wpscan/modules/wp_themes.rb b/lib/wpscan/modules/wp_themes.rb index 388a7b44..84f010f7 100644 --- a/lib/wpscan/modules/wp_themes.rb +++ b/lib/wpscan/modules/wp_themes.rb @@ -21,7 +21,7 @@ module WpThemes def themes_from_aggressive_detection(options) options[:file] = options[:file] || (options[:full] ? "#{DATA_DIR}/themes_full.txt" : "#{DATA_DIR}/themes.txt") options[:vulns_file] = (options[:vulns_file] != nil and options[:vulns_file] != "") ? - options[:vulns_file] : DATA_DIR + "/wp_theme_vulns.xml" + options[:vulns_file] : DATA_DIR + "/theme_vulns.xml" options[:vulns_xpath] = "//theme[@name='#{@name}']/vulnerability" options[:vulns_xpath_2] = "//theme" options[:type] = "themes" diff --git a/lib/wpscan/vulnerable.rb b/lib/wpscan/vulnerable.rb index 67f6e9ab..8be68ecf 100644 --- a/lib/wpscan/vulnerable.rb +++ b/lib/wpscan/vulnerable.rb @@ -31,7 +31,7 @@ class Vulnerable xml.xpath(@vulns_xpath).each do |node| vulnerabilities << WpVulnerability.new( node.search("title").text, - node.search("reference").text, + node.search("reference").map(&:text), node.search("type").text ) end diff --git a/lib/wpscan/wp_theme.rb b/lib/wpscan/wp_theme.rb index 79a18f53..3f1f2596 100644 --- a/lib/wpscan/wp_theme.rb +++ b/lib/wpscan/wp_theme.rb @@ -24,7 +24,7 @@ class WpTheme < WpItem 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_file] : DATA_DIR + "/theme_vulns.xml" options[:vulns_xpath] = "//theme[@name='$name$']/vulnerability" options[:type] = "themes" @version = options[:version] diff --git a/lib/wpscan/wp_vulnerability.rb b/lib/wpscan/wp_vulnerability.rb index 4c40d212..eedb23ef 100644 --- a/lib/wpscan/wp_vulnerability.rb +++ b/lib/wpscan/wp_vulnerability.rb @@ -17,11 +17,11 @@ #++ class WpVulnerability - attr_accessor :title, :reference, :type + attr_accessor :title, :references, :type - def initialize(title, reference, type) + def initialize(title, references, type) @title = title - @reference = reference + @references = references @type = type end end diff --git a/wpscan.rb b/wpscan.rb index ca1c58ee..1c7389d7 100755 --- a/wpscan.rb +++ b/wpscan.rb @@ -114,7 +114,9 @@ begin theme_vulnerabilities.each do |vulnerability| puts puts " | " + red("* Title: #{vulnerability.title}") - puts " | " + red("* Reference: #{vulnerability.reference}") + vulnerability.references.each do |r| + puts " | " + red("* Reference: #{r}") + end end puts end @@ -175,7 +177,9 @@ begin version_vulnerabilities.each do |vulnerability| puts puts " | " + red("* Title: #{vulnerability.title}") - puts " | " + red("* Reference: #{vulnerability.reference}") + vulnerability.references.each do |r| + puts " | " + red("* Reference: #{r}") + end end end end @@ -196,7 +200,9 @@ begin plugin.vulnerabilities.each do |vulnerability| puts " |" puts " | " + red("[!] #{vulnerability.title}") - puts " | " + red("* Reference: #{vulnerability.reference}") + vulnerability.references.each do |r| + puts " | " + red("* Reference: #{r}") + end end end else @@ -242,7 +248,9 @@ begin puts " |" puts " | " + red("[!] #{vulnerability.title}") - puts " | " + red("* Reference: #{vulnerability.reference}") + vulnerability.references.each do |r| + puts " | " + red("* Reference: #{r}") + end # This has been commented out as MSF are moving from # XML-RPC to MessagePack. @@ -297,7 +305,9 @@ begin theme.vulnerabilities.each do |vulnerability| puts " |" puts " | " + red("[!] #{vulnerability.title}") - puts " | " + red("* Reference: #{vulnerability.reference}") + vulnerability.references.each do |r| + puts " | " + red("* Reference: #{r}") + end # This has been commented out as MSF are moving from # XML-RPC to MessagePack. diff --git a/wpstools.rb b/wpstools.rb index 9e37ba69..82b8caea 100755 --- a/wpstools.rb +++ b/wpstools.rb @@ -132,7 +132,7 @@ begin # seclists.org redirects to the homepage if the reference does not exist # TODO : the special case above if @check_vuln_ref_urls - vuln_ref_files = ["plugin_vulns.xml", "wp_theme_vulns.xml", "wp_vulns.xml"] + vuln_ref_files = ["plugin_vulns.xml", "theme_vulns.xml", "wp_vulns.xml"] error_codes = [404, 500, 403] not_found_regexp = %r{No Results Found|error 404|ID Invalid or Not Found}i-- -Description
- -