From d6386c05a49837a079901fe58b3a81a9a53f66a6 Mon Sep 17 00:00:00 2001
From: Christian Mehlmauer Gets the string all elements in stringarray ends with Installing on Archlinux: @return [ Vulnerability ] Get the vulnerabilities associated to the WpItem @return [ Vulnerabilities ] Checks if a item is vulnerable to a specific vulnerability @param [ Vulnerability ] vuln Vulnerability to check the item against @return [ Boolean ] This tool generates a list to use for plugin and theme enumeration\n"],["GitUpdater","","GitUpdater.html","",""],["ListGeneratorPlugin","","ListGeneratorPlugin.html","",""],["Object","","Object.html","",""],["Plugin","","Plugin.html","",""],["Plugins","","Plugins.html","",""],["StatsPlugin","","StatsPlugin.html","",""],["SvnParser","","SvnParser.html",""," This Class Parses SVN Repositories via HTTP\n"],["SvnUpdater","","SvnUpdater.html","",""],["Terminal","","Terminal.html","",""],["Terminal::Table","","Terminal/Table.html","",""],["Terminal::Table::Style","","Terminal/Table/Style.html","",""],["Typhoeus","","Typhoeus.html",""," This is used in WpItem::Existable\n Implementaion of a cache_key (Typhoeus::Request#hash has too many options)\n…\n"],["Typhoeus::Request","","Typhoeus/Request.html","",""],["Typhoeus::Request::Cacheable","","Typhoeus/Request/Cacheable.html","",""],["Typhoeus::Response","","Typhoeus/Response.html","",""],["TyphoeusCache","","TyphoeusCache.html","",""],["URI","","URI.html","",""],["Updater","","Updater.html",""," This class act as an absract one\n"],["UpdaterFactory","","UpdaterFactory.html","",""],["Vulnerabilities","","Vulnerabilities.html","",""],["Vulnerabilities::Output","","Vulnerabilities/Output.html","",""],["Vulnerability","","Vulnerability.html","",""],["Vulnerability::Output","","Vulnerability/Output.html","",""],["WebSite","","WebSite.html","",""],["WpItem","","WpItem.html","",""],["WpItem::Existable","","WpItem/Existable.html","",""],["WpItem::Findable","","WpItem/Findable.html","",""],["WpItem::Infos","","WpItem/Infos.html",""," @uri is used instead of #uri to avoid the presence of the :path into it\n"],["WpItem::Output","","WpItem/Output.html","",""],["WpItem::Versionable","","WpItem/Versionable.html","",""],["WpItem::Vulnerable","","WpItem/Vulnerable.html","",""],["WpItems","","WpItems.html","",""],["WpItems::Detectable","","WpItems/Detectable.html","",""],["WpItems::Output","","WpItems/Output.html","",""],["WpPlugin","","WpPlugin.html","",""],["WpPlugin::Vulnerable","","WpPlugin/Vulnerable.html","",""],["WpPlugins","","WpPlugins.html","",""],["WpPlugins::Detectable","","WpPlugins/Detectable.html","",""],["WpTarget","","WpTarget.html","",""],["WpTarget::Malwares","","WpTarget/Malwares.html","",""],["WpTarget::WpConfigBackup","","WpTarget/WpConfigBackup.html","",""],["WpTarget::WpCustomDirectories","","WpTarget/WpCustomDirectories.html","",""],["WpTarget::WpFullPathDisclosure","","WpTarget/WpFullPathDisclosure.html","",""],["WpTarget::WpLoginProtection","","WpTarget/WpLoginProtection.html","",""],["WpTarget::WpReadme","","WpTarget/WpReadme.html","",""],["WpTarget::WpRegistrable","","WpTarget/WpRegistrable.html","",""],["WpTheme","","WpTheme.html","",""],["WpTheme::Findable","","WpTheme/Findable.html","",""],["WpTheme::Versionable","","WpTheme/Versionable.html","",""],["WpTheme::Vulnerable","","WpTheme/Vulnerable.html","",""],["WpThemes","","WpThemes.html","",""],["WpThemes::Detectable","","WpThemes/Detectable.html","",""],["WpTimthumb","","WpTimthumb.html","",""],["WpTimthumb::Existable","","WpTimthumb/Existable.html","",""],["WpTimthumb::Output","","WpTimthumb/Output.html","",""],["WpTimthumb::Versionable","","WpTimthumb/Versionable.html","",""],["WpTimthumbs","","WpTimthumbs.html","",""],["WpTimthumbs::Detectable","","WpTimthumbs/Detectable.html","",""],["WpUser","","WpUser.html","",""],["WpUser::BruteForcable","","WpUser/BruteForcable.html","",""],["WpUser::Existable","","WpUser/Existable.html","",""],["WpUsers","","WpUsers.html","",""],["WpUsers::BruteForcable","","WpUsers/BruteForcable.html","",""],["WpUsers::Detectable","","WpUsers/Detectable.html","",""],["WpUsers::Output","","WpUsers/Output.html","",""],["WpVersion","","WpVersion.html","",""],["WpVersion::Findable","","WpVersion/Findable.html","",""],["WpVersion::Output","","WpVersion/Output.html","",""],["WpVersion::Vulnerable","","WpVersion/Vulnerable.html","",""],["WpscanOptions","","WpscanOptions.html","",""],["<=>","WpItem","WpItem.html#method-i-3C-3D-3E","(other)"," @param [ WpItem ] other\n"],["<=>","WpUser","WpUser.html#method-i-3C-3D-3E","(other)"," @param [ WpUser ] other\n"],["==","Vulnerability","Vulnerability.html#method-i-3D-3D","(other)"," @param [ Vulnerability ] other\n @return [ Boolean ] :nocov:\n"],["==","WpItem","WpItem.html#method-i-3D-3D","(other)"," @param [ WpItem ] other\n"],["==","WpTimthumb","WpTimthumb.html#method-i-3D-3D","(other)"," @param [ WpTimthumb ] other\n @return [ Boolean ]\n"],["==","WpUser","WpUser.html#method-i-3D-3D","(other)"," @param [ WpUser ] other\n @return [ Boolean ]\n"],["==","WpVersion","WpVersion.html#method-i-3D-3D","(other)"," @param [ WpVersion ] other\n @return [ Boolean ]\n"],["===","WpItem","WpItem.html#method-i-3D-3D-3D","(other)"," @param [ WpItem ] other\n"],["===","WpUser","WpUser.html#method-i-3D-3D-3D","(other)"," @param [ WpUser ] other\n @return [ Boolean ]\n"],["_grep_","Array","Array.html#method-i-_grep_","(regexp)"," Fix for grep with symbols in ruby <= 1.8.7\n"],["add","CustomOptionParser","CustomOptionParser.html#method-i-add","(options)"," param Array(Array) or Array options\n"],["add_http_protocol","Object","Object.html#method-i-add_http_protocol","(url)"," Add protocol\n"],["add_option","CustomOptionParser","CustomOptionParser.html#method-i-add_option","(option)"," param Array option\n"],["add_trailing_slash","Object","Object.html#method-i-add_trailing_slash","(url)",""],["aggressive_detection","WpItems::Detectable","WpItems/Detectable.html#method-i-aggressive_detection","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options @option options [\nBoolean ] :show_progression …\n"],["allowed_options","WpItem","WpItem.html#method-i-allowed_options","()"," @return [ Array ] Make it private ?\n"],["allowed_options","WpTheme","WpTheme.html#method-i-allowed_options","()",""],["allowed_options","WpUser","WpUser.html#method-i-allowed_options","()"," @return [ Array<Symbol> ]\n"],["allowed_options","WpVersion","WpVersion.html#method-i-allowed_options","()"," @return [ Array ]\n"],["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=","Browser::Options","Browser/Options.html#method-i-basic_auth-3D","(auth)"," Sets the Basic Authentification credentials Accepted format:\n\n @param …\n"],["basic_auth=","WpscanOptions","WpscanOptions.html#method-i-basic_auth-3D","(basic_auth)",""],["better_wp_security_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-better_wp_security_url","()",""],["bluetrait_event_viewer_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-bluetrait_event_viewer_url","()",""],["brute_force","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-brute_force","(wordlist, options = {})"," Brute force the user with the wordlist supplied\n It can take a long time to queue 2 million requests, for …\n"],["brute_force","WpUsers::BruteForcable","WpUsers/BruteForcable.html#method-i-brute_force","(wordlist, options = {})"," Brute force each wp_user\n To avoid loading the wordlist each time in the wp_user instance It’s loaded\nhere, …\n"],["cache_key","Typhoeus::Request::Cacheable","Typhoeus/Request/Cacheable.html#method-i-cache_key","()",""],["changelog_url","WpItem::Infos","WpItem/Infos.html#method-i-changelog_url","()"," @return [ String ] The url to the changelog file\n"],["charset","File","File.html#method-c-charset","(file_path)"," @param [ String ] file_path\n @return [ String ] The charset of the file\n"],["check_local_vulnerable_files","CheckerPlugin","CheckerPlugin.html#method-i-check_local_vulnerable_files","(dir_to_scan)",""],["check_vuln_ref_urls","CheckerPlugin","CheckerPlugin.html#method-i-check_vuln_ref_urls","()",""],["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","WpTarget::WpConfigBackup","WpTarget/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","WpTarget::WpConfigBackup","WpTarget/WpConfigBackup.html#method-c-config_backup_files","()"," @return Array\n"],["cookiefile=","Ethon::Easy::Options","Ethon/Easy/Options.html#method-i-cookiefile-3D","(value)",""],["cookiejar=","Ethon::Easy::Options","Ethon/Easy/Options.html#method-i-cookiejar-3D","(value)",""],["create_item","WpItems::Detectable","WpItems/Detectable.html#method-i-create_item","(klass, name, wp_target, vulns_file = nil)"," @param [ Class ] klass @param [ String ] name @param [ WpTarget ] wp_target\n@option [ String ] vulns_file …\n"],["create_item","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-create_item","(wp_target, path = nil)"," @param [ WpTarget ] wp_target @option [ String ] path\n @return [ WpTimthumb ]\n"],["debug_log_url","WpTarget","WpTarget.html#method-i-debug_log_url","()"," @return [ String ]\n"],["default_wp_content_dir_exists?","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-default_wp_content_dir_exists-3F","()"," @return [ Boolean ]\n"],["display_name_from_body","WpUser::Existable","WpUser/Existable.html#method-c-display_name_from_body","(body)"," @note Some bodies are encoded in ASCII-8BIT, and Nokogiri doesn’t support\nit\n\n 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)",""],["error_404_hash","WebSite","WebSite.html#method-i-error_404_hash","()"," Return the MD5 hash of a 404 page\n"],["error_log_url","WpItem::Infos","WpItem/Infos.html#method-i-error_log_url","()"," @return [ String ] The url to the error_log file\n"],["escape","URI","URI.html#method-i-escape","(str)",""],["exists?","WpItem::Existable","WpItem/Existable.html#method-i-exists-3F","(options = {}, response = nil)"," Check the existence of the WpItem If the response is supplied, it’s used\nfor the verification Otherwise …\n"],["exists_from_response?","WpItem::Existable","WpItem/Existable.html#method-i-exists_from_response-3F","(response, options = {})"," @param [ Typhoeus::Response ] response @param [ options ] options\n @option options [ Hash ] :error_404_hash …\n"],["exists_from_response?","WpTimthumb::Existable","WpTimthumb/Existable.html#method-i-exists_from_response-3F","(response, options = {})"," @param [ Typhoeus::Response ] response @param [ Hash ] options\n @return [ Boolean ]\n"],["exists_from_response?","WpUser::Existable","WpUser/Existable.html#method-i-exists_from_response-3F","(response, options = {})"," @param [ Typhoeus::Response ] response @param [ Hash ] options\n @return [ Boolean ]\n"],["find","WpTheme::Findable","WpTheme/Findable.html#method-i-find","(target_uri)"," Find the main theme of the blog\n @param [ URI ] target_uri\n @return [ WpTheme ]\n"],["find","WpVersion::Findable","WpVersion/Findable.html#method-i-find","(target_uri, wp_content_dir, wp_plugins_dir, versions_xml)"," Find the version of the blog designated from target_uri\n @param [ URI ] target_uri @param [ String ] wp_content_dir …\n"],["find_from_advanced_fingerprinting","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_advanced_fingerprinting","(target_uri, wp_content_dir, wp_plugins_dir, versions_xml)"," 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::Findable","WpVersion/Findable.html#method-i-find_from_atom_generator","(target_uri)"," Attempts to find the WordPress version from, the generator tag in the Atom\nsource.\n @param [ URI ] target_uri …\n"],["find_from_css_link","WpTheme::Findable","WpTheme/Findable.html#method-i-find_from_css_link","(target_uri)"," Discover the wordpress theme by parsing the css link rel\n @param [ URI ] target_uri\n @return [ WpTheme ] …\n"],["find_from_links_opml","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_links_opml","(target_uri)"," Attempts to find the WordPress version from the p-links-opml.php file.\n @param [ URI ] target_uri\n @return …\n"],["find_from_meta_generator","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_meta_generator","(target_uri)"," 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::Findable","WpVersion/Findable.html#method-i-find_from_rdf_generator","(target_uri)"," Attempts to find WordPress version from, the generator tag in the RDF feed\nsource.\n @param [ URI ] target_uri …\n"],["find_from_readme","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_readme","(target_uri)"," Attempts to find the WordPress version from the readme.html file.\n @param [ URI ] target_uri\n @return [ …\n"],["find_from_rss_generator","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_rss_generator","(target_uri)"," Attempts to find the WordPress version from, the generator tag in the RSS\nfeed source.\n @param [ URI ] …\n"],["find_from_sitemap_generator","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_sitemap_generator","(target_uri)"," 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::Findable","WpTheme/Findable.html#method-i-find_from_wooframework","(target_uri)"," code.google.com/p/wpscan/issues/detail?id=141\n @param [ URI ] target_uri\n @return [ WpTheme ]\n"],["forge_request","Browser","Browser.html#method-i-forge_request","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Request ]\n"],["forge_uri","WpItem","WpItem.html#method-i-forge_uri","(target_base_uri)"," @param [ URI ] target_base_uri\n @return [ void ]\n"],["forge_uri","WpPlugin","WpPlugin.html#method-i-forge_uri","(target_base_uri)"," Sets the @uri\n @param [ URI ] target_base_uri The URI of the wordpress blog\n @return [ void ]\n"],["forge_uri","WpTheme","WpTheme.html#method-i-forge_uri","(target_base_uri)"," Sets the @uri\n @param [ URI ] target_base_uri The URI of the wordpress blog\n @return [ void ]\n"],["found_from=","WpItem","WpItem.html#method-i-found_from-3D","(method)"," Sets the found_from attribute\n @param [ String ] method The method which found the WpItem\n @return [ void …\n"],["full_path_disclosure_url","WpTarget::WpFullPathDisclosure","WpTarget/WpFullPathDisclosure.html#method-i-full_path_disclosure_url","()"," @return [ String ]\n"],["generate_full_list","GenerateList","GenerateList.html#method-i-generate_full_list","()",""],["generate_popular_list","GenerateList","GenerateList.html#method-i-generate_popular_list","(pages)",""],["get","Browser::Actions","Browser/Actions.html#method-i-get","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["get","TyphoeusCache","TyphoeusCache.html#method-i-get","(request)",""],["get_and_follow_location","Browser::Actions","Browser/Actions.html#method-i-get_and_follow_location","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["get_entry_file_path","CacheFileStore","CacheFileStore.html#method-i-get_entry_file_path","(key)",""],["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_popular_items","GenerateList","GenerateList.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_updater","UpdaterFactory","UpdaterFactory.html#method-c-get_updater","(repo_directory)",""],["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?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_better_wp_security_protection-3F","()"," wordpress.org/extend/plugins/better-wp-security/\n"],["has_bluetrait_event_viewer_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_bluetrait_event_viewer_protection-3F","()"," wordpress.org/extend/plugins/bluetrait-event-viewer/\n"],["has_changelog?","WpItem::Infos","WpItem/Infos.html#method-i-has_changelog-3F","()"," @return [ Boolean ]\n"],["has_debug_log?","WpTarget","WpTarget.html#method-i-has_debug_log-3F","()"," @return [ Boolean ]\n"],["has_directory_listing?","WpItem::Infos","WpItem/Infos.html#method-i-has_directory_listing-3F","()"," @return [ Boolean ]\n"],["has_error_log?","WpItem::Infos","WpItem/Infos.html#method-i-has_error_log-3F","()"," Discover any error_log files created by WordPress These are created by the\nWordPress error_log() function …\n"],["has_full_path_disclosure?","WpTarget::WpFullPathDisclosure","WpTarget/WpFullPathDisclosure.html#method-i-has_full_path_disclosure-3F","()"," Check for Full Path Disclosure (FPD)\n @return [ Boolean ]\n"],["has_limit_login_attempts_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_limit_login_attempts_protection-3F","()"," wordpress.org/extend/plugins/limit-login-attempts/\n"],["has_local_changes?","GitUpdater","GitUpdater.html#method-i-has_local_changes-3F","()",""],["has_log?","WebSite","WebSite.html#method-c-has_log-3F","(log_url, pattern)"," Only the first 700 bytes are checked to avoid the download of the whole\nfile which can be very huge (like …\n"],["has_login_lock_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_login_lock_protection-3F","()"," wordpress.org/extend/plugins/login-lock/\n"],["has_login_lockdown_protection?","WpTarget::WpLoginProtection","WpTarget/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?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_login_protection-3F","()",""],["has_login_security_solution_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_login_security_solution_protection-3F","()"," wordpress.org/extend/plugins/login-security-solution/\n"],["has_malwares?","WpTarget::Malwares","WpTarget/Malwares.html#method-i-has_malwares-3F","(malwares_file_path = nil)",""],["has_options?","WpscanOptions","WpscanOptions.html#method-i-has_options-3F","()",""],["has_plugin?","WpTarget","WpTarget.html#method-i-has_plugin-3F","(name, version = nil)"," The version is not yet considerated\n @param [ String ] name @param [ String ] version\n @return [ Boolean …\n"],["has_readme?","WpItem::Infos","WpItem/Infos.html#method-i-has_readme-3F","()"," @return [ Boolean ]\n"],["has_readme?","WpTarget::WpReadme","WpTarget/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_robots?","WebSite","WebSite.html#method-i-has_robots-3F","()"," Checks if a robots.txt file exists\n"],["has_simple_login_lockdown_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_simple_login_lockdown_protection-3F","()"," wordpress.org/extend/plugins/simple-login-lockdown/\n"],["has_valid_hash?","Typhoeus::Response","Typhoeus/Response.html#method-i-has_valid_hash-3F","(error_404_hash, homepage_hash)"," Compare the body hash to error_404_hash and homepage_hash returns true if\nthey are different, false otherwise …\n"],["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","()",""],["instance","Browser","Browser.html#method-c-instance","(options = {})"," @param [ Hash ] options\n @return [ Browser ]\n"],["invalid_proxy_auth_format","Browser::Options","Browser/Options.html#method-i-invalid_proxy_auth_format","()",""],["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)",""],["item_class","WpItems::Detectable","WpItems/Detectable.html#method-i-item_class","()"," @return [ Class ]\n"],["item_xpath","WpPlugins::Detectable","WpPlugins/Detectable.html#method-i-item_xpath","()"," @return [ String ]\n"],["item_xpath","WpThemes::Detectable","WpThemes/Detectable.html#method-i-item_xpath","()"," @return [ String ]\n"],["limit_login_attempts_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-limit_login_attempts_url","()",""],["lines_in_file","StatsPlugin","StatsPlugin.html#method-i-lines_in_file","(file)",""],["load_config","Browser","Browser.html#method-i-load_config","(config_file = nil)"," If an option was set but is not in the new config_file it’s value is kept\n @param [ String ] config_file …\n"],["load_from_arguments","WpscanOptions","WpscanOptions.html#method-c-load_from_arguments","()"," Will load the options from ARGV return WpscanOptions\n"],["load_from_xml_node","Vulnerability","Vulnerability.html#method-c-load_from_xml_node","(xml_node)"," Create the Vulnerability from the xml_node\n @param [ Nokogiri::XML::Node ] xml_node\n @return [ Vulnerability …\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_from_author_pattern","WpUser::Existable","WpUser/Existable.html#method-c-login_from_author_pattern","(text)"," @param [ String ] text\n @return [ String ] The login\n"],["login_from_body","WpUser::Existable","WpUser/Existable.html#method-c-login_from_body","(body)"," @param [ String ] body\n @return [ String ] The login\n"],["login_protection_plugin","WpTarget::WpLoginProtection","WpTarget/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_request","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-login_request","(password)"," @param [ String ] password\n @return [ Typhoeus::Request ]\n"],["login_security_solution_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-login_security_solution_url","()",""],["login_url","WpTarget","WpTarget.html#method-i-login_url","()",""],["login_url","WpUser","WpUser.html#method-i-login_url","()"," @return [ String ]\n"],["main","Object","Object.html#method-i-main","()",""],["malware_pattern","WpTarget::Malwares","WpTarget/Malwares.html#method-c-malware_pattern","(url_regex)",""],["malwares","WpTarget::Malwares","WpTarget/Malwares.html#method-i-malwares","(malwares_file_path = nil)"," return array of string (url of malwares found)\n"],["malwares_file","WpTarget::Malwares","WpTarget/Malwares.html#method-c-malwares_file","(malwares_file_path)",""],["max_threads","Browser::Options","Browser/Options.html#method-i-max_threads","()"," @return [ Integer ]\n"],["max_threads=","Browser::Options","Browser/Options.html#method-i-max_threads-3D","(threads)",""],["merge_request_params","Browser","Browser.html#method-i-merge_request_params","(params = {})"," @param [ Hash ] params\n @return [ Hash ]\n"],["metasploit_module_url","Vulnerability::Output","Vulnerability/Output.html#method-c-metasploit_module_url","(module_path)"," @return [ String ] The url to the metasploit module page\n"],["multisite?","WpTarget::WpRegistrable","WpTarget/WpRegistrable.html#method-i-multisite-3F","()"," @return [ Boolean ]\n"],["new","CacheFileStore","CacheFileStore.html#method-c-new","(storage_path, serializer = Marshal)"," The serializer must have the 2 methods .load and .dump\n\n YAML is Human Readable …\n"],["new","CheckerPlugin","CheckerPlugin.html#method-c-new","()",""],["new","CustomOptionParser","CustomOptionParser.html#method-c-new","(banner = nil, width = 32, indent = ' ' * 4)",""],["new","GenerateList","GenerateList.html#method-c-new","(type, verbose)"," type = themes | plugins\n"],["new","ListGeneratorPlugin","ListGeneratorPlugin.html#method-c-new","()",""],["new","Plugin","Plugin.html#method-c-new","(infos = {})",""],["new","Plugins","Plugins.html#method-c-new","(option_parser = nil)",""],["new","StatsPlugin","StatsPlugin.html#method-c-new","()",""],["new","SvnParser","SvnParser.html#method-c-new","(svn_root)",""],["new","Updater","Updater.html#method-c-new","(repo_directory = nil)"," TODO : add a last ‘/ to repo_directory if it’s not present\n"],["new","Vulnerability","Vulnerability.html#method-c-new","(title, type, references, metasploit_modules = [])"," @param [ String ] title The title of the vulnerability @param [ String ]\ntype The type of the vulnerability …\n"],["new","WebSite","WebSite.html#method-c-new","(site_url)",""],["new","WpItem","WpItem.html#method-c-new","(target_base_uri, options = {})"," @param [ URI ] target_base_uri @param [ Hash ] options See allowed_option\n @return [ WpItem ]\n"],["new","WpTarget","WpTarget.html#method-c-new","(target_url, options = {})",""],["new","WpscanOptions","WpscanOptions.html#method-c-new","()",""],["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)",""],["option_to_symbol","CustomOptionParser","CustomOptionParser.html#method-c-option_to_symbol","(option)"," param Array option\n"],["output","Vulnerabilities::Output","Vulnerabilities/Output.html#method-i-output","()",""],["output","Vulnerability::Output","Vulnerability/Output.html#method-i-output","()"," output the vulnerability\n"],["output","WpItem::Output","WpItem/Output.html#method-i-output","()"," @return [ Void ]\n"],["output","WpItems::Output","WpItems/Output.html#method-i-output","()",""],["output","WpTimthumb::Output","WpTimthumb/Output.html#method-i-output","()",""],["output","WpUsers::Output","WpUsers/Output.html#method-i-output","(options = {})"," @param [ Hash ] options @option options[ Boolean ] :show_password Output\nthe password column\n @return [ …\n"],["output","WpVersion::Output","WpVersion/Output.html#method-i-output","()",""],["override_config","Browser::Options","Browser/Options.html#method-i-override_config","(options = {})"," Override with the options if they are set @param [ Hash ] options\n @return [ void ]\n"],["page_hash","WebSite","WebSite.html#method-c-page_hash","(page)"," Compute the MD5 of the page Comments are deleted from the page to avoid\ncache generation details\n @param …\n"],["parse","SvnParser","SvnParser.html#method-i-parse","()",""],["passive_detection","WpItems::Detectable","WpItems/Detectable.html#method-i-passive_detection","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options\n @return [ WpItems ]\n"],["passive_detection","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-passive_detection","(wp_target, options = {})"," No passive detection\n @param [ WpTarget ] wp_target @param [ Hash ] options\n @return [ WpTimthumbs ]\n"],["passive_detection","WpUsers::Detectable","WpUsers/Detectable.html#method-i-passive_detection","(wp_target, options = {})"," No passive detection\n @return [ WpUsers ]\n"],["passwords_from_wordlist","WpUser::BruteForcable","WpUser/BruteForcable.html#method-c-passwords_from_wordlist","(wordlist)"," Load the passwords from the wordlist, which can be a file path or an array\nor passwords\n File comments …\n"],["path=","WpItem","WpItem.html#method-i-path-3D","(path)"," Sets the path\n Variable, such as $wp-plugins$ and $wp-content$ can be used and will be\nreplace by their …\n"],["plugin_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-plugin_url","(plugin_name)",""],["plugin_vulns_count","StatsPlugin","StatsPlugin.html#method-i-plugin_vulns_count","(file=PLUGINS_VULNS_FILE)",""],["post","Browser::Actions","Browser/Actions.html#method-i-post","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["process","Browser::Actions","Browser/Actions.html#method-i-process","(url, params)"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["progress_bar","WpItems::Detectable","WpItems/Detectable.html#method-i-progress_bar","(targets_size, options)"," @param [ Integer ] targets_size @param [ Hash ] options\n @return [ ProgressBar ] :nocov:\n"],["progress_bar","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-progress_bar","(passwords_size, options)"," @param [ Integer ] targets_size @param [ Hash ] options\n @return [ ProgressBar ] :nocov:\n"],["proxy=","Browser::Options","Browser/Options.html#method-i-proxy-3D","(proxy)"," Sets the proxy Accepted format:\n\n Sets the proxy credentials Accepted format:\n\n Override for puts to enable logging\n"],["read_entry","CacheFileStore","CacheFileStore.html#method-i-read_entry","(key)",""],["readme_url","WpItem::Infos","WpItem/Infos.html#method-i-readme_url","()"," @return [ String,nil ] The url to the readme file, nil if not found\n"],["readme_url","WpTarget::WpReadme","WpTarget/WpReadme.html#method-i-readme_url","()"," @return [ String ] The readme URL\n"],["red","Object","Object.html#method-i-red","(text)",""],["redefine_constant","Object","Object.html#method-i-redefine_constant","(constant, value)",""],["redirection","WebSite","WebSite.html#method-i-redirection","(url = nil)"," See if the remote url returns 30x redirect This method is recursive Return\na string with the redirection …\n"],["register","Plugins","Plugins.html#method-i-register","(*plugins)"," param Array(Plugin) plugins\n"],["register_options","Plugin","Plugin.html#method-i-register_options","(*options)"," param Array options\n"],["register_plugin","Plugins","Plugins.html#method-i-register_plugin","(plugin)"," param Plugin plugin\n"],["registration_enabled?","WpTarget::WpRegistrable","WpTarget/WpRegistrable.html#method-i-registration_enabled-3F","()"," Should check wp-login.php if registration is enabled or not\n @return [ Boolean ]\n"],["registration_url","WpTarget::WpRegistrable","WpTarget/WpRegistrable.html#method-i-registration_url","()"," @return [ String ] The registration URL\n"],["render","Terminal::Table","Terminal/Table.html#method-i-render","()",""],["repo_directory_arguments","GitUpdater","GitUpdater.html#method-i-repo_directory_arguments","()",""],["request_params","WpItems::Detectable","WpItems/Detectable.html#method-i-request_params","()"," The default request parameters\n @return [ Hash ]\n"],["request_params","WpUsers::Detectable","WpUsers/Detectable.html#method-i-request_params","()"," @return [ Hash ]\n"],["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","()",""],["reset_head","GitUpdater","GitUpdater.html#method-i-reset_head","()",""],["results","CustomOptionParser","CustomOptionParser.html#method-i-results","(argv = default_argv)"," return Hash\n"],["robots_url","WebSite","WebSite.html#method-i-robots_url","()"," Gets a robots.txt URL\n @return [ String ]\n"],["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"],["run","CheckerPlugin","CheckerPlugin.html#method-i-run","(options = {})",""],["run","ListGeneratorPlugin","ListGeneratorPlugin.html#method-i-run","(options = {})",""],["run","Plugin","Plugin.html#method-i-run","(options = {})",""],["run","StatsPlugin","StatsPlugin.html#method-i-run","(options = {})",""],["save","GenerateList","GenerateList.html#method-i-save","(items)"," Save the file\n"],["scan_url","WpVersion::Findable","WpVersion/Findable.html#method-i-scan_url","(target_uri, pattern, path = nil)"," Returns the first match of <pattern> in the body of the url\n @param [ URI ] target_uri @param [ …\n"],["search_replace_db_2_exists?","WpTarget","WpTarget.html#method-i-search_replace_db_2_exists-3F","()"," @return [ Boolean ]\n"],["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"],["set","TyphoeusCache","TyphoeusCache.html#method-i-set","(request, response)",""],["set_file_name","GenerateList","GenerateList.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","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-simple_login_lockdown_url","()",""],["style_url","WpTheme","WpTheme.html#method-i-style_url","()"," @return [ String ] The url to the theme stylesheet\n"],["targets_items","WpItems::Detectable","WpItems/Detectable.html#method-i-targets_items","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ options ] options @option options [\nBoolean ] :only_vulnerable …\n"],["targets_items","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-targets_items","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options @option options [\nString ] :file The path to the …\n"],["targets_items","WpUsers::Detectable","WpUsers/Detectable.html#method-i-targets_items","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options @option options [\nRange ] :range ((1..10))\n @return …\n"],["targets_items_from_file","WpItems::Detectable","WpItems/Detectable.html#method-i-targets_items_from_file","(file, wp_target, item_class, vulns_file)"," @param [ String ] file @param [ WpTarget ] wp_target @param [ Class ]\nitem_class @param [ String ] vulns_file …\n"],["targets_items_from_file","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-targets_items_from_file","(file, wp_target)"," @param [ String ] file @param [ WpTarget ] wp_target\n @return [ Array<WpTimthumb> ]\n"],["theme","WpTarget","WpTarget.html#method-i-theme","()"," @return [ WpTheme ] :nocov:\n"],["theme_timthumbs","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-theme_timthumbs","(theme_name, wp_target)"," @param [ String ] theme_name @param [ WpTarget ] wp_target\n @return [ Array<WpTimthumb> ]\n"],["theme_vulns_count","StatsPlugin","StatsPlugin.html#method-i-theme_vulns_count","(file=THEMES_VULNS_FILE)",""],["threads=","WpscanOptions","WpscanOptions.html#method-i-threads-3D","(threads)",""],["to_h","WpscanOptions","WpscanOptions.html#method-i-to_h","()"," return Hash\n"],["to_s","Terminal::Table","Terminal/Table.html#method-i-to_s","()",""],["to_s","WpItem::Versionable","WpItem/Versionable.html#method-i-to_s","()"," @return [ String ]\n"],["to_s","WpTimthumb::Versionable","WpTimthumb/Versionable.html#method-i-to_s","()"," @return [ String ]\n"],["to_s","WpUser","WpUser.html#method-i-to_s","()"," @return [ String ]\n"],["total_plugins","StatsPlugin","StatsPlugin.html#method-i-total_plugins","(file=PLUGINS_FULL_FILE)",""],["total_themes","StatsPlugin","StatsPlugin.html#method-i-total_themes","(file=THEMES_FULL_FILE)",""],["update","GitUpdater","GitUpdater.html#method-i-update","()",""],["update","SvnUpdater","SvnUpdater.html#method-i-update","()",""],["update","Updater","Updater.html#method-i-update","()",""],["uri","WpItem","WpItem.html#method-i-uri","()"," @return [ URI ] The uri to the WpItem, with the path if present\n"],["uri","WpUser","WpUser.html#method-i-uri","()"," @return [ URI ] The uri to the auhor page\n"],["url","WebSite","WebSite.html#method-i-url","()",""],["url","WpItem","WpItem.html#method-i-url","()"," @return [ String ] The url to the WpItem\n"],["url=","WebSite","WebSite.html#method-i-url-3D","(url)",""],["url=","WpscanOptions","WpscanOptions.html#method-i-url-3D","(url)",""],["url_is_200?","WpItem::Infos","WpItem/Infos.html#method-i-url_is_200-3F","(url)"," Checks if the url status code is 200\n @param [ String ] url\n @return [ Boolean ] True if the url status is …\n"],["usage","Object","Object.html#method-i-usage","()"," wpscan usage\n"],["user_agent","Browser::Options","Browser/Options.html#method-i-user_agent","()"," @return [ String ] The user agent, according to the user_agent_mode\n"],["user_agent_mode=","Browser::Options","Browser/Options.html#method-i-user_agent_mode-3D","(ua_mode)"," Sets the user_agent_mode, which can be one of the following:\n\n @param [ Typhoeus::Response ] response @param [ String ] password @param [\nHash ] options @option options …\n"],["valid_response_codes","WpTarget","WpTarget.html#method-c-valid_response_codes","()"," Valid HTTP return codes\n"],["version","WpItem::Versionable","WpItem/Versionable.html#method-i-version","()"," Get the version from the readme.txt\n @return [ String ] The version number\n"],["version","WpTarget","WpTarget.html#method-i-version","(versions_xml)"," @param [ String ] versions_xml\n @return [ WpVersion ] :nocov:\n"],["version","WpTheme::Versionable","WpTheme/Versionable.html#method-i-version","()",""],["version","WpTimthumb::Versionable","WpTimthumb/Versionable.html#method-i-version","()"," Get the version from the body of an invalid request See\ncode.google.com/p/timthumb/source/browse/trunk/timthumb.php#426 …\n"],["version_pattern","WpVersion::Findable","WpVersion/Findable.html#method-i-version_pattern","()"," Used to check if the version is correct: must contain at least one dot.\n @return [ String ]\n"],["vuln_plugin_count","StatsPlugin","StatsPlugin.html#method-i-vuln_plugin_count","(file=PLUGINS_VULNS_FILE)",""],["vuln_theme_count","StatsPlugin","StatsPlugin.html#method-i-vuln_theme_count","(file=THEMES_VULNS_FILE)",""],["vulnerabilities","WpItem::Vulnerable","WpItem/Vulnerable.html#method-i-vulnerabilities","()"," Get the vulnerabilities associated to the WpItem\n @return [ Vulnerabilities ]\n"],["vulnerable_targets_items","WpItems::Detectable","WpItems/Detectable.html#method-i-vulnerable_targets_items","(wp_target, item_class, vulns_file)"," @param [ WpTarget ] wp_target @param [ Class ] item_class @param [ String ]\nvulns_file\n @return [ Array …\n"],["vulns_file","WpPlugin::Vulnerable","WpPlugin/Vulnerable.html#method-i-vulns_file","()"," @return [ String ] The path to the file containing vulnerabilities\n"],["vulns_file","WpPlugins::Detectable","WpPlugins/Detectable.html#method-i-vulns_file","()"," @return [ String ]\n"],["vulns_file","WpTheme::Vulnerable","WpTheme/Vulnerable.html#method-i-vulns_file","()"," @return [ String ] The path to the file containing vulnerabilities\n"],["vulns_file","WpThemes::Detectable","WpThemes/Detectable.html#method-i-vulns_file","()"," @return [ String ]\n"],["vulns_file","WpVersion::Vulnerable","WpVersion/Vulnerable.html#method-i-vulns_file","()"," @return [ String ] The path to the file containing vulnerabilities\n"],["vulns_xpath","WpPlugin::Vulnerable","WpPlugin/Vulnerable.html#method-i-vulns_xpath","()"," @return [ String ]\n"],["vulns_xpath","WpTheme::Vulnerable","WpTheme/Vulnerable.html#method-i-vulns_xpath","()"," @return [ String ]\n"],["vulns_xpath","WpVersion::Vulnerable","WpVersion/Vulnerable.html#method-i-vulns_xpath","()"," @return [ String ]\n"],["wordlist=","WpscanOptions","WpscanOptions.html#method-i-wordlist-3D","(wordlist)",""],["wordpress?","WpTarget","WpTarget.html#method-i-wordpress-3F","()"," check if the target website is actually running wordpress.\n"],["wp_content_dir","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-wp_content_dir","()"," @return [ String ] The wp-content directory\n"],["wp_plugins_dir","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-wp_plugins_dir","()"," @return [ String ] The wp-plugins directory\n"],["wp_plugins_dir_exists?","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-wp_plugins_dir_exists-3F","()"," @return [ Boolean ]\n"],["write_entry","CacheFileStore","CacheFileStore.html#method-i-write_entry","(key, data_to_store, cache_ttl)",""],["xml","Object","Object.html#method-i-xml","(file)",""],["xml_rpc_url","WebSite","WebSite.html#method-i-xml_rpc_url","()"," See www.hixie.ch/specs/pingback/pingback-1.0#TOC2.3\n"],["xml_rpc_url_from_body","WebSite","WebSite.html#method-i-xml_rpc_url_from_body","()",""],["xml_rpc_url_from_headers","WebSite","WebSite.html#method-i-xml_rpc_url_from_headers","()",""],["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 # Seg fault in Typhoeus 0.6.3 (and ethon > 0.5.11) with rspec gem\n“typhoeus”, …\n"],["Gemfile.lock","","Gemfile_lock.html",""," GEM\n\n WPScan - WordPress Security Scanner Copyright (C) 2012-2013\n This program is free software: you can redistribute …\n"],["README","","README.html",""," __\n\n \n LICENSE\n WPScan - WordPress Security Scanner\nCopyright (C), 2011-2013 The WPScan\nTeam\n"],["browser.conf.json","","conf/browser_conf_json.html",""," {\n\n #!/bin/bash DIR=“$( cd ”$( dirname “${BASH_SOURCE}” )“ && pwd )” …\n"]]}}
\ No newline at end of file
+var search_data = {"index":{"searchIndex":["array","browser","actions","options","cachefilestore","checkerplugin","customoptionparser","ethon","easy","options","file","gem","generatelist","gitupdater","listgeneratorplugin","object","plugin","plugins","statsplugin","svnparser","svnupdater","terminal","table","style","typhoeus","request","cacheable","response","typhoeuscache","uri","updater","updaterfactory","versioncompare","vulnerabilities","output","vulnerability","output","website","wpitem","existable","findable","infos","output","versionable","vulnerable","wpitems","detectable","output","wpplugin","vulnerable","wpplugins","detectable","wptarget","malwares","wpconfigbackup","wpcustomdirectories","wpfullpathdisclosure","wploginprotection","wpreadme","wpregistrable","wptheme","findable","versionable","vulnerable","wpthemes","detectable","wptimthumb","existable","output","versionable","wptimthumbs","detectable","wpuser","bruteforcable","existable","wpusers","bruteforcable","detectable","output","wpversion","findable","output","vulnerable","wpscanoptions","<=>()","<=>()","==()","==()","==()","==()","==()","===()","===()","_grep_()","add()","add_http_protocol()","add_option()","add_trailing_slash()","aggressive_detection()","allowed_options()","allowed_options()","allowed_options()","allowed_options()","available_updaters_classes()","banner()","basic_auth=()","basic_auth=()","better_wp_security_url()","bluetrait_event_viewer_url()","brute_force()","brute_force()","cache_key()","changelog_url()","charset()","check_local_vulnerable_files()","check_vuln_ref_urls()","clean()","clean_option()","colorize()","config_backup()","config_backup_files()","cookiefile=()","cookiejar=()","create_item()","create_item()","debug_log_url()","default_wp_content_dir_exists?()","display_name_from_body()","encode()","enumerate_all_plugins=()","enumerate_all_themes=()","enumerate_only_vulnerable_plugins=()","enumerate_only_vulnerable_themes=()","enumerate_options_from_string()","enumerate_plugins=()","enumerate_themes=()","error_404_hash()","error_log_url()","escape()","exists?()","exists_from_response?()","exists_from_response?()","exists_from_response?()","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()","forge_uri()","forge_uri()","forge_uri()","found_from=()","full_path_disclosure_url()","generate_full_list()","generate_popular_list()","get()","get()","get_and_follow_location()","get_entry_file_path()","get_equal_string_end()","get_opt_long()","get_popular_items()","get_updater()","green()","grep()","has_basic_auth?()","has_better_wp_security_protection?()","has_bluetrait_event_viewer_protection?()","has_changelog?()","has_debug_log?()","has_directory_listing?()","has_error_log?()","has_full_path_disclosure?()","has_limit_login_attempts_protection?()","has_local_changes?()","has_log?()","has_login_lock_protection?()","has_login_lockdown_protection?()","has_login_protection?()","has_login_security_solution_protection?()","has_malwares?()","has_options?()","has_plugin?()","has_readme?()","has_readme?()","has_robots?()","has_simple_login_lockdown_protection?()","has_valid_hash?()","has_xml_rpc?()","help()","homepage_hash()","instance()","invalid_proxy_auth_format()","is_installed?()","is_installed?()","is_installed?()","is_long_option?()","is_newer_or_same?()","item_class()","item_xpath()","item_xpath()","limit_login_attempts_url()","lines_in_file()","load_config()","load_from_arguments()","load_from_xml_node()","local_revision_number()","local_revision_number()","local_revision_number()","login_from_author_pattern()","login_from_body()","login_protection_plugin()","login_request()","login_security_solution_url()","login_url()","login_url()","main()","malware_pattern()","malwares()","malwares_file()","max_threads()","max_threads=()","merge_request_params()","metasploit_module_url()","multisite?()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","online?()","option_to_instance_variable_setter()","option_to_symbol()","output()","output()","output()","output()","output()","output()","output()","override_config()","page_hash()","parse()","passive_detection()","passive_detection()","passive_detection()","passwords_from_wordlist()","path=()","plugin_url()","plugin_vulns_count()","post()","process()","progress_bar()","progress_bar()","proxy=()","proxy=()","proxy_auth=()","proxy_auth=()","puts()","read_entry()","readme_url()","readme_url()","red()","redefine_constant()","redirection()","register()","register_options()","register_plugin()","registration_enabled?()","registration_url()","remove_junk_from_display_names()","render()","repo_directory_arguments()","request_params()","request_params()","require_files_from_directory()","reset()","reset_head()","results()","robots_url()","rss_url()","run()","run()","run()","run()","save()","scan_url()","search_replace_db_2_exists?()","search_replace_db_2_url()","set()","set_file_name()","set_option_from_cli()","simple_login_lockdown_url()","style_url()","targets_items()","targets_items()","targets_items()","targets_items_from_file()","targets_items_from_file()","theme()","theme_timthumbs()","theme_vulns_count()","threads=()","to_h()","to_s()","to_s()","to_s()","to_s()","total_plugins()","total_themes()","update()","update()","update()","uri()","uri()","url()","url()","url=()","url=()","url_is_200?()","usage()","user_agent()","user_agent_mode=()","valid_password?()","valid_response_codes()","version()","version()","version()","version()","version_pattern()","vuln_plugin_count()","vuln_theme_count()","vulnerabilities()","vulnerable_targets_items()","vulnerable_to?()","vulns_file()","vulns_file()","vulns_file()","vulns_file()","vulns_file()","vulns_xpath()","vulns_xpath()","vulns_xpath()","wordlist=()","wordpress?()","wp_content_dir()","wp_plugins_dir()","wp_plugins_dir_exists?()","write_entry()","xml()","xml_rpc_url()","xml_rpc_url_from_body()","xml_rpc_url_from_headers()","credits","gemfile","gemfile.lock","license","readme","readme","cookie-jar","browser.conf.json","generate_doc.sh"],"longSearchIndex":["array","browser","browser::actions","browser::options","cachefilestore","checkerplugin","customoptionparser","ethon","ethon::easy","ethon::easy::options","file","gem","generatelist","gitupdater","listgeneratorplugin","object","plugin","plugins","statsplugin","svnparser","svnupdater","terminal","terminal::table","terminal::table::style","typhoeus","typhoeus::request","typhoeus::request::cacheable","typhoeus::response","typhoeuscache","uri","updater","updaterfactory","versioncompare","vulnerabilities","vulnerabilities::output","vulnerability","vulnerability::output","website","wpitem","wpitem::existable","wpitem::findable","wpitem::infos","wpitem::output","wpitem::versionable","wpitem::vulnerable","wpitems","wpitems::detectable","wpitems::output","wpplugin","wpplugin::vulnerable","wpplugins","wpplugins::detectable","wptarget","wptarget::malwares","wptarget::wpconfigbackup","wptarget::wpcustomdirectories","wptarget::wpfullpathdisclosure","wptarget::wploginprotection","wptarget::wpreadme","wptarget::wpregistrable","wptheme","wptheme::findable","wptheme::versionable","wptheme::vulnerable","wpthemes","wpthemes::detectable","wptimthumb","wptimthumb::existable","wptimthumb::output","wptimthumb::versionable","wptimthumbs","wptimthumbs::detectable","wpuser","wpuser::bruteforcable","wpuser::existable","wpusers","wpusers::bruteforcable","wpusers::detectable","wpusers::output","wpversion","wpversion::findable","wpversion::output","wpversion::vulnerable","wpscanoptions","wpitem#<=>()","wpuser#<=>()","vulnerability#==()","wpitem#==()","wptimthumb#==()","wpuser#==()","wpversion#==()","wpitem#===()","wpuser#===()","array#_grep_()","customoptionparser#add()","object#add_http_protocol()","customoptionparser#add_option()","object#add_trailing_slash()","wpitems::detectable#aggressive_detection()","wpitem#allowed_options()","wptheme#allowed_options()","wpuser#allowed_options()","wpversion#allowed_options()","updaterfactory::available_updaters_classes()","object#banner()","browser::options#basic_auth=()","wpscanoptions#basic_auth=()","wptarget::wploginprotection#better_wp_security_url()","wptarget::wploginprotection#bluetrait_event_viewer_url()","wpuser::bruteforcable#brute_force()","wpusers::bruteforcable#brute_force()","typhoeus::request::cacheable#cache_key()","wpitem::infos#changelog_url()","file::charset()","checkerplugin#check_local_vulnerable_files()","checkerplugin#check_vuln_ref_urls()","cachefilestore#clean()","wpscanoptions::clean_option()","object#colorize()","wptarget::wpconfigbackup#config_backup()","wptarget::wpconfigbackup::config_backup_files()","ethon::easy::options#cookiefile=()","ethon::easy::options#cookiejar=()","wpitems::detectable#create_item()","wptimthumbs::detectable#create_item()","wptarget#debug_log_url()","wptarget::wpcustomdirectories#default_wp_content_dir_exists?()","wpuser::existable::display_name_from_body()","uri#encode()","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=()","website#error_404_hash()","wpitem::infos#error_log_url()","uri#escape()","wpitem::existable#exists?()","wpitem::existable#exists_from_response?()","wptimthumb::existable#exists_from_response?()","wpuser::existable#exists_from_response?()","wptheme::findable#find()","wpversion::findable#find()","wpversion::findable#find_from_advanced_fingerprinting()","wpversion::findable#find_from_atom_generator()","wptheme::findable#find_from_css_link()","wpversion::findable#find_from_links_opml()","wpversion::findable#find_from_meta_generator()","wpversion::findable#find_from_rdf_generator()","wpversion::findable#find_from_readme()","wpversion::findable#find_from_rss_generator()","wpversion::findable#find_from_sitemap_generator()","wptheme::findable#find_from_wooframework()","browser#forge_request()","wpitem#forge_uri()","wpplugin#forge_uri()","wptheme#forge_uri()","wpitem#found_from=()","wptarget::wpfullpathdisclosure#full_path_disclosure_url()","generatelist#generate_full_list()","generatelist#generate_popular_list()","browser::actions#get()","typhoeuscache#get()","browser::actions#get_and_follow_location()","cachefilestore#get_entry_file_path()","object#get_equal_string_end()","wpscanoptions::get_opt_long()","generatelist#get_popular_items()","updaterfactory::get_updater()","object#green()","array#grep()","website#has_basic_auth?()","wptarget::wploginprotection#has_better_wp_security_protection?()","wptarget::wploginprotection#has_bluetrait_event_viewer_protection?()","wpitem::infos#has_changelog?()","wptarget#has_debug_log?()","wpitem::infos#has_directory_listing?()","wpitem::infos#has_error_log?()","wptarget::wpfullpathdisclosure#has_full_path_disclosure?()","wptarget::wploginprotection#has_limit_login_attempts_protection?()","gitupdater#has_local_changes?()","website::has_log?()","wptarget::wploginprotection#has_login_lock_protection?()","wptarget::wploginprotection#has_login_lockdown_protection?()","wptarget::wploginprotection#has_login_protection?()","wptarget::wploginprotection#has_login_security_solution_protection?()","wptarget::malwares#has_malwares?()","wpscanoptions#has_options?()","wptarget#has_plugin?()","wpitem::infos#has_readme?()","wptarget::wpreadme#has_readme?()","website#has_robots?()","wptarget::wploginprotection#has_simple_login_lockdown_protection?()","typhoeus::response#has_valid_hash?()","website#has_xml_rpc?()","object#help()","website#homepage_hash()","browser::instance()","browser::options#invalid_proxy_auth_format()","gitupdater#is_installed?()","svnupdater#is_installed?()","updater#is_installed?()","wpscanoptions::is_long_option?()","versioncompare::is_newer_or_same?()","wpitems::detectable#item_class()","wpplugins::detectable#item_xpath()","wpthemes::detectable#item_xpath()","wptarget::wploginprotection#limit_login_attempts_url()","statsplugin#lines_in_file()","browser#load_config()","wpscanoptions::load_from_arguments()","vulnerability::load_from_xml_node()","gitupdater#local_revision_number()","svnupdater#local_revision_number()","updater#local_revision_number()","wpuser::existable::login_from_author_pattern()","wpuser::existable::login_from_body()","wptarget::wploginprotection#login_protection_plugin()","wpuser::bruteforcable#login_request()","wptarget::wploginprotection#login_security_solution_url()","wptarget#login_url()","wpuser#login_url()","object#main()","wptarget::malwares::malware_pattern()","wptarget::malwares#malwares()","wptarget::malwares::malwares_file()","browser::options#max_threads()","browser::options#max_threads=()","browser#merge_request_params()","vulnerability::output::metasploit_module_url()","wptarget::wpregistrable#multisite?()","cachefilestore::new()","checkerplugin::new()","customoptionparser::new()","generatelist::new()","listgeneratorplugin::new()","plugin::new()","plugins::new()","statsplugin::new()","svnparser::new()","updater::new()","vulnerability::new()","website::new()","wpitem::new()","wptarget::new()","wpscanoptions::new()","website#online?()","wpscanoptions::option_to_instance_variable_setter()","customoptionparser::option_to_symbol()","vulnerabilities::output#output()","vulnerability::output#output()","wpitem::output#output()","wpitems::output#output()","wptimthumb::output#output()","wpusers::output#output()","wpversion::output#output()","browser::options#override_config()","website::page_hash()","svnparser#parse()","wpitems::detectable#passive_detection()","wptimthumbs::detectable#passive_detection()","wpusers::detectable#passive_detection()","wpuser::bruteforcable::passwords_from_wordlist()","wpitem#path=()","wptarget::wploginprotection#plugin_url()","statsplugin#plugin_vulns_count()","browser::actions#post()","browser::actions#process()","wpitems::detectable#progress_bar()","wpuser::bruteforcable#progress_bar()","browser::options#proxy=()","wpscanoptions#proxy=()","browser::options#proxy_auth=()","wpscanoptions#proxy_auth=()","object#puts()","cachefilestore#read_entry()","wpitem::infos#readme_url()","wptarget::wpreadme#readme_url()","object#red()","object#redefine_constant()","website#redirection()","plugins#register()","plugin#register_options()","plugins#register_plugin()","wptarget::wpregistrable#registration_enabled?()","wptarget::wpregistrable#registration_url()","wpusers::output#remove_junk_from_display_names()","terminal::table#render()","gitupdater#repo_directory_arguments()","wpitems::detectable#request_params()","wpusers::detectable#request_params()","object#require_files_from_directory()","browser::reset()","gitupdater#reset_head()","customoptionparser#results()","website#robots_url()","website#rss_url()","checkerplugin#run()","listgeneratorplugin#run()","plugin#run()","statsplugin#run()","generatelist#save()","wpversion::findable#scan_url()","wptarget#search_replace_db_2_exists?()","wptarget#search_replace_db_2_url()","typhoeuscache#set()","generatelist#set_file_name()","wpscanoptions#set_option_from_cli()","wptarget::wploginprotection#simple_login_lockdown_url()","wptheme#style_url()","wpitems::detectable#targets_items()","wptimthumbs::detectable#targets_items()","wpusers::detectable#targets_items()","wpitems::detectable#targets_items_from_file()","wptimthumbs::detectable#targets_items_from_file()","wptarget#theme()","wptimthumbs::detectable#theme_timthumbs()","statsplugin#theme_vulns_count()","wpscanoptions#threads=()","wpscanoptions#to_h()","terminal::table#to_s()","wpitem::versionable#to_s()","wptimthumb::versionable#to_s()","wpuser#to_s()","statsplugin#total_plugins()","statsplugin#total_themes()","gitupdater#update()","svnupdater#update()","updater#update()","wpitem#uri()","wpuser#uri()","website#url()","wpitem#url()","website#url=()","wpscanoptions#url=()","wpitem::infos#url_is_200?()","object#usage()","browser::options#user_agent()","browser::options#user_agent_mode=()","wpuser::bruteforcable#valid_password?()","wptarget::valid_response_codes()","wpitem::versionable#version()","wptarget#version()","wptheme::versionable#version()","wptimthumb::versionable#version()","wpversion::findable#version_pattern()","statsplugin#vuln_plugin_count()","statsplugin#vuln_theme_count()","wpitem::vulnerable#vulnerabilities()","wpitems::detectable#vulnerable_targets_items()","wpitem::vulnerable#vulnerable_to?()","wpplugin::vulnerable#vulns_file()","wpplugins::detectable#vulns_file()","wptheme::vulnerable#vulns_file()","wpthemes::detectable#vulns_file()","wpversion::vulnerable#vulns_file()","wpplugin::vulnerable#vulns_xpath()","wptheme::vulnerable#vulns_xpath()","wpversion::vulnerable#vulns_xpath()","wpscanoptions#wordlist=()","wptarget#wordpress?()","wptarget::wpcustomdirectories#wp_content_dir()","wptarget::wpcustomdirectories#wp_plugins_dir()","wptarget::wpcustomdirectories#wp_plugins_dir_exists?()","cachefilestore#write_entry()","object#xml()","website#xml_rpc_url()","website#xml_rpc_url_from_body()","website#xml_rpc_url_from_headers()","","","","","","","","",""],"info":[["Array","","Array.html","",""],["Browser","","Browser.html","",""],["Browser::Actions","","Browser/Actions.html","",""],["Browser::Options","","Browser/Options.html","",""],["CacheFileStore","","CacheFileStore.html","",""],["CheckerPlugin","","CheckerPlugin.html","",""],["CustomOptionParser","","CustomOptionParser.html","",""],["Ethon","","Ethon.html","",""],["Ethon::Easy","","Ethon/Easy.html","",""],["Ethon::Easy::Options","","Ethon/Easy/Options.html","",""],["File","","File.html","",""],["Gem","","Gem.html","",""],["GenerateList","","GenerateList.html",""," This tool generates a list to use for plugin and theme enumeration\n"],["GitUpdater","","GitUpdater.html","",""],["ListGeneratorPlugin","","ListGeneratorPlugin.html","",""],["Object","","Object.html","",""],["Plugin","","Plugin.html","",""],["Plugins","","Plugins.html","",""],["StatsPlugin","","StatsPlugin.html","",""],["SvnParser","","SvnParser.html",""," This Class Parses SVN Repositories via HTTP\n"],["SvnUpdater","","SvnUpdater.html","",""],["Terminal","","Terminal.html","",""],["Terminal::Table","","Terminal/Table.html","",""],["Terminal::Table::Style","","Terminal/Table/Style.html","",""],["Typhoeus","","Typhoeus.html",""," This is used in WpItem::Existable\n Implementaion of a cache_key (Typhoeus::Request#hash has too many options)\n…\n"],["Typhoeus::Request","","Typhoeus/Request.html","",""],["Typhoeus::Request::Cacheable","","Typhoeus/Request/Cacheable.html","",""],["Typhoeus::Response","","Typhoeus/Response.html","",""],["TyphoeusCache","","TyphoeusCache.html","",""],["URI","","URI.html","",""],["Updater","","Updater.html",""," This class act as an absract one\n"],["UpdaterFactory","","UpdaterFactory.html","",""],["VersionCompare","","VersionCompare.html","",""],["Vulnerabilities","","Vulnerabilities.html","",""],["Vulnerabilities::Output","","Vulnerabilities/Output.html","",""],["Vulnerability","","Vulnerability.html","",""],["Vulnerability::Output","","Vulnerability/Output.html","",""],["WebSite","","WebSite.html","",""],["WpItem","","WpItem.html","",""],["WpItem::Existable","","WpItem/Existable.html","",""],["WpItem::Findable","","WpItem/Findable.html","",""],["WpItem::Infos","","WpItem/Infos.html",""," @uri is used instead of #uri to avoid the presence of the :path into it\n"],["WpItem::Output","","WpItem/Output.html","",""],["WpItem::Versionable","","WpItem/Versionable.html","",""],["WpItem::Vulnerable","","WpItem/Vulnerable.html","",""],["WpItems","","WpItems.html","",""],["WpItems::Detectable","","WpItems/Detectable.html","",""],["WpItems::Output","","WpItems/Output.html","",""],["WpPlugin","","WpPlugin.html","",""],["WpPlugin::Vulnerable","","WpPlugin/Vulnerable.html","",""],["WpPlugins","","WpPlugins.html","",""],["WpPlugins::Detectable","","WpPlugins/Detectable.html","",""],["WpTarget","","WpTarget.html","",""],["WpTarget::Malwares","","WpTarget/Malwares.html","",""],["WpTarget::WpConfigBackup","","WpTarget/WpConfigBackup.html","",""],["WpTarget::WpCustomDirectories","","WpTarget/WpCustomDirectories.html","",""],["WpTarget::WpFullPathDisclosure","","WpTarget/WpFullPathDisclosure.html","",""],["WpTarget::WpLoginProtection","","WpTarget/WpLoginProtection.html","",""],["WpTarget::WpReadme","","WpTarget/WpReadme.html","",""],["WpTarget::WpRegistrable","","WpTarget/WpRegistrable.html","",""],["WpTheme","","WpTheme.html","",""],["WpTheme::Findable","","WpTheme/Findable.html","",""],["WpTheme::Versionable","","WpTheme/Versionable.html","",""],["WpTheme::Vulnerable","","WpTheme/Vulnerable.html","",""],["WpThemes","","WpThemes.html","",""],["WpThemes::Detectable","","WpThemes/Detectable.html","",""],["WpTimthumb","","WpTimthumb.html","",""],["WpTimthumb::Existable","","WpTimthumb/Existable.html","",""],["WpTimthumb::Output","","WpTimthumb/Output.html","",""],["WpTimthumb::Versionable","","WpTimthumb/Versionable.html","",""],["WpTimthumbs","","WpTimthumbs.html","",""],["WpTimthumbs::Detectable","","WpTimthumbs/Detectable.html","",""],["WpUser","","WpUser.html","",""],["WpUser::BruteForcable","","WpUser/BruteForcable.html","",""],["WpUser::Existable","","WpUser/Existable.html","",""],["WpUsers","","WpUsers.html","",""],["WpUsers::BruteForcable","","WpUsers/BruteForcable.html","",""],["WpUsers::Detectable","","WpUsers/Detectable.html","",""],["WpUsers::Output","","WpUsers/Output.html","",""],["WpVersion","","WpVersion.html","",""],["WpVersion::Findable","","WpVersion/Findable.html","",""],["WpVersion::Output","","WpVersion/Output.html","",""],["WpVersion::Vulnerable","","WpVersion/Vulnerable.html","",""],["WpscanOptions","","WpscanOptions.html","",""],["<=>","WpItem","WpItem.html#method-i-3C-3D-3E","(other)"," @param [ WpItem ] other\n"],["<=>","WpUser","WpUser.html#method-i-3C-3D-3E","(other)"," @param [ WpUser ] other\n"],["==","Vulnerability","Vulnerability.html#method-i-3D-3D","(other)"," @param [ Vulnerability ] other\n @return [ Boolean ] :nocov:\n"],["==","WpItem","WpItem.html#method-i-3D-3D","(other)"," @param [ WpItem ] other\n"],["==","WpTimthumb","WpTimthumb.html#method-i-3D-3D","(other)"," @param [ WpTimthumb ] other\n @return [ Boolean ]\n"],["==","WpUser","WpUser.html#method-i-3D-3D","(other)"," @param [ WpUser ] other\n @return [ Boolean ]\n"],["==","WpVersion","WpVersion.html#method-i-3D-3D","(other)"," @param [ WpVersion ] other\n @return [ Boolean ]\n"],["===","WpItem","WpItem.html#method-i-3D-3D-3D","(other)"," @param [ WpItem ] other\n"],["===","WpUser","WpUser.html#method-i-3D-3D-3D","(other)"," @param [ WpUser ] other\n @return [ Boolean ]\n"],["_grep_","Array","Array.html#method-i-_grep_","(regexp)"," Fix for grep with symbols in ruby <= 1.8.7\n"],["add","CustomOptionParser","CustomOptionParser.html#method-i-add","(options)"," param Array(Array) or Array options\n"],["add_http_protocol","Object","Object.html#method-i-add_http_protocol","(url)"," Add protocol\n"],["add_option","CustomOptionParser","CustomOptionParser.html#method-i-add_option","(option)"," param Array option\n"],["add_trailing_slash","Object","Object.html#method-i-add_trailing_slash","(url)",""],["aggressive_detection","WpItems::Detectable","WpItems/Detectable.html#method-i-aggressive_detection","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options @option options [\nBoolean ] :show_progression …\n"],["allowed_options","WpItem","WpItem.html#method-i-allowed_options","()"," @return [ Array ] Make it private ?\n"],["allowed_options","WpTheme","WpTheme.html#method-i-allowed_options","()",""],["allowed_options","WpUser","WpUser.html#method-i-allowed_options","()"," @return [ Array<Symbol> ]\n"],["allowed_options","WpVersion","WpVersion.html#method-i-allowed_options","()"," @return [ Array ]\n"],["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=","Browser::Options","Browser/Options.html#method-i-basic_auth-3D","(auth)"," Sets the Basic Authentification credentials Accepted format:\n\n @param …\n"],["basic_auth=","WpscanOptions","WpscanOptions.html#method-i-basic_auth-3D","(basic_auth)",""],["better_wp_security_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-better_wp_security_url","()",""],["bluetrait_event_viewer_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-bluetrait_event_viewer_url","()",""],["brute_force","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-brute_force","(wordlist, options = {})"," Brute force the user with the wordlist supplied\n It can take a long time to queue 2 million requests, for …\n"],["brute_force","WpUsers::BruteForcable","WpUsers/BruteForcable.html#method-i-brute_force","(wordlist, options = {})"," Brute force each wp_user\n To avoid loading the wordlist each time in the wp_user instance It’s loaded\nhere, …\n"],["cache_key","Typhoeus::Request::Cacheable","Typhoeus/Request/Cacheable.html#method-i-cache_key","()",""],["changelog_url","WpItem::Infos","WpItem/Infos.html#method-i-changelog_url","()"," @return [ String ] The url to the changelog file\n"],["charset","File","File.html#method-c-charset","(file_path)"," @param [ String ] file_path\n @return [ String ] The charset of the file\n"],["check_local_vulnerable_files","CheckerPlugin","CheckerPlugin.html#method-i-check_local_vulnerable_files","(dir_to_scan)",""],["check_vuln_ref_urls","CheckerPlugin","CheckerPlugin.html#method-i-check_vuln_ref_urls","()",""],["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","WpTarget::WpConfigBackup","WpTarget/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","WpTarget::WpConfigBackup","WpTarget/WpConfigBackup.html#method-c-config_backup_files","()"," @return Array\n"],["cookiefile=","Ethon::Easy::Options","Ethon/Easy/Options.html#method-i-cookiefile-3D","(value)",""],["cookiejar=","Ethon::Easy::Options","Ethon/Easy/Options.html#method-i-cookiejar-3D","(value)",""],["create_item","WpItems::Detectable","WpItems/Detectable.html#method-i-create_item","(klass, name, wp_target, vulns_file = nil)"," @param [ Class ] klass @param [ String ] name @param [ WpTarget ] wp_target\n@option [ String ] vulns_file …\n"],["create_item","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-create_item","(wp_target, path = nil)"," @param [ WpTarget ] wp_target @option [ String ] path\n @return [ WpTimthumb ]\n"],["debug_log_url","WpTarget","WpTarget.html#method-i-debug_log_url","()"," @return [ String ]\n"],["default_wp_content_dir_exists?","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-default_wp_content_dir_exists-3F","()"," @return [ Boolean ]\n"],["display_name_from_body","WpUser::Existable","WpUser/Existable.html#method-c-display_name_from_body","(body)"," @note Some bodies are encoded in ASCII-8BIT, and Nokogiri doesn’t support\nit\n\n 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)",""],["error_404_hash","WebSite","WebSite.html#method-i-error_404_hash","()"," Return the MD5 hash of a 404 page\n"],["error_log_url","WpItem::Infos","WpItem/Infos.html#method-i-error_log_url","()"," @return [ String ] The url to the error_log file\n"],["escape","URI","URI.html#method-i-escape","(str)",""],["exists?","WpItem::Existable","WpItem/Existable.html#method-i-exists-3F","(options = {}, response = nil)"," Check the existence of the WpItem If the response is supplied, it’s used\nfor the verification Otherwise …\n"],["exists_from_response?","WpItem::Existable","WpItem/Existable.html#method-i-exists_from_response-3F","(response, options = {})"," @param [ Typhoeus::Response ] response @param [ options ] options\n @option options [ Hash ] :error_404_hash …\n"],["exists_from_response?","WpTimthumb::Existable","WpTimthumb/Existable.html#method-i-exists_from_response-3F","(response, options = {})"," @param [ Typhoeus::Response ] response @param [ Hash ] options\n @return [ Boolean ]\n"],["exists_from_response?","WpUser::Existable","WpUser/Existable.html#method-i-exists_from_response-3F","(response, options = {})"," @param [ Typhoeus::Response ] response @param [ Hash ] options\n @return [ Boolean ]\n"],["find","WpTheme::Findable","WpTheme/Findable.html#method-i-find","(target_uri)"," Find the main theme of the blog\n @param [ URI ] target_uri\n @return [ WpTheme ]\n"],["find","WpVersion::Findable","WpVersion/Findable.html#method-i-find","(target_uri, wp_content_dir, wp_plugins_dir, versions_xml)"," Find the version of the blog designated from target_uri\n @param [ URI ] target_uri @param [ String ] wp_content_dir …\n"],["find_from_advanced_fingerprinting","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_advanced_fingerprinting","(target_uri, wp_content_dir, wp_plugins_dir, versions_xml)"," 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::Findable","WpVersion/Findable.html#method-i-find_from_atom_generator","(target_uri)"," Attempts to find the WordPress version from, the generator tag in the Atom\nsource.\n @param [ URI ] target_uri …\n"],["find_from_css_link","WpTheme::Findable","WpTheme/Findable.html#method-i-find_from_css_link","(target_uri)"," Discover the wordpress theme by parsing the css link rel\n @param [ URI ] target_uri\n @return [ WpTheme ] …\n"],["find_from_links_opml","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_links_opml","(target_uri)"," Attempts to find the WordPress version from the p-links-opml.php file.\n @param [ URI ] target_uri\n @return …\n"],["find_from_meta_generator","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_meta_generator","(target_uri)"," 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::Findable","WpVersion/Findable.html#method-i-find_from_rdf_generator","(target_uri)"," Attempts to find WordPress version from, the generator tag in the RDF feed\nsource.\n @param [ URI ] target_uri …\n"],["find_from_readme","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_readme","(target_uri)"," Attempts to find the WordPress version from the readme.html file.\n @param [ URI ] target_uri\n @return [ …\n"],["find_from_rss_generator","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_rss_generator","(target_uri)"," Attempts to find the WordPress version from, the generator tag in the RSS\nfeed source.\n @param [ URI ] …\n"],["find_from_sitemap_generator","WpVersion::Findable","WpVersion/Findable.html#method-i-find_from_sitemap_generator","(target_uri)"," 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::Findable","WpTheme/Findable.html#method-i-find_from_wooframework","(target_uri)"," code.google.com/p/wpscan/issues/detail?id=141\n @param [ URI ] target_uri\n @return [ WpTheme ]\n"],["forge_request","Browser","Browser.html#method-i-forge_request","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Request ]\n"],["forge_uri","WpItem","WpItem.html#method-i-forge_uri","(target_base_uri)"," @param [ URI ] target_base_uri\n @return [ void ]\n"],["forge_uri","WpPlugin","WpPlugin.html#method-i-forge_uri","(target_base_uri)"," Sets the @uri\n @param [ URI ] target_base_uri The URI of the wordpress blog\n @return [ void ]\n"],["forge_uri","WpTheme","WpTheme.html#method-i-forge_uri","(target_base_uri)"," Sets the @uri\n @param [ URI ] target_base_uri The URI of the wordpress blog\n @return [ void ]\n"],["found_from=","WpItem","WpItem.html#method-i-found_from-3D","(method)"," Sets the found_from attribute\n @param [ String ] method The method which found the WpItem\n @return [ void …\n"],["full_path_disclosure_url","WpTarget::WpFullPathDisclosure","WpTarget/WpFullPathDisclosure.html#method-i-full_path_disclosure_url","()"," @return [ String ]\n"],["generate_full_list","GenerateList","GenerateList.html#method-i-generate_full_list","()",""],["generate_popular_list","GenerateList","GenerateList.html#method-i-generate_popular_list","(pages)",""],["get","Browser::Actions","Browser/Actions.html#method-i-get","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["get","TyphoeusCache","TyphoeusCache.html#method-i-get","(request)",""],["get_and_follow_location","Browser::Actions","Browser/Actions.html#method-i-get_and_follow_location","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["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_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_popular_items","GenerateList","GenerateList.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_updater","UpdaterFactory","UpdaterFactory.html#method-c-get_updater","(repo_directory)",""],["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?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_better_wp_security_protection-3F","()"," wordpress.org/extend/plugins/better-wp-security/\n"],["has_bluetrait_event_viewer_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_bluetrait_event_viewer_protection-3F","()"," wordpress.org/extend/plugins/bluetrait-event-viewer/\n"],["has_changelog?","WpItem::Infos","WpItem/Infos.html#method-i-has_changelog-3F","()"," @return [ Boolean ]\n"],["has_debug_log?","WpTarget","WpTarget.html#method-i-has_debug_log-3F","()"," @return [ Boolean ]\n"],["has_directory_listing?","WpItem::Infos","WpItem/Infos.html#method-i-has_directory_listing-3F","()"," @return [ Boolean ]\n"],["has_error_log?","WpItem::Infos","WpItem/Infos.html#method-i-has_error_log-3F","()"," Discover any error_log files created by WordPress These are created by the\nWordPress error_log() function …\n"],["has_full_path_disclosure?","WpTarget::WpFullPathDisclosure","WpTarget/WpFullPathDisclosure.html#method-i-has_full_path_disclosure-3F","()"," Check for Full Path Disclosure (FPD)\n @return [ Boolean ]\n"],["has_limit_login_attempts_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_limit_login_attempts_protection-3F","()"," wordpress.org/extend/plugins/limit-login-attempts/\n"],["has_local_changes?","GitUpdater","GitUpdater.html#method-i-has_local_changes-3F","()",""],["has_log?","WebSite","WebSite.html#method-c-has_log-3F","(log_url, pattern)"," Only the first 700 bytes are checked to avoid the download of the whole\nfile which can be very huge (like …\n"],["has_login_lock_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_login_lock_protection-3F","()"," wordpress.org/extend/plugins/login-lock/\n"],["has_login_lockdown_protection?","WpTarget::WpLoginProtection","WpTarget/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?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_login_protection-3F","()",""],["has_login_security_solution_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_login_security_solution_protection-3F","()"," wordpress.org/extend/plugins/login-security-solution/\n"],["has_malwares?","WpTarget::Malwares","WpTarget/Malwares.html#method-i-has_malwares-3F","(malwares_file_path = nil)",""],["has_options?","WpscanOptions","WpscanOptions.html#method-i-has_options-3F","()",""],["has_plugin?","WpTarget","WpTarget.html#method-i-has_plugin-3F","(name, version = nil)"," The version is not yet considerated\n @param [ String ] name @param [ String ] version\n @return [ Boolean …\n"],["has_readme?","WpItem::Infos","WpItem/Infos.html#method-i-has_readme-3F","()"," @return [ Boolean ]\n"],["has_readme?","WpTarget::WpReadme","WpTarget/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_robots?","WebSite","WebSite.html#method-i-has_robots-3F","()"," Checks if a robots.txt file exists\n"],["has_simple_login_lockdown_protection?","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-has_simple_login_lockdown_protection-3F","()"," wordpress.org/extend/plugins/simple-login-lockdown/\n"],["has_valid_hash?","Typhoeus::Response","Typhoeus/Response.html#method-i-has_valid_hash-3F","(error_404_hash, homepage_hash)"," Compare the body hash to error_404_hash and homepage_hash returns true if\nthey are different, false otherwise …\n"],["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","()",""],["instance","Browser","Browser.html#method-c-instance","(options = {})"," @param [ Hash ] options\n @return [ Browser ]\n"],["invalid_proxy_auth_format","Browser::Options","Browser/Options.html#method-i-invalid_proxy_auth_format","()",""],["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_newer_or_same?","VersionCompare","VersionCompare.html#method-c-is_newer_or_same-3F","(version1, version2)"," Compares two version strings. Returns true if version1 is equal to version2\nor when version1 is older …\n"],["item_class","WpItems::Detectable","WpItems/Detectable.html#method-i-item_class","()"," @return [ Class ]\n"],["item_xpath","WpPlugins::Detectable","WpPlugins/Detectable.html#method-i-item_xpath","()"," @return [ String ]\n"],["item_xpath","WpThemes::Detectable","WpThemes/Detectable.html#method-i-item_xpath","()"," @return [ String ]\n"],["limit_login_attempts_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-limit_login_attempts_url","()",""],["lines_in_file","StatsPlugin","StatsPlugin.html#method-i-lines_in_file","(file)",""],["load_config","Browser","Browser.html#method-i-load_config","(config_file = nil)"," If an option was set but is not in the new config_file it’s value is kept\n @param [ String ] config_file …\n"],["load_from_arguments","WpscanOptions","WpscanOptions.html#method-c-load_from_arguments","()"," Will load the options from ARGV return WpscanOptions\n"],["load_from_xml_node","Vulnerability","Vulnerability.html#method-c-load_from_xml_node","(xml_node)"," Create the Vulnerability from the xml_node\n @param [ Nokogiri::XML::Node ] xml_node\n @return [ Vulnerability …\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_from_author_pattern","WpUser::Existable","WpUser/Existable.html#method-c-login_from_author_pattern","(text)"," @param [ String ] text\n @return [ String ] The login\n"],["login_from_body","WpUser::Existable","WpUser/Existable.html#method-c-login_from_body","(body)"," @param [ String ] body\n @return [ String ] The login\n"],["login_protection_plugin","WpTarget::WpLoginProtection","WpTarget/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_request","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-login_request","(password)"," @param [ String ] password\n @return [ Typhoeus::Request ]\n"],["login_security_solution_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-login_security_solution_url","()",""],["login_url","WpTarget","WpTarget.html#method-i-login_url","()",""],["login_url","WpUser","WpUser.html#method-i-login_url","()"," @return [ String ]\n"],["main","Object","Object.html#method-i-main","()",""],["malware_pattern","WpTarget::Malwares","WpTarget/Malwares.html#method-c-malware_pattern","(url_regex)",""],["malwares","WpTarget::Malwares","WpTarget/Malwares.html#method-i-malwares","(malwares_file_path = nil)"," return array of string (url of malwares found)\n"],["malwares_file","WpTarget::Malwares","WpTarget/Malwares.html#method-c-malwares_file","(malwares_file_path)",""],["max_threads","Browser::Options","Browser/Options.html#method-i-max_threads","()"," @return [ Integer ]\n"],["max_threads=","Browser::Options","Browser/Options.html#method-i-max_threads-3D","(threads)",""],["merge_request_params","Browser","Browser.html#method-i-merge_request_params","(params = {})"," @param [ Hash ] params\n @return [ Hash ]\n"],["metasploit_module_url","Vulnerability::Output","Vulnerability/Output.html#method-c-metasploit_module_url","(module_path)"," @return [ String ] The url to the metasploit module page\n"],["multisite?","WpTarget::WpRegistrable","WpTarget/WpRegistrable.html#method-i-multisite-3F","()"," @return [ Boolean ]\n"],["new","CacheFileStore","CacheFileStore.html#method-c-new","(storage_path, serializer = Marshal)"," The serializer must have the 2 methods .load and .dump\n\n YAML is Human Readable …\n"],["new","CheckerPlugin","CheckerPlugin.html#method-c-new","()",""],["new","CustomOptionParser","CustomOptionParser.html#method-c-new","(banner = nil, width = 32, indent = ' ' * 4)",""],["new","GenerateList","GenerateList.html#method-c-new","(type, verbose)"," type = themes | plugins\n"],["new","ListGeneratorPlugin","ListGeneratorPlugin.html#method-c-new","()",""],["new","Plugin","Plugin.html#method-c-new","(infos = {})",""],["new","Plugins","Plugins.html#method-c-new","(option_parser = nil)",""],["new","StatsPlugin","StatsPlugin.html#method-c-new","()",""],["new","SvnParser","SvnParser.html#method-c-new","(svn_root)",""],["new","Updater","Updater.html#method-c-new","(repo_directory = nil)"," TODO : add a last ‘/ to repo_directory if it’s not present\n"],["new","Vulnerability","Vulnerability.html#method-c-new","(title, type, references, metasploit_modules = [], fixed_in = '')"," @param [ String ] title The title of the vulnerability @param [ String ]\ntype The type of the vulnerability …\n"],["new","WebSite","WebSite.html#method-c-new","(site_url)",""],["new","WpItem","WpItem.html#method-c-new","(target_base_uri, options = {})"," @param [ URI ] target_base_uri @param [ Hash ] options See allowed_option\n @return [ WpItem ]\n"],["new","WpTarget","WpTarget.html#method-c-new","(target_url, options = {})",""],["new","WpscanOptions","WpscanOptions.html#method-c-new","()",""],["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)",""],["option_to_symbol","CustomOptionParser","CustomOptionParser.html#method-c-option_to_symbol","(option)"," param Array option\n"],["output","Vulnerabilities::Output","Vulnerabilities/Output.html#method-i-output","()",""],["output","Vulnerability::Output","Vulnerability/Output.html#method-i-output","()"," output the vulnerability\n"],["output","WpItem::Output","WpItem/Output.html#method-i-output","()"," @return [ Void ]\n"],["output","WpItems::Output","WpItems/Output.html#method-i-output","()",""],["output","WpTimthumb::Output","WpTimthumb/Output.html#method-i-output","()",""],["output","WpUsers::Output","WpUsers/Output.html#method-i-output","(options = {})"," @param [ Hash ] options @option options[ Boolean ] :show_password Output\nthe password column\n @return [ …\n"],["output","WpVersion::Output","WpVersion/Output.html#method-i-output","()",""],["override_config","Browser::Options","Browser/Options.html#method-i-override_config","(options = {})"," Override with the options if they are set @param [ Hash ] options\n @return [ void ]\n"],["page_hash","WebSite","WebSite.html#method-c-page_hash","(page)"," Compute the MD5 of the page Comments are deleted from the page to avoid\ncache generation details\n @param …\n"],["parse","SvnParser","SvnParser.html#method-i-parse","()",""],["passive_detection","WpItems::Detectable","WpItems/Detectable.html#method-i-passive_detection","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options\n @return [ WpItems ]\n"],["passive_detection","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-passive_detection","(wp_target, options = {})"," No passive detection\n @param [ WpTarget ] wp_target @param [ Hash ] options\n @return [ WpTimthumbs ]\n"],["passive_detection","WpUsers::Detectable","WpUsers/Detectable.html#method-i-passive_detection","(wp_target, options = {})"," No passive detection\n @return [ WpUsers ]\n"],["passwords_from_wordlist","WpUser::BruteForcable","WpUser/BruteForcable.html#method-c-passwords_from_wordlist","(wordlist)"," Load the passwords from the wordlist, which can be a file path or an array\nor passwords\n File comments …\n"],["path=","WpItem","WpItem.html#method-i-path-3D","(path)"," Sets the path\n Variable, such as $wp-plugins$ and $wp-content$ can be used and will be\nreplace by their …\n"],["plugin_url","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-plugin_url","(plugin_name)",""],["plugin_vulns_count","StatsPlugin","StatsPlugin.html#method-i-plugin_vulns_count","(file=PLUGINS_VULNS_FILE)",""],["post","Browser::Actions","Browser/Actions.html#method-i-post","(url, params = {})"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["process","Browser::Actions","Browser/Actions.html#method-i-process","(url, params)"," @param [ String ] url @param [ Hash ] params\n @return [ Typhoeus::Response ]\n"],["progress_bar","WpItems::Detectable","WpItems/Detectable.html#method-i-progress_bar","(targets_size, options)"," @param [ Integer ] targets_size @param [ Hash ] options\n @return [ ProgressBar ] :nocov:\n"],["progress_bar","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-progress_bar","(passwords_size, options)"," @param [ Integer ] targets_size @param [ Hash ] options\n @return [ ProgressBar ] :nocov:\n"],["proxy=","Browser::Options","Browser/Options.html#method-i-proxy-3D","(proxy)"," Sets the proxy Accepted format:\n\n Sets the proxy credentials Accepted format:\n\n Override for puts to enable logging\n"],["read_entry","CacheFileStore","CacheFileStore.html#method-i-read_entry","(key)",""],["readme_url","WpItem::Infos","WpItem/Infos.html#method-i-readme_url","()"," @return [ String,nil ] The url to the readme file, nil if not found\n"],["readme_url","WpTarget::WpReadme","WpTarget/WpReadme.html#method-i-readme_url","()"," @return [ String ] The readme URL\n"],["red","Object","Object.html#method-i-red","(text)",""],["redefine_constant","Object","Object.html#method-i-redefine_constant","(constant, value)",""],["redirection","WebSite","WebSite.html#method-i-redirection","(url = nil)"," See if the remote url returns 30x redirect This method is recursive Return\na string with the redirection …\n"],["register","Plugins","Plugins.html#method-i-register","(*plugins)"," param Array(Plugin) plugins\n"],["register_options","Plugin","Plugin.html#method-i-register_options","(*options)"," param Array options\n"],["register_plugin","Plugins","Plugins.html#method-i-register_plugin","(plugin)"," param Plugin plugin\n"],["registration_enabled?","WpTarget::WpRegistrable","WpTarget/WpRegistrable.html#method-i-registration_enabled-3F","()"," Should check wp-login.php if registration is enabled or not\n @return [ Boolean ]\n"],["registration_url","WpTarget::WpRegistrable","WpTarget/WpRegistrable.html#method-i-registration_url","()"," @return [ String ] The registration URL\n"],["remove_junk_from_display_names","WpUsers::Output","WpUsers/Output.html#method-i-remove_junk_from_display_names","()",""],["render","Terminal::Table","Terminal/Table.html#method-i-render","()",""],["repo_directory_arguments","GitUpdater","GitUpdater.html#method-i-repo_directory_arguments","()",""],["request_params","WpItems::Detectable","WpItems/Detectable.html#method-i-request_params","()"," The default request parameters\n @return [ Hash ]\n"],["request_params","WpUsers::Detectable","WpUsers/Detectable.html#method-i-request_params","()"," @return [ Hash ]\n"],["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","()",""],["reset_head","GitUpdater","GitUpdater.html#method-i-reset_head","()",""],["results","CustomOptionParser","CustomOptionParser.html#method-i-results","(argv = default_argv)"," return Hash\n"],["robots_url","WebSite","WebSite.html#method-i-robots_url","()"," Gets a robots.txt URL\n @return [ String ]\n"],["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"],["run","CheckerPlugin","CheckerPlugin.html#method-i-run","(options = {})",""],["run","ListGeneratorPlugin","ListGeneratorPlugin.html#method-i-run","(options = {})",""],["run","Plugin","Plugin.html#method-i-run","(options = {})",""],["run","StatsPlugin","StatsPlugin.html#method-i-run","(options = {})",""],["save","GenerateList","GenerateList.html#method-i-save","(items)"," Save the file\n"],["scan_url","WpVersion::Findable","WpVersion/Findable.html#method-i-scan_url","(target_uri, pattern, path = nil)"," Returns the first match of <pattern> in the body of the url\n @param [ URI ] target_uri @param [ …\n"],["search_replace_db_2_exists?","WpTarget","WpTarget.html#method-i-search_replace_db_2_exists-3F","()"," @return [ Boolean ]\n"],["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"],["set","TyphoeusCache","TyphoeusCache.html#method-i-set","(request, response)",""],["set_file_name","GenerateList","GenerateList.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","WpTarget::WpLoginProtection","WpTarget/WpLoginProtection.html#method-i-simple_login_lockdown_url","()",""],["style_url","WpTheme","WpTheme.html#method-i-style_url","()"," @return [ String ] The url to the theme stylesheet\n"],["targets_items","WpItems::Detectable","WpItems/Detectable.html#method-i-targets_items","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ options ] options @option options [\nBoolean ] :only_vulnerable …\n"],["targets_items","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-targets_items","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options @option options [\nString ] :file The path to the …\n"],["targets_items","WpUsers::Detectable","WpUsers/Detectable.html#method-i-targets_items","(wp_target, options = {})"," @param [ WpTarget ] wp_target @param [ Hash ] options @option options [\nRange ] :range ((1..10))\n @return …\n"],["targets_items_from_file","WpItems::Detectable","WpItems/Detectable.html#method-i-targets_items_from_file","(file, wp_target, item_class, vulns_file)"," @param [ String ] file @param [ WpTarget ] wp_target @param [ Class ]\nitem_class @param [ String ] vulns_file …\n"],["targets_items_from_file","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-targets_items_from_file","(file, wp_target)"," @param [ String ] file @param [ WpTarget ] wp_target\n @return [ Array<WpTimthumb> ]\n"],["theme","WpTarget","WpTarget.html#method-i-theme","()"," @return [ WpTheme ] :nocov:\n"],["theme_timthumbs","WpTimthumbs::Detectable","WpTimthumbs/Detectable.html#method-i-theme_timthumbs","(theme_name, wp_target)"," @param [ String ] theme_name @param [ WpTarget ] wp_target\n @return [ Array<WpTimthumb> ]\n"],["theme_vulns_count","StatsPlugin","StatsPlugin.html#method-i-theme_vulns_count","(file=THEMES_VULNS_FILE)",""],["threads=","WpscanOptions","WpscanOptions.html#method-i-threads-3D","(threads)",""],["to_h","WpscanOptions","WpscanOptions.html#method-i-to_h","()"," return Hash\n"],["to_s","Terminal::Table","Terminal/Table.html#method-i-to_s","()",""],["to_s","WpItem::Versionable","WpItem/Versionable.html#method-i-to_s","()"," @return [ String ]\n"],["to_s","WpTimthumb::Versionable","WpTimthumb/Versionable.html#method-i-to_s","()"," @return [ String ]\n"],["to_s","WpUser","WpUser.html#method-i-to_s","()"," @return [ String ]\n"],["total_plugins","StatsPlugin","StatsPlugin.html#method-i-total_plugins","(file=PLUGINS_FULL_FILE)",""],["total_themes","StatsPlugin","StatsPlugin.html#method-i-total_themes","(file=THEMES_FULL_FILE)",""],["update","GitUpdater","GitUpdater.html#method-i-update","()",""],["update","SvnUpdater","SvnUpdater.html#method-i-update","()",""],["update","Updater","Updater.html#method-i-update","()",""],["uri","WpItem","WpItem.html#method-i-uri","()"," @return [ URI ] The uri to the WpItem, with the path if present\n"],["uri","WpUser","WpUser.html#method-i-uri","()"," @return [ URI ] The uri to the auhor page\n"],["url","WebSite","WebSite.html#method-i-url","()",""],["url","WpItem","WpItem.html#method-i-url","()"," @return [ String ] The url to the WpItem\n"],["url=","WebSite","WebSite.html#method-i-url-3D","(url)",""],["url=","WpscanOptions","WpscanOptions.html#method-i-url-3D","(url)",""],["url_is_200?","WpItem::Infos","WpItem/Infos.html#method-i-url_is_200-3F","(url)"," Checks if the url status code is 200\n @param [ String ] url\n @return [ Boolean ] True if the url status is …\n"],["usage","Object","Object.html#method-i-usage","()"," wpscan usage\n"],["user_agent","Browser::Options","Browser/Options.html#method-i-user_agent","()"," @return [ String ] The user agent, according to the user_agent_mode\n"],["user_agent_mode=","Browser::Options","Browser/Options.html#method-i-user_agent_mode-3D","(ua_mode)"," Sets the user_agent_mode, which can be one of the following:\n\n @param [ Typhoeus::Response ] response @param [ String ] password @param [\nHash ] options @option options …\n"],["valid_response_codes","WpTarget","WpTarget.html#method-c-valid_response_codes","()"," Valid HTTP return codes\n"],["version","WpItem::Versionable","WpItem/Versionable.html#method-i-version","()"," Get the version from the readme.txt\n @return [ String ] The version number\n"],["version","WpTarget","WpTarget.html#method-i-version","(versions_xml)"," @param [ String ] versions_xml\n @return [ WpVersion ] :nocov:\n"],["version","WpTheme::Versionable","WpTheme/Versionable.html#method-i-version","()",""],["version","WpTimthumb::Versionable","WpTimthumb/Versionable.html#method-i-version","()"," Get the version from the body of an invalid request See\ncode.google.com/p/timthumb/source/browse/trunk/timthumb.php#426 …\n"],["version_pattern","WpVersion::Findable","WpVersion/Findable.html#method-i-version_pattern","()"," Used to check if the version is correct: must contain at least one dot.\n @return [ String ]\n"],["vuln_plugin_count","StatsPlugin","StatsPlugin.html#method-i-vuln_plugin_count","(file=PLUGINS_VULNS_FILE)",""],["vuln_theme_count","StatsPlugin","StatsPlugin.html#method-i-vuln_theme_count","(file=THEMES_VULNS_FILE)",""],["vulnerabilities","WpItem::Vulnerable","WpItem/Vulnerable.html#method-i-vulnerabilities","()"," Get the vulnerabilities associated to the WpItem Filters out already fixed\nvulnerabilities\n @return [ …\n"],["vulnerable_targets_items","WpItems::Detectable","WpItems/Detectable.html#method-i-vulnerable_targets_items","(wp_target, item_class, vulns_file)"," @param [ WpTarget ] wp_target @param [ Class ] item_class @param [ String ]\nvulns_file\n @return [ Array …\n"],["vulnerable_to?","WpItem::Vulnerable","WpItem/Vulnerable.html#method-i-vulnerable_to-3F","(vuln)"," Checks if a item is vulnerable to a specific vulnerability\n @param [ Vulnerability ] vuln Vulnerability …\n"],["vulns_file","WpPlugin::Vulnerable","WpPlugin/Vulnerable.html#method-i-vulns_file","()"," @return [ String ] The path to the file containing vulnerabilities\n"],["vulns_file","WpPlugins::Detectable","WpPlugins/Detectable.html#method-i-vulns_file","()"," @return [ String ]\n"],["vulns_file","WpTheme::Vulnerable","WpTheme/Vulnerable.html#method-i-vulns_file","()"," @return [ String ] The path to the file containing vulnerabilities\n"],["vulns_file","WpThemes::Detectable","WpThemes/Detectable.html#method-i-vulns_file","()"," @return [ String ]\n"],["vulns_file","WpVersion::Vulnerable","WpVersion/Vulnerable.html#method-i-vulns_file","()"," @return [ String ] The path to the file containing vulnerabilities\n"],["vulns_xpath","WpPlugin::Vulnerable","WpPlugin/Vulnerable.html#method-i-vulns_xpath","()"," @return [ String ]\n"],["vulns_xpath","WpTheme::Vulnerable","WpTheme/Vulnerable.html#method-i-vulns_xpath","()"," @return [ String ]\n"],["vulns_xpath","WpVersion::Vulnerable","WpVersion/Vulnerable.html#method-i-vulns_xpath","()"," @return [ String ]\n"],["wordlist=","WpscanOptions","WpscanOptions.html#method-i-wordlist-3D","(wordlist)",""],["wordpress?","WpTarget","WpTarget.html#method-i-wordpress-3F","()"," check if the target website is actually running wordpress.\n"],["wp_content_dir","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-wp_content_dir","()"," @return [ String ] The wp-content directory\n"],["wp_plugins_dir","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-wp_plugins_dir","()"," @return [ String ] The wp-plugins directory\n"],["wp_plugins_dir_exists?","WpTarget::WpCustomDirectories","WpTarget/WpCustomDirectories.html#method-i-wp_plugins_dir_exists-3F","()"," @return [ Boolean ]\n"],["write_entry","CacheFileStore","CacheFileStore.html#method-i-write_entry","(key, data_to_store, cache_ttl)",""],["xml","Object","Object.html#method-i-xml","(file)",""],["xml_rpc_url","WebSite","WebSite.html#method-i-xml_rpc_url","()"," See www.hixie.ch/specs/pingback/pingback-1.0#TOC2.3\n"],["xml_rpc_url_from_body","WebSite","WebSite.html#method-i-xml_rpc_url_from_body","()",""],["xml_rpc_url_from_headers","WebSite","WebSite.html#method-i-xml_rpc_url_from_headers","()",""],["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 # Seg fault in Typhoeus 0.6.3 (and ethon > 0.5.11) with rspec gem\n“typhoeus”, …\n"],["Gemfile.lock","","Gemfile_lock.html",""," GEM\n\n WPScan - WordPress Security Scanner Copyright (C) 2012-2013\n This program is free software: you can redistribute …\n"],["README","","README.html",""," __\n\n \n LICENSE\n WPScan - WordPress Security Scanner\nCopyright (C), 2011-2013 The WPScan\nTeam\n"],["cookie-jar","","cache/browser/cookie-jar.html",""," # Netscape HTTP Cookie File # curl.haxx.se/rfc/cookie_spec.html # This file\nwas generated by libcurl! …\n"],["browser.conf.json","","conf/browser_conf_json.html",""," {\n\n #!/bin/bash DIR=“$( cd ”$( dirname “${BASH_SOURCE}” )“ && pwd )” …\n"]]}}
\ No newline at end of file
diff --git a/doc_rdoc/table_of_contents.html b/doc_rdoc/table_of_contents.html
index b209de9f..ca80e59b 100644
--- a/doc_rdoc/table_of_contents.html
+++ b/doc_rdoc/table_of_contents.html
@@ -72,6 +72,9 @@
# File lib/common/common_helper.rb, line 116
+def get_equal_string_end(stringarray = [''])
+ already_found = ''
+ looping = true
+ counter = -1
+ if stringarray.kind_of? Array and stringarray.length > 1
+ base = stringarray[0]
+ while looping
+ character = base[counter, 1]
+ stringarray.each do |s|
+ if s[counter, 1] != character
+ looping = false
+ break
+ end
+ end
+ if looping == false or (counter * -1) > base.length
+ break
+ end
+ already_found = "#{character if character}#{already_found}"
+ counter -= 1
+ end
+ end
+ already_found
+end
+ -Sy ruby
+-Syu ruby
--Sy libyaml
+-Syu libyaml
clone https://github.com/wpscanteam/wpscan.git
diff --git a/doc_rdoc/StatsPlugin.html b/doc_rdoc/StatsPlugin.html
index a6a49192..c790c9cc 100644
--- a/doc_rdoc/StatsPlugin.html
+++ b/doc_rdoc/StatsPlugin.html
@@ -114,6 +114,8 @@
Attributes
+ # File lib/common/models/vulnerability.rb, line 37
+
# File lib/common/models/vulnerability.rb, line 43
def self.load_from_xml_node(xml_node)
new(
xml_node.search('title').text,
xml_node.search('type').text,
xml_node.search('reference').map(&:text),
- xml_node.search('metasploit').map(&:text)
+ xml_node.search('metasploit').map(&:text),
+ xml_node.search('fixed_in').text
)
end
# File lib/common/models/vulnerability.rb, line 16
-def initialize(title, type, references, metasploit_modules = [])
+
# File lib/common/models/vulnerability.rb, line 17
+def initialize(title, type, references, metasploit_modules = [], fixed_in = '')
@title = title
@type = type
@references = references
@metasploit_modules = metasploit_modules
+ @fixed_in = fixed_in
end
# File lib/common/models/vulnerability.rb, line 27
+
# File lib/common/models/vulnerability.rb, line 29
def ==(other)
- title == other.title && type == other.type && references == other.references
+ title == other.title &&
+ type == other.type &&
+ references == other.references &&
+ fixed_in == other.fixed_in &&
+ metasploit_modules == other.metasploit_modules
end
# File lib/common/models/wp_item/versionable.rb, line 19
+
# File lib/common/models/wp_item/versionable.rb, line 22
def to_s
item_version = self.version
"#@name#{' v' + item_version.strip if item_version}"
@@ -361,8 +365,11 @@
# File lib/common/models/wp_item/versionable.rb, line 10
def version
unless @version
- response = Browser.get(readme_url)
- @version = response.body[%r{stable tag: #{WpVersion.version_pattern}}, 1]
+ # This check is needed because readme_url can return nil
+ if has_readme?
+ response = Browser.get(readme_url)
+ @version = response.body[%r{stable tag: #{WpVersion.version_pattern}}, 1]
+ end
end
@version
end
diff --git a/doc_rdoc/WpItem/Vulnerable.html b/doc_rdoc/WpItem/Vulnerable.html
index d55e14b1..8ee03f6e 100644
--- a/doc_rdoc/WpItem/Vulnerable.html
+++ b/doc_rdoc/WpItem/Vulnerable.html
@@ -69,6 +69,8 @@
# File lib/common/models/wp_item/vulnerable.rb, line 9
+
# File lib/common/models/wp_item/vulnerable.rb, line 10
def vulnerabilities
xml = xml(vulns_file)
vulnerabilities = Vulnerabilities.new
xml.xpath(vulns_xpath).each do |node|
- vulnerabilities << Vulnerability.load_from_xml_node(node)
+ vuln = Vulnerability.load_from_xml_node(node)
+ if vulnerable_to?(vuln)
+ vulnerabilities << vuln
+ end
end
vulnerabilities
end
@@ -376,6 +385,51 @@ href="../WpItem.html">WpItem
# File lib/common/models/wp_item/vulnerable.rb, line 28
+def vulnerable_to?(vuln)
+ if version && vuln && vuln.fixed_in && !vuln.fixed_in.empty?
+ unless VersionCompare::is_newer_or_same?(vuln.fixed_in, version)
+ return true
+ end
+ else
+ return true
+ end
+ return false
+end
+ # File lib/common/collections/wp_items/detectable.rb, line 71
+
# File lib/common/collections/wp_items/detectable.rb, line 70
def passive_detection(wp_target, options = {})
results = new
item_class = self.item_class
@@ -504,7 +508,6 @@ check for vulnerable items @option options [ String ] :exclude_content
ProgressBar.create(
format: '%t %a <%B> (%c / %C) %P%% %e',
title: ' ', # Used to craete a left margin
- length: 120,
total: targets_size
)
end
@@ -548,7 +551,7 @@ href="Detectable.html#attribute-i-vulns_file">#vulns_file
# File lib/common/collections/wp_items/detectable.rb, line 153
+
# File lib/common/collections/wp_items/detectable.rb, line 152
def create_item(klass, name, wp_target, vulns_file = nil)
klass.new(
wp_target.uri,
@@ -587,7 +590,7 @@ href="Detectable.html#attribute-i-vulns_file">#vulns_file
# File lib/common/collections/wp_items/detectable.rb, line 186
+
# File lib/common/collections/wp_items/detectable.rb, line 185
def item_class
Object.const_get(self.to_s.gsub(/.$/, ''))
end
@@ -622,7 +625,7 @@ href="Detectable.html#attribute-i-vulns_file">#vulns_file
# File lib/common/collections/wp_items/detectable.rb, line 101
+
# File lib/common/collections/wp_items/detectable.rb, line 100
def request_params; { cache_ttl: 0, followlocation: true } end
# File lib/common/collections/wp_items/detectable.rb, line 109
+
# File lib/common/collections/wp_items/detectable.rb, line 108
def targets_items(wp_target, options = {})
item_class = self.item_class
vulns_file = self.vulns_file
@@ -709,7 +712,7 @@ href="Detectable.html#method-i-item_class">#item_class @param [ String
# File lib/common/collections/wp_items/detectable.rb, line 169
+
# File lib/common/collections/wp_items/detectable.rb, line 168
def targets_items_from_file(file, wp_target, item_class, vulns_file)
targets = []
@@ -758,7 +761,7 @@ String ] #vulns_file
# File lib/common/collections/wp_items/detectable.rb, line 132
+
# File lib/common/collections/wp_items/detectable.rb, line 131
def vulnerable_targets_items(wp_target, item_class, vulns_file)
targets = []
xml = xml(vulns_file)
diff --git a/doc_rdoc/WpItems/Output.html b/doc_rdoc/WpItems/Output.html
index 7e0d3d53..09774135 100644
--- a/doc_rdoc/WpItems/Output.html
+++ b/doc_rdoc/WpItems/Output.html
@@ -92,6 +92,8 @@
# File lib/common/models/wp_user/brute_forcable.rb, line 124
+
# File lib/common/models/wp_user/brute_forcable.rb, line 123
def self.passwords_from_wordlist(wordlist)
if wordlist.is_a?(String)
passwords = []
@@ -476,7 +480,7 @@ The wordlist path @param [ Hash ] options @option options [ Boolean ]
# File lib/common/models/wp_user/brute_forcable.rb, line 78
+
# File lib/common/models/wp_user/brute_forcable.rb, line 77
def login_request(password)
Browser.instance.forge_request(login_url,
method: :post,
@@ -521,7 +525,6 @@ The wordlist path @param [ Hash ] options @option options [ Boolean ]
ProgressBar.create(
format: '%t %a <%B> (%c / %C) %P%% %e',
title: " Brute Forcing '#{login}'",
- length: 120,
total: passwords_size
)
end
@@ -559,7 +562,7 @@ response @param [ String ] password @param [ Hash ] options @option options
# File lib/common/models/wp_user/brute_forcable.rb, line 93
+
# File lib/common/models/wp_user/brute_forcable.rb, line 92
def valid_password?(response, password, options = {})
if response.code == 302
progression = "#{green('[SUCCESS]')} Login : #{login} Password : #{password}\n\n"
diff --git a/doc_rdoc/WpUser/Existable.html b/doc_rdoc/WpUser/Existable.html
index 0d3243d8..ce16d675 100644
--- a/doc_rdoc/WpUser/Existable.html
+++ b/doc_rdoc/WpUser/Existable.html
@@ -98,6 +98,8 @@
# File lib/common/collections/wp_users/output.rb, line 29
+def remove_junk_from_display_names
+ display_names = []
+ self.each do |u|
+ display_name = u.display_name
+ unless display_name == 'empty'
+ display_names << display_name
+ end
+ end
+ junk = get_equal_string_end(display_names)
+ unless junk.nil? or junk.empty?
+ self.each do |u|
+ u.display_name = u.display_name.sub(/#{Regexp.escape(junk)}$/, '')
+ end
+ end
+end
+ login:password\nBasic base_64_encoded
\nSo it's forced to UTF-8 when ...
\n"],["encode","URI","URI.html#method-i-encode","(str)",""],["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)","(Marshal and YAML have them)
\n [protocol://]host:post\n\nSupported protocols:\n Depends on the curl protocols, ...
\n"],["proxy=","WpscanOptions","WpscanOptions.html#method-i-proxy-3D","(proxy)",""],["proxy_auth=","Browser::Options","Browser/Options.html#method-i-proxy_auth-3D","(auth)","username:password\n{ proxy_username: username, :proxy_password: ...\n"],["proxy_auth=","WpscanOptions","WpscanOptions.html#method-i-proxy_auth-3D","(auth)",""],["puts","Object","Object.html#method-i-puts","(o = '')","static: The UA is defined by the user, ...
\n"],["valid_password?","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-valid_password-3F","(response, password, options = {})","remote: https://rubygems.org/\nspecs:\n addressable (2.3.3)\n crack (0.3.2)\n diff-lcs (1.2.3)\n ethon ...
\n"],["LICENSE","","LICENSE.html","","__ _______ _____\n\\ \\ / / __ \\ / ____|\n \\ \\ /\\ / /| |__) | (___ ___ __ _ _ __ ...
\n"],["README","","README_md.html","",""user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0",\n ...
\n"],["generate_doc.sh","","generate_doc_sh.html","","login:password\nBasic base_64_encoded
\nSo it's forced to UTF-8 when ...
\n"],["encode","URI","URI.html#method-i-encode","(str)",""],["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)","(Marshal and YAML have them)
\n [protocol://]host:post\n\nSupported protocols:\n Depends on the curl protocols, ...
\n"],["proxy=","WpscanOptions","WpscanOptions.html#method-i-proxy-3D","(proxy)",""],["proxy_auth=","Browser::Options","Browser/Options.html#method-i-proxy_auth-3D","(auth)","username:password\n{ proxy_username: username, :proxy_password: ...\n"],["proxy_auth=","WpscanOptions","WpscanOptions.html#method-i-proxy_auth-3D","(auth)",""],["puts","Object","Object.html#method-i-puts","(o = '')","static: The UA is defined by the user, ...
\n"],["valid_password?","WpUser::BruteForcable","WpUser/BruteForcable.html#method-i-valid_password-3F","(response, password, options = {})","remote: https://rubygems.org/\nspecs:\n addressable (2.3.3)\n crack (0.3.2)\n diff-lcs (1.2.3)\n ethon ...
\n"],["LICENSE","","LICENSE.html","","__ _______ _____\n\\ \\ / / __ \\ / ____|\n \\ \\ /\\ / /| |__) | (___ ___ __ _ _ __ ...
\n"],["README","","README_md.html","",""user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0",\n ...
\n"],["generate_doc.sh","","generate_doc_sh.html","","
Returns the value of attribute fixed_in.
+
- # File 'lib/common/models/vulnerability.rb', line 17 +# File 'lib/common/models/vulnerability.rb', line 18 -def initialize(title, type, references, = []) +def initialize(title, type, references, = [], fixed_in = '') @title = title @type = type @references = references @metasploit_modules = + @fixed_in = fixed_in end |
+ + + +8 +9 +10+ |
+
+ # File 'lib/common/models/vulnerability.rb', line 8 + +def fixed_in + @fixed_in +end+ |
+
-38 -39 -40 -41 -42 -43 44 -45+45 +46 +47 +48 +49 +50 +51 +52
# File 'lib/common/models/vulnerability.rb', line 38 +# File 'lib/common/models/vulnerability.rb', line 44 def self.load_from_xml_node(xml_node) new( xml_node.search('title').text, xml_node.search('type').text, xml_node.search('reference').map(&:text), - xml_node.search('metasploit').map(&:text) + xml_node.search('metasploit').map(&:text), + xml_node.search('fixed_in').text ) end
-28 -29 -30+30 +31 +32 +33 +34 +35 +36
# File 'lib/common/models/vulnerability.rb', line 28 +# File 'lib/common/models/vulnerability.rb', line 30 def ==(other) - title == other.title && type == other.type && references == other.references + title == other.title && + type == other.type && + references == other.references && + fixed_in == other.fixed_in && + == other. end
#vulnerabilities, #vulnerable_to?
@@ -1420,7 +1420,7 @@ diff --git a/doc_yard/WpItem/Existable.html b/doc_yard/WpItem/Existable.html index 1ac03af6..b00ae2a8 100644 --- a/doc_yard/WpItem/Existable.html +++ b/doc_yard/WpItem/Existable.html @@ -412,7 +412,7 @@ for the verification Otherwise a new request is done diff --git a/doc_yard/WpItem/Findable.html b/doc_yard/WpItem/Findable.html index 2febe2ec..96a213ab 100644 --- a/doc_yard/WpItem/Findable.html +++ b/doc_yard/WpItem/Findable.html @@ -100,7 +100,7 @@ diff --git a/doc_yard/WpItem/Infos.html b/doc_yard/WpItem/Infos.html index 1890af13..77b26dda 100644 --- a/doc_yard/WpItem/Infos.html +++ b/doc_yard/WpItem/Infos.html @@ -777,7 +777,7 @@ href="http://www.exploit-db.com/ghdb/3714">www.exploit-db.com/ghdb/3714/ diff --git a/doc_yard/WpItem/Output.html b/doc_yard/WpItem/Output.html index d66598f1..c7634ce5 100644 --- a/doc_yard/WpItem/Output.html +++ b/doc_yard/WpItem/Output.html @@ -215,7 +215,7 @@ diff --git a/doc_yard/WpItem/Versionable.html b/doc_yard/WpItem/Versionable.html index 58466655..9ecb6575 100644 --- a/doc_yard/WpItem/Versionable.html +++ b/doc_yard/WpItem/Versionable.html @@ -195,13 +195,13 @@-20 -21 -22 -23+23 +24 +25 +26
# File 'lib/common/models/wp_item/versionable.rb', line 20 +# File 'lib/common/models/wp_item/versionable.rb', line 23 def to_s item_version = self.version @@ -262,15 +262,21 @@ 14 15 16 -17+17 +18 +19 +20
# File 'lib/common/models/wp_item/versionable.rb', line 11 def version unless @version - response = Browser.get(readme_url) - @version = response.body[%r{stable tag: #{WpVersion.version_pattern}}i, 1] + # This check is needed because readme_url can return nil + if has_readme? + response = Browser.get(readme_url) + @version = response.body[%r{stable tag: #{WpVersion.version_pattern}}i, 1] + end end @version end@@ -284,7 +290,7 @@ diff --git a/doc_yard/WpItem/Vulnerable.html b/doc_yard/WpItem/Vulnerable.html index 0730cb65..01dccad7 100644 --- a/doc_yard/WpItem/Vulnerable.html +++ b/doc_yard/WpItem/Vulnerable.html @@ -180,7 +180,32 @@
Get the vulnerabilities associated to the WpItem.
+Get the vulnerabilities associated to the WpItem Filters out already fixed +vulnerabilities.
+Checks if a item is vulnerable to a specific vulnerability.
Get the vulnerabilities associated to the WpItem
+Get the vulnerabilities associated to the WpItem Filters out already fixed +vulnerabilities
-10 11 12 13 @@ -333,23 +358,118 @@ 15 16 17 -18+18 +19 +20 +21 +22
# File 'lib/common/models/wp_item/vulnerable.rb', line 10 +# File 'lib/common/models/wp_item/vulnerable.rb', line 11 def vulnerabilities xml = xml(vulns_file) vulnerabilities = Vulnerabilities.new xml.xpath(vulns_xpath).each do |node| - vulnerabilities << Vulnerability.load_from_xml_node(node) + vuln = Vulnerability.load_from_xml_node(node) + if vulnerable_to?(vuln) + vulnerabilities << vuln + end end vulnerabilities end
Checks if a item is vulnerable to a specific vulnerability
+ + +
+ + + +29 +30 +31 +32 +33 +34 +35 +36 +37 +38+ |
+
+ # File 'lib/common/models/wp_item/vulnerable.rb', line 29 + +def vulnerable_to?(vuln) + if version && vuln && vuln.fixed_in && !vuln.fixed_in.empty? + unless VersionCompare::is_newer_or_same?(vuln.fixed_in, version) + return true + end + else + return true + end + return false +end+ |
+
+153 154 155 156 @@ -765,11 +766,10 @@ 158 159 160 -161 -162+161
# File 'lib/common/collections/wp_items/detectable.rb', line 154 +# File 'lib/common/collections/wp_items/detectable.rb', line 153 def create_item(klass, name, wp_target, vulns_file = nil) klass.new( @@ -822,12 +822,12 @@+186 187 -188 -189+188
# File 'lib/common/collections/wp_items/detectable.rb', line 187 +# File 'lib/common/collections/wp_items/detectable.rb', line 186 def item_class Object.const_get(self.to_s.gsub(/.$/, '')) @@ -902,6 +902,7 @@+71 72 73 74 @@ -924,11 +925,10 @@ 91 92 93 -94 -95+94
# File 'lib/common/collections/wp_items/detectable.rb', line 72 +# File 'lib/common/collections/wp_items/detectable.rb', line 71 def passive_detection(wp_target, = {}) results = new @@ -1032,8 +1032,7 @@ 61 62 63 -64 -65+64
# File 'lib/common/collections/wp_items/detectable.rb', line 56 @@ -1043,8 +1042,7 @@ ProgressBar.create( format: '%t %a <%B> (%c / %C) %P%% %e', title: ' ', # Used to craete a left margin - length: 120, - total: targets_size + total: targets_size ) end end@@ -1092,10 +1090,10 @@
-102+101
# File 'lib/common/collections/wp_items/detectable.rb', line 102 +# File 'lib/common/collections/wp_items/detectable.rb', line 101 def request_params; { cache_ttl: 0, followlocation: true } end
+109 110 111 112 @@ -1216,11 +1215,10 @@ 122 123 124 -125 -126+125
# File 'lib/common/collections/wp_items/detectable.rb', line 110 +# File 'lib/common/collections/wp_items/detectable.rb', line 109 def targets_items(wp_target, = {}) item_class = self.item_class @@ -1329,6 +1327,7 @@+169 170 171 172 @@ -1342,11 +1341,10 @@ 180 181 182 -183 -184+183
# File 'lib/common/collections/wp_items/detectable.rb', line 170 +# File 'lib/common/collections/wp_items/detectable.rb', line 169 def targets_items_from_file(file, wp_target, item_class, vulns_file) targets = [] @@ -1442,6 +1440,7 @@+132 133 134 135 @@ -1454,11 +1453,10 @@ 142 143 144 -145 -146+145
# File 'lib/common/collections/wp_items/detectable.rb', line 133 +# File 'lib/common/collections/wp_items/detectable.rb', line 132 def vulnerable_targets_items(wp_target, item_class, vulns_file) targets = [] @@ -1484,7 +1482,7 @@ diff --git a/doc_yard/WpItems/Output.html b/doc_yard/WpItems/Output.html index 265ada28..fb5a2918 100644 --- a/doc_yard/WpItems/Output.html +++ b/doc_yard/WpItems/Output.html @@ -169,7 +169,7 @@ diff --git a/doc_yard/WpPlugin.html b/doc_yard/WpPlugin.html index 05a29eab..f7ed42cf 100644 --- a/doc_yard/WpPlugin.html +++ b/doc_yard/WpPlugin.html @@ -240,7 +240,7 @@Methods included from WpItem::Vulnerable
- +#vulnerabilities, #vulnerable_to?
@@ -330,7 +330,7 @@ diff --git a/doc_yard/WpPlugin/Vulnerable.html b/doc_yard/WpPlugin/Vulnerable.html index 07c7af2a..85c05424 100644 --- a/doc_yard/WpPlugin/Vulnerable.html +++ b/doc_yard/WpPlugin/Vulnerable.html @@ -280,7 +280,7 @@ diff --git a/doc_yard/WpPlugins.html b/doc_yard/WpPlugins.html index e6b6e49f..b708554c 100644 --- a/doc_yard/WpPlugins.html +++ b/doc_yard/WpPlugins.html @@ -186,7 +186,7 @@ diff --git a/doc_yard/WpPlugins/Detectable.html b/doc_yard/WpPlugins/Detectable.html index 9618a8b0..35166f3e 100644 --- a/doc_yard/WpPlugins/Detectable.html +++ b/doc_yard/WpPlugins/Detectable.html @@ -265,7 +265,7 @@ diff --git a/doc_yard/WpTarget.html b/doc_yard/WpTarget.html index 2e7c5465..b9bcb05a 100644 --- a/doc_yard/WpTarget.html +++ b/doc_yard/WpTarget.html @@ -1276,7 +1276,7 @@ href="http://interconnectit.com/124/search-and-replace-for-wordpress-databases"> diff --git a/doc_yard/WpTarget/Malwares.html b/doc_yard/WpTarget/Malwares.html index 5b4d6f1c..f24392d2 100644 --- a/doc_yard/WpTarget/Malwares.html +++ b/doc_yard/WpTarget/Malwares.html @@ -417,7 +417,7 @@ diff --git a/doc_yard/WpTarget/WpConfigBackup.html b/doc_yard/WpTarget/WpConfigBackup.html index d12bc005..722853b6 100644 --- a/doc_yard/WpTarget/WpConfigBackup.html +++ b/doc_yard/WpTarget/WpConfigBackup.html @@ -346,7 +346,7 @@ an array of backup config files url diff --git a/doc_yard/WpTarget/WpCustomDirectories.html b/doc_yard/WpTarget/WpCustomDirectories.html index da9e28c7..d7765993 100644 --- a/doc_yard/WpTarget/WpCustomDirectories.html +++ b/doc_yard/WpTarget/WpCustomDirectories.html @@ -475,7 +475,7 @@ diff --git a/doc_yard/WpTarget/WpFullPathDisclosure.html b/doc_yard/WpTarget/WpFullPathDisclosure.html index 4316f37d..a528a9f0 100644 --- a/doc_yard/WpTarget/WpFullPathDisclosure.html +++ b/doc_yard/WpTarget/WpFullPathDisclosure.html @@ -271,7 +271,7 @@ diff --git a/doc_yard/WpTarget/WpLoginProtection.html b/doc_yard/WpTarget/WpLoginProtection.html index d9499c35..343db4af 100644 --- a/doc_yard/WpTarget/WpLoginProtection.html +++ b/doc_yard/WpTarget/WpLoginProtection.html @@ -1185,7 +1185,7 @@ return a WpPlugin object or nil if no one is found diff --git a/doc_yard/WpTarget/WpReadme.html b/doc_yard/WpTarget/WpReadme.html index abf1d132..17413d9f 100644 --- a/doc_yard/WpTarget/WpReadme.html +++ b/doc_yard/WpTarget/WpReadme.html @@ -291,7 +291,7 @@ reinstated with an upgrade. diff --git a/doc_yard/WpTarget/WpRegistrable.html b/doc_yard/WpTarget/WpRegistrable.html index 6bf8fa08..0ec2880f 100644 --- a/doc_yard/WpTarget/WpRegistrable.html +++ b/doc_yard/WpTarget/WpRegistrable.html @@ -410,7 +410,7 @@ diff --git a/doc_yard/WpTheme.html b/doc_yard/WpTheme.html index b94a3dba..6ab5320c 100644 --- a/doc_yard/WpTheme.html +++ b/doc_yard/WpTheme.html @@ -320,7 +320,7 @@Methods included from WpItem::Vulnerable
- +#vulnerabilities, #vulnerable_to?
@@ -508,7 +508,7 @@ diff --git a/doc_yard/WpTheme/Findable.html b/doc_yard/WpTheme/Findable.html index cb532973..793e3546 100644 --- a/doc_yard/WpTheme/Findable.html +++ b/doc_yard/WpTheme/Findable.html @@ -470,7 +470,7 @@ href="http://code.google.com/p/wpscan/issues/detail?id=141">code.google.com/p/wp diff --git a/doc_yard/WpTheme/Versionable.html b/doc_yard/WpTheme/Versionable.html index 451803a5..50dd3266 100644 --- a/doc_yard/WpTheme/Versionable.html +++ b/doc_yard/WpTheme/Versionable.html @@ -181,7 +181,7 @@ diff --git a/doc_yard/WpTheme/Vulnerable.html b/doc_yard/WpTheme/Vulnerable.html index 902045e2..e7888bed 100644 --- a/doc_yard/WpTheme/Vulnerable.html +++ b/doc_yard/WpTheme/Vulnerable.html @@ -280,7 +280,7 @@ diff --git a/doc_yard/WpThemes.html b/doc_yard/WpThemes.html index 8cce1dad..5ac3cab1 100644 --- a/doc_yard/WpThemes.html +++ b/doc_yard/WpThemes.html @@ -186,7 +186,7 @@ diff --git a/doc_yard/WpThemes/Detectable.html b/doc_yard/WpThemes/Detectable.html index 8380e10e..c1e3f653 100644 --- a/doc_yard/WpThemes/Detectable.html +++ b/doc_yard/WpThemes/Detectable.html @@ -265,7 +265,7 @@ diff --git a/doc_yard/WpTimthumb.html b/doc_yard/WpTimthumb.html index e3167792..dd50be9c 100644 --- a/doc_yard/WpTimthumb.html +++ b/doc_yard/WpTimthumb.html @@ -260,7 +260,7 @@Methods included from WpItem::Vulnerable
- +#vulnerabilities, #vulnerable_to?
@@ -356,7 +356,7 @@ diff --git a/doc_yard/WpTimthumb/Existable.html b/doc_yard/WpTimthumb/Existable.html index 5490a2c5..576ef9d6 100644 --- a/doc_yard/WpTimthumb/Existable.html +++ b/doc_yard/WpTimthumb/Existable.html @@ -219,7 +219,7 @@ diff --git a/doc_yard/WpTimthumb/Output.html b/doc_yard/WpTimthumb/Output.html index a62bb608..f7ddde49 100644 --- a/doc_yard/WpTimthumb/Output.html +++ b/doc_yard/WpTimthumb/Output.html @@ -169,7 +169,7 @@ diff --git a/doc_yard/WpTimthumb/Versionable.html b/doc_yard/WpTimthumb/Versionable.html index 5a40a261..ddf575a3 100644 --- a/doc_yard/WpTimthumb/Versionable.html +++ b/doc_yard/WpTimthumb/Versionable.html @@ -284,7 +284,7 @@ href="https://code.google.com/p/timthumb/source/browse/trunk/timthumb.php#426">c diff --git a/doc_yard/WpTimthumbs.html b/doc_yard/WpTimthumbs.html index 30c774fd..ad7277a9 100644 --- a/doc_yard/WpTimthumbs.html +++ b/doc_yard/WpTimthumbs.html @@ -186,7 +186,7 @@ diff --git a/doc_yard/WpTimthumbs/Detectable.html b/doc_yard/WpTimthumbs/Detectable.html index b129f195..1f0bfe15 100644 --- a/doc_yard/WpTimthumbs/Detectable.html +++ b/doc_yard/WpTimthumbs/Detectable.html @@ -731,7 +731,7 @@ diff --git a/doc_yard/WpUser.html b/doc_yard/WpUser.html index 506f87ac..6c5dfe3b 100644 --- a/doc_yard/WpUser.html +++ b/doc_yard/WpUser.html @@ -496,7 +496,7 @@Methods included from WpItem::Vulnerable
- +#vulnerabilities, #vulnerable_to?
@@ -1115,7 +1115,7 @@ diff --git a/doc_yard/WpUser/BruteForcable.html b/doc_yard/WpUser/BruteForcable.html index 785d62b0..2657e8a5 100644 --- a/doc_yard/WpUser/BruteForcable.html +++ b/doc_yard/WpUser/BruteForcable.html @@ -296,6 +296,7 @@ hash...+124 125 126 127 @@ -316,11 +317,10 @@ hash... 142 143 144 -145 -146+145
# File 'lib/common/models/wp_user/brute_forcable.rb', line 125 +# File 'lib/common/models/wp_user/brute_forcable.rb', line 124 def self.passwords_from_wordlist(wordlist) if wordlist.is_a?(String) @@ -584,16 +584,16 @@ waiting...+78 79 80 81 82 83 -84 -85+84
# File 'lib/common/models/wp_user/brute_forcable.rb', line 79 +# File 'lib/common/models/wp_user/brute_forcable.rb', line 78 def login_request(password) Browser.instance.forge_request(login_url, @@ -680,8 +680,7 @@ waiting... 69 70 71 -72 -73+72
# File 'lib/common/models/wp_user/brute_forcable.rb', line 64 @@ -691,7 +690,6 @@ waiting... ProgressBar.create( format: '%t %a <%B> (%c / %C) %P%% %e', title: " Brute Forcing '#{login}'", - length: 120, total: passwords_size ) end @@ -808,6 +806,7 @@ waiting...+93 94 95 96 @@ -828,11 +827,10 @@ waiting... 111 112 113 -114 -115+114
# File 'lib/common/models/wp_user/brute_forcable.rb', line 94 +# File 'lib/common/models/wp_user/brute_forcable.rb', line 93 def valid_password?(response, password, = {}) if response.code == 302 @@ -866,7 +864,7 @@ waiting... diff --git a/doc_yard/WpUser/Existable.html b/doc_yard/WpUser/Existable.html index 012d7bbd..424bc526 100644 --- a/doc_yard/WpUser/Existable.html +++ b/doc_yard/WpUser/Existable.html @@ -675,7 +675,7 @@ it’s forced to UTF-8 when this encoding is detected diff --git a/doc_yard/WpUsers.html b/doc_yard/WpUsers.html index 503420dc..9a71c086 100644 --- a/doc_yard/WpUsers.html +++ b/doc_yard/WpUsers.html @@ -167,7 +167,7 @@Methods included from Output
- +#output, #remove_junk_from_display_names
@@ -212,7 +212,7 @@ diff --git a/doc_yard/WpUsers/BruteForcable.html b/doc_yard/WpUsers/BruteForcable.html index 8a0f2f35..1439e185 100644 --- a/doc_yard/WpUsers/BruteForcable.html +++ b/doc_yard/WpUsers/BruteForcable.html @@ -222,7 +222,7 @@ here, and given to the wp_user diff --git a/doc_yard/WpUsers/Detectable.html b/doc_yard/WpUsers/Detectable.html index fb03442c..7ff96ffe 100644 --- a/doc_yard/WpUsers/Detectable.html +++ b/doc_yard/WpUsers/Detectable.html @@ -402,7 +402,7 @@ diff --git a/doc_yard/WpUsers/Output.html b/doc_yard/WpUsers/Output.html index ac45af21..64d640ce 100644 --- a/doc_yard/WpUsers/Output.html +++ b/doc_yard/WpUsers/Output.html @@ -120,6 +120,28 @@ + + + + + +
# File 'lib/common/collections/wp_users/output.rb', line 10 @@ -219,15 +245,73 @@ headings = ['Id', 'Login', 'Name'] headings << 'Password' if [:show_password] + remove_junk_from_display_names + self.each do |wp_user| row = [wp_user.id, wp_user.login, wp_user.display_name] row << wp_user.password if [:show_password] rows << row end - puts Terminal::Table.new(headings: headings, - rows: rows, - style: { margin_left: [:margin_left] || '' }) + table = Terminal::Table.new(headings: headings, + rows: rows, + style: { margin_left: [:margin_left] || '' }).to_s + # variable needed for output + puts table +end+
+ + + +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44+ |
+
+ # File 'lib/common/collections/wp_users/output.rb', line 30 + +def remove_junk_from_display_names + display_names = [] + self.each do |u| + display_name = u.display_name + unless display_name == 'empty' + display_names << display_name + end + end + junk = get_equal_string_end(display_names) + unless junk.nil? or junk.empty? + self.each do |u| + u.display_name = u.display_name.sub(/#{Regexp.escape(junk)}$/, '') + end + end end |
Gets the string all elements in stringarray ends with
+ + +
+ + + +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139+ |
+
+ # File 'lib/common/common_helper.rb', line 117 + +def get_equal_string_end(stringarray = ['']) + already_found = '' + looping = true + counter = -1 + if stringarray.kind_of? Array and stringarray.length > 1 + base = stringarray[0] + while looping + character = base[counter, 1] + stringarray.each do |s| + if s[counter, 1] != character + looping = false + break + end + end + if looping == false or (counter * -1) > base.length + break + end + already_found = "#{character if character}#{already_found}" + counter -= 1 + end + end + already_found +end+ |
+