<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: WordPress 2.5 Cookie Forging Explained</title>
	<atom:link href="http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/</link>
	<description>Application security testing, analysis, and metrics</description>
	<lastBuildDate>Tue, 15 May 2012 22:16:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Crossing Arbogast</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-2902</link>
		<dc:creator>Crossing Arbogast</dc:creator>
		<pubDate>Thu, 09 Jul 2009 06:17:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-2902</guid>
		<description>Thanks for this Nice post, Really usefull all of us. just bookmarked this post in my digg profile, hope you will update more post soon.
I really liked your blog!

Regards,
Shaza</description>
		<content:encoded><![CDATA[<p>Thanks for this Nice post, Really usefull all of us. just bookmarked this post in my digg profile, hope you will update more post soon.<br />
I really liked your blog!</p>
<p>Regards,<br />
Shaza</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WordPress 2 5 Cookie Forging Explained &#124; Cellulite Creams</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-2848</link>
		<dc:creator>WordPress 2 5 Cookie Forging Explained &#124; Cellulite Creams</dc:creator>
		<pubDate>Tue, 09 Jun 2009 02:36:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-2848</guid>
		<description>[...] WordPress 2 5 Cookie Forging Explained   Posted by root 7 minutes ago (http://www.veracode.com)        Chris eng senior director of security research middot chris wysopal co founder and chief wordpress 2 5 1 came out recently it includes a critical security fix for a cookie comment by paul web design ireland may 5 2008 4 47 pm mail will not be published re        Discuss&#160;  &#124;&#160; Bury &#124;&#160;    News &#124; WordPress 2 5 Cookie Forging Explained [...]</description>
		<content:encoded><![CDATA[<p>[...] WordPress 2 5 Cookie Forging Explained   Posted by root 7 minutes ago (<a href="http://www.veracode.com" rel="nofollow">http://www.veracode.com</a>)        Chris eng senior director of security research middot chris wysopal co founder and chief wordpress 2 5 1 came out recently it includes a critical security fix for a cookie comment by paul web design ireland may 5 2008 4 47 pm mail will not be published re        Discuss&nbsp;  |&nbsp; Bury |&nbsp;    News | WordPress 2 5 Cookie Forging Explained [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Eng</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-988</link>
		<dc:creator>Chris Eng</dc:creator>
		<pubDate>Thu, 08 May 2008 21:20:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-988</guid>
		<description>@devnull: You&#039;re missing the point.  I don&#039;t have to feed all the parameters into the HMAC function.  It doesn&#039;t matter if I know SECRET_KEY or not because at no point am I (as an attacker) required to provide the key.  The point is that the HMAC function will calculate the same value for [username=admin, expiry=01209331305] as it will for [username=admin0, expiry=1209331305].  I can use WordPress to do that calculation for me -- legitimately -- and then re-use that value.  

This is sometimes referred to as an oracle attack. We use the application against itself by asking it to perform a useful cryptographic operation for us -- in this case, calculating an HMAC for one user that we can then use to impersonate another user.  We don&#039;t care what the key is because we have a valid HMAC and that&#039;s all that matters.</description>
		<content:encoded><![CDATA[<p>@devnull: You&#8217;re missing the point.  I don&#8217;t have to feed all the parameters into the HMAC function.  It doesn&#8217;t matter if I know SECRET_KEY or not because at no point am I (as an attacker) required to provide the key.  The point is that the HMAC function will calculate the same value for [username=admin, expiry=01209331305] as it will for [username=admin0, expiry=1209331305].  I can use WordPress to do that calculation for me &#8212; legitimately &#8212; and then re-use that value.  </p>
<p>This is sometimes referred to as an oracle attack. We use the application against itself by asking it to perform a useful cryptographic operation for us &#8212; in this case, calculating an HMAC for one user that we can then use to impersonate another user.  We don&#8217;t care what the key is because we have a valid HMAC and that&#8217;s all that matters.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: devnull</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-984</link>
		<dc:creator>devnull</dc:creator>
		<pubDate>Wed, 07 May 2008 09:36:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-984</guid>
		<description>I did some backtracking and I must be missing something or I have misunderstood something because this all seems imposible without knowing SECRET_KEY and SECRET_KEY constants if those aren’t defined a random string is generated.
$key = wp_hash($user-&gt;user_login . $expiration); great however
function wp_hash($data) { $salt = wp_salt();
lets have a look at wp_salt();

function wp_salt() {
global $wp_default_secret_key;
$secret_key = ”;
if ( defined(’SECRET_KEY’) &amp;&amp; (” != SECRET_KEY) &amp;&amp; ( $wp_default_secret_key != SECRET_KEY) )
$secret_key = SECRET_KEY;

if ( defined(’SECRET_SALT’) ) {
$salt = SECRET_SALT;
} else {
$salt = get_option(’secret’);
if ( empty($salt) ) {
$salt = wp_generate_password();
update_option(’secret’, $salt);
}
}

return apply_filters(’salt’, $secret_key . $salt);
}

So without knowing those constants how can you feed function hash_hmac($algo, $data, $key, $raw_output = false) the param $key?</description>
		<content:encoded><![CDATA[<p>I did some backtracking and I must be missing something or I have misunderstood something because this all seems imposible without knowing SECRET_KEY and SECRET_KEY constants if those aren’t defined a random string is generated.<br />
$key = wp_hash($user-&gt;user_login . $expiration); great however<br />
function wp_hash($data) { $salt = wp_salt();<br />
lets have a look at wp_salt();</p>
<p>function wp_salt() {<br />
global $wp_default_secret_key;<br />
$secret_key = ”;<br />
if ( defined(’SECRET_KEY’) &amp;&amp; (” != SECRET_KEY) &amp;&amp; ( $wp_default_secret_key != SECRET_KEY) )<br />
$secret_key = SECRET_KEY;</p>
<p>if ( defined(’SECRET_SALT’) ) {<br />
$salt = SECRET_SALT;<br />
} else {<br />
$salt = get_option(’secret’);<br />
if ( empty($salt) ) {<br />
$salt = wp_generate_password();<br />
update_option(’secret’, $salt);<br />
}<br />
}</p>
<p>return apply_filters(’salt’, $secret_key . $salt);<br />
}</p>
<p>So without knowing those constants how can you feed function hash_hmac($algo, $data, $key, $raw_output = false) the param $key?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: (1+2)+(1+4)+(1+6)=multe paranteze si cifre &#187; WordPress 2.5.1 is available! Please update now.</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-982</link>
		<dc:creator>(1+2)+(1+4)+(1+6)=multe paranteze si cifre &#187; WordPress 2.5.1 is available! Please update now.</dc:creator>
		<pubDate>Tue, 06 May 2008 14:07:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-982</guid>
		<description>[...] un articol stufos despre cum stă [...]</description>
		<content:encoded><![CDATA[<p>[...] un articol stufos despre cum stă [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul @ Web Design Ireland</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-981</link>
		<dc:creator>Paul @ Web Design Ireland</dc:creator>
		<pubDate>Mon, 05 May 2008 21:47:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-981</guid>
		<description>Thanks for explaining this. Im a great believer that security disclosure helps make us better developers.</description>
		<content:encoded><![CDATA[<p>Thanks for explaining this. Im a great believer that security disclosure helps make us better developers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Eng</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-980</link>
		<dc:creator>Chris Eng</dc:creator>
		<pubDate>Mon, 05 May 2008 17:47:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-980</guid>
		<description>@Amana: Replace each occurrence of %7C in your cookie with the &#039;&#124;&#039; (pipe) character and you will see that yours does look similar to what I&#039;ve described.  Your expiration timestamp is 1211057307 and the result of the HMAC is 6e0e9bec639167e4b2cfde09892e9d08.</description>
		<content:encoded><![CDATA[<p>@Amana: Replace each occurrence of %7C in your cookie with the &#8216;|&#8217; (pipe) character and you will see that yours does look similar to what I&#8217;ve described.  Your expiration timestamp is 1211057307 and the result of the HMAC is 6e0e9bec639167e4b2cfde09892e9d08.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amana</title>
		<link>http://www.veracode.com/blog/2008/04/wordpress-25-cookie-forging-explained/comment-page-1/#comment-978</link>
		<dc:creator>Amana</dc:creator>
		<pubDate>Sat, 03 May 2008 21:00:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.veracode.com/blog/?p=90#comment-978</guid>
		<description>Hello. MY wp is also 2.5, but cookie looks like :
wordpress_ba52b2fd4ea180a4841306bc0ad6d3b2
admin%7C1211057307%7C6e0e9bec639167e4b2cfde09892e9d08
www.forgedeuphoria.com/blog/
1536
1528536960
29931615
160032496
29928799
*
Why it is different to 
admin0&#124;1209331305&#124;HMAC_FUNCTION(&quot;admin0&#124;1209331305&quot;) ???</description>
		<content:encoded><![CDATA[<p>Hello. MY wp is also 2.5, but cookie looks like :<br />
wordpress_ba52b2fd4ea180a4841306bc0ad6d3b2<br />
admin%7C1211057307%7C6e0e9bec639167e4b2cfde09892e9d08<br />
<a href="http://www.forgedeuphoria.com/blog/" rel="nofollow">http://www.forgedeuphoria.com/blog/</a><br />
1536<br />
1528536960<br />
29931615<br />
160032496<br />
29928799<br />
*<br />
Why it is different to<br />
admin0|1209331305|HMAC_FUNCTION(&#8220;admin0|1209331305&#8243;) ???</p>
]]></content:encoded>
	</item>
</channel>
</rss>

