<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Don&#8217;t Trust Google&#8217;s XSSploding Gadgets</title>
	<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/</link>
	<description>Giorgio Maone's answers to the Web, the Universe, and Everything</description>
	<pubDate>Fri, 29 Aug 2008 07:23:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>

	<item>
		<title>By: Shadow Security Blog &#187; Blog Archive &#187; Los &#8220;gadgets&#8221; de Google como herramienta de &#8220;phishing&#8221;</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-716</link>
		<dc:creator>Shadow Security Blog &#187; Blog Archive &#187; Los &#8220;gadgets&#8221; de Google como herramienta de &#8220;phishing&#8221;</dc:creator>
		<pubDate>Thu, 11 Oct 2007 23:45:31 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-716</guid>
		<description>[...] Don’t Trust Google’s XSSploding Gadgets [Giorgio Maone]. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Don’t Trust Google’s XSSploding Gadgets [Giorgio Maone]. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Los &#8220;gadgets&#8221; de Google como herramienta de &#8220;phishing&#8221; &#171;</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-223</link>
		<dc:creator>Los &#8220;gadgets&#8221; de Google como herramienta de &#8220;phishing&#8221; &#171;</dc:creator>
		<pubDate>Mon, 20 Aug 2007 16:12:42 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-223</guid>
		<description>[...] Don’t Trust Google’s XSSploding Gadgets [Giorgio Maone]. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Don’t Trust Google’s XSSploding Gadgets [Giorgio Maone]. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giorgio</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-222</link>
		<dc:creator>Giorgio</dc:creator>
		<pubDate>Mon, 20 Aug 2007 11:12:10 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-222</guid>
		<description>@&lt;b&gt;Matt&lt;/b&gt;:
thanks for the info, but as you said it doesn't help because you cannot reliable associate a trust principal with the domain name yet.
And we can easily modify RSnake's original PoC to demonstrate how we can inject our code in the 2nd level domain and in any of these pseudo-subdomains:
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://gmodules.com/ig/creator?synd=open&#038;url=http%3A//ha.ckers.org/asdf2.xml&#038;pt=&#038;context=b&#038;synd=open&#038;lang=en&#038;.lang=en&#038;country=us&#038;.country=us&#038;cat=all&#038;num=24&#038;start=0&#038;cols=4&#038;objs=w,mO,jyq,gQq,jhP,NL,Hg,pV,RB,p,33G,EKT,6aZ,7Wu,aag,2C,vB,sMg,j0,xQO,5WIK,Rm,gP1,acyU&#038;sn=2C&#038;lang=en" rel="external nofollow" rel="nofollow"&gt;gmodules.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://19.gmodules.com/ig/creator?synd=open&#038;url=http%3A//ha.ckers.org/asdf2.xml&#038;pt=&#038;context=b&#038;synd=open&#038;lang=en&#038;.lang=en&#038;country=us&#038;.country=us&#038;cat=all&#038;num=24&#038;start=0&#038;cols=4&#038;objs=w,mO,jyq,gQq,jhP,NL,Hg,pV,RB,p,33G,EKT,6aZ,7Wu,aag,2C,vB,sMg,j0,xQO,5WIK,Rm,gP1,acyU&#038;sn=2C&#038;lang=en" rel="external nofollow" rel="nofollow"&gt;19.gmodules.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://42.gmodules.com/ig/creator?synd=open&#038;url=http%3A//ha.ckers.org/asdf2.xml&#038;pt=&#038;context=b&#038;synd=open&#038;lang=en&#038;.lang=en&#038;country=us&#038;.country=us&#038;cat=all&#038;num=24&#038;start=0&#038;cols=4&#038;objs=w,mO,jyq,gQq,jhP,NL,Hg,pV,RB,p,33G,EKT,6aZ,7Wu,aag,2C,vB,sMg,j0,xQO,5WIK,Rm,gP1,acyU&#038;sn=2C&#038;lang=en" rel="external nofollow" rel="nofollow"&gt;42.gmodules.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
		<content:encoded><![CDATA[<p>@<b>Matt</b>:<br />
thanks for the info, but as you said it doesn&#8217;t help because you cannot reliable associate a trust principal with the domain name yet.<br />
And we can easily modify RSnake&#8217;s original PoC to demonstrate how we can inject our code in the 2nd level domain and in any of these pseudo-subdomains:</p>
<ul>
<li>
<a href="http://gmodules.com/ig/creator?synd=open&#038;url=http%3A//ha.ckers.org/asdf2.xml&#038;pt=&#038;context=b&#038;synd=open&#038;lang=en&#038;.lang=en&#038;country=us&#038;.country=us&#038;cat=all&#038;num=24&#038;start=0&#038;cols=4&#038;objs=w,mO,jyq,gQq,jhP,NL,Hg,pV,RB,p,33G,EKT,6aZ,7Wu,aag,2C,vB,sMg,j0,xQO,5WIK,Rm,gP1,acyU&#038;sn=2C&#038;lang=en" rel="external nofollow" rel="nofollow">gmodules.com</a></li>
<li>
<a href="http://19.gmodules.com/ig/creator?synd=open&#038;url=http%3A//ha.ckers.org/asdf2.xml&#038;pt=&#038;context=b&#038;synd=open&#038;lang=en&#038;.lang=en&#038;country=us&#038;.country=us&#038;cat=all&#038;num=24&#038;start=0&#038;cols=4&#038;objs=w,mO,jyq,gQq,jhP,NL,Hg,pV,RB,p,33G,EKT,6aZ,7Wu,aag,2C,vB,sMg,j0,xQO,5WIK,Rm,gP1,acyU&#038;sn=2C&#038;lang=en" rel="external nofollow" rel="nofollow">19.gmodules.com</a></li>
<li>
<a href="http://42.gmodules.com/ig/creator?synd=open&#038;url=http%3A//ha.ckers.org/asdf2.xml&#038;pt=&#038;context=b&#038;synd=open&#038;lang=en&#038;.lang=en&#038;country=us&#038;.country=us&#038;cat=all&#038;num=24&#038;start=0&#038;cols=4&#038;objs=w,mO,jyq,gQq,jhP,NL,Hg,pV,RB,p,33G,EKT,6aZ,7Wu,aag,2C,vB,sMg,j0,xQO,5WIK,Rm,gP1,acyU&#038;sn=2C&#038;lang=en" rel="external nofollow" rel="nofollow">42.gmodules.com</a></li>
</ul>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-221</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 20 Aug 2007 09:51:50 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-221</guid>
		<description>Actually, Google does provide a unique subdomain for many, if not all, of the modules.  When I opened up Noscript while on iGoogle, I saw a lot of "19.gmodules.com", "42.gmodules.com", etc.

Not overly helpful- I have no idea which module is coming from "20.gmodules.com", and it would take a lot more trial and error than I have patience for to figure it out.</description>
		<content:encoded><![CDATA[<p>Actually, Google does provide a unique subdomain for many, if not all, of the modules.  When I opened up Noscript while on iGoogle, I saw a lot of &#8220;19.gmodules.com&#8221;, &#8220;42.gmodules.com&#8221;, etc.</p>
<p>Not overly helpful- I have no idea which module is coming from &#8220;20.gmodules.com&#8221;, and it would take a lot more trial and error than I have patience for to figure it out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giorgio</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-219</link>
		<dc:creator>Giorgio</dc:creator>
		<pubDate>Mon, 20 Aug 2007 04:13:51 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-219</guid>
		<description>@&lt;b&gt;Tyokm&lt;/b&gt;:
This &lt;em&gt;is&lt;/em&gt; XSS, because everybody (nice guys and evil criminals) can put their scripts in the very same domain with no check.
Moreover, they can change those scripts at any time, because they're served from their own sites but rendered in the &lt;b&gt;gmodules.com&lt;/b&gt; context.

As you said, all web security domain based.
This means that I can decide to trust &lt;strong&gt;mozilla.org&lt;/strong&gt; because I know they wouldn't do me any harm (or at least, they could do much more harm with their browser than their site) and decide I don't trust some &lt;strong&gt;b3stw4r3z.ru&lt;/strong&gt; website because l33t sp33ch gives me severe headaches.
This is especially true for &lt;a href="http://noscript.net" rel="nofollow"&gt;NoScript&lt;/a&gt; users, who don't want to execute a script unless they trust (or believe they can trust) its origin. 

What should I do with &lt;strong&gt;gmodules.com&lt;/strong&gt; then? 
When you've got to decide if trusting a certain group of principals or not, the criterion must be "the group can be trusted as  much as its least trustworthy member".
Since &lt;strong&gt;gmodules.com&lt;/strong&gt; as a domain can deliver scripts from &lt;em&gt;any&lt;/em&gt; party, even the evilest, nobody in its mind could ever trust it at all.

Even &lt;strong&gt;blogspot.com&lt;/strong&gt; offers a different domain for each publisher, so I can choose to trust &lt;strong&gt;sirdarkcat.blogspot.com&lt;/strong&gt; and distrust &lt;strong&gt;kuza55.blogspot.com&lt;/strong&gt; (or the way around), though they're probably hosted on the same physical facility and definitely by the same service provider. Not a perfect solution, since to many users &lt;strong&gt;www&lt;/strong&gt;.blogspot.com and &lt;strong&gt;www1&lt;/strong&gt;.blogspot.com are the same site, but better than nothing.

So, coming to &lt;b&gt;sirdarckcat&lt;/b&gt;'s question, "&lt;strong&gt;is there any solution (from the Google side) for this?&lt;/strong&gt;"
My answer is yes.
Other than providing an unique subdomain for each widget/module publisher (a la blogspot), which is probably quite inconvenient and not necessarily effective for the average user (see above),  Google could:
&lt;ol&gt;
&lt;li&gt;Let publishers serve their widgets from their own hosting places (e.g. &lt;strong&gt;churchwidgets.com&lt;/strong&gt; or &lt;strong&gt;flyingspaghettimodules.ru&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;Provide publishers with a bootstrap API to be included his/her own domain, transforming the XML widget definition into HTML content when it's served.&lt;/li&gt;
&lt;li&gt;Provide consumers (i.e. the sites which will embed the widgets/modules) with a script that creates the iframe and loads it with the widget's bootstrap script from its hosting location (much like AdSense works).&lt;/li&gt;
&lt;/ol&gt;
The "one domain/one trust choice" principle would be honored: I can decide to distrust &lt;strong&gt;churchwidgets.com&lt;/strong&gt; and welcome &lt;strong&gt;flyingspaghettimodules.ru&lt;/strong&gt; ;)
The only downside, other than a slightly more complex setup, is that "XSS by design" (i.e. different modules from different parties interacting -- or better said, hacking each other -- as they were the same application, inside the same domain) wouldn't obviously work, but this would be easily overcome if widgets wanting to be "mashed up" provide a JavaScript API to be included with a &lt;code&gt;&#60;script&#62;&lt;/code&gt; tag, which is however the cleanest way to do that.</description>
		<content:encoded><![CDATA[<p>@<b>Tyokm</b>:<br />
This <em>is</em> XSS, because everybody (nice guys and evil criminals) can put their scripts in the very same domain with no check.<br />
Moreover, they can change those scripts at any time, because they&#8217;re served from their own sites but rendered in the <b>gmodules.com</b> context.</p>
<p>As you said, all web security domain based.<br />
This means that I can decide to trust <strong>mozilla.org</strong> because I know they wouldn&#8217;t do me any harm (or at least, they could do much more harm with their browser than their site) and decide I don&#8217;t trust some <strong>b3stw4r3z.ru</strong> website because l33t sp33ch gives me severe headaches.<br />
This is especially true for <a href="http://noscript.net" rel="nofollow">NoScript</a> users, who don&#8217;t want to execute a script unless they trust (or believe they can trust) its origin. </p>
<p>What should I do with <strong>gmodules.com</strong> then?<br />
When you&#8217;ve got to decide if trusting a certain group of principals or not, the criterion must be &#8220;the group can be trusted as  much as its least trustworthy member&#8221;.<br />
Since <strong>gmodules.com</strong> as a domain can deliver scripts from <em>any</em> party, even the evilest, nobody in its mind could ever trust it at all.</p>
<p>Even <strong>blogspot.com</strong> offers a different domain for each publisher, so I can choose to trust <strong>sirdarkcat.blogspot.com</strong> and distrust <strong>kuza55.blogspot.com</strong> (or the way around), though they&#8217;re probably hosted on the same physical facility and definitely by the same service provider. Not a perfect solution, since to many users <strong>www</strong>.blogspot.com and <strong>www1</strong>.blogspot.com are the same site, but better than nothing.</p>
<p>So, coming to <b>sirdarckcat</b>&#8217;s question, &#8220;<strong>is there any solution (from the Google side) for this?</strong>&#8221;<br />
My answer is yes.<br />
Other than providing an unique subdomain for each widget/module publisher (a la blogspot), which is probably quite inconvenient and not necessarily effective for the average user (see above),  Google could:</p>
<ol>
<li>Let publishers serve their widgets from their own hosting places (e.g. <strong>churchwidgets.com</strong> or <strong>flyingspaghettimodules.ru</strong>)</li>
<li>Provide publishers with a bootstrap API to be included his/her own domain, transforming the XML widget definition into HTML content when it&#8217;s served.</li>
<li>Provide consumers (i.e. the sites which will embed the widgets/modules) with a script that creates the iframe and loads it with the widget&#8217;s bootstrap script from its hosting location (much like AdSense works).</li>
</ol>
<p>The &#8220;one domain/one trust choice&#8221; principle would be honored: I can decide to distrust <strong>churchwidgets.com</strong> and welcome <strong>flyingspaghettimodules.ru</strong> ;)<br />
The only downside, other than a slightly more complex setup, is that &#8220;XSS by design&#8221; (i.e. different modules from different parties interacting &#8212; or better said, hacking each other &#8212; as they were the same application, inside the same domain) wouldn&#8217;t obviously work, but this would be easily overcome if widgets wanting to be &#8220;mashed up&#8221; provide a JavaScript API to be included with a <code>&lt;script&gt;</code> tag, which is however the cleanest way to do that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ·¨-=[WHK]=-¨· &#187; Archive &#187; Los &#8220;gadgets&#8221; de Google como herramienta de &#8220;phishing&#8221;</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-216</link>
		<dc:creator>·¨-=[WHK]=-¨· &#187; Archive &#187; Los &#8220;gadgets&#8221; de Google como herramienta de &#8220;phishing&#8221;</dc:creator>
		<pubDate>Mon, 20 Aug 2007 01:39:00 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-216</guid>
		<description>[...] Don’t Trust Google’s XSSploding Gadgets [Giorgio Maone]. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Don’t Trust Google’s XSSploding Gadgets [Giorgio Maone]. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tyokm</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-214</link>
		<dc:creator>Tyokm</dc:creator>
		<pubDate>Sun, 19 Aug 2007 23:32:45 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-214</guid>
		<description>Lamest. Hack. Ever.

Maybe they're hosting it on a separate domain so that there is nothing to xss? Thats how browsers work dumbass, all web security is domain based. If I host my website ffdsokjfsld.com on the same host as you, I can put javascript on there. does that mean hackademix.net is vulnerable to xss? no. because that would be stupid.</description>
		<content:encoded><![CDATA[<p>Lamest. Hack. Ever.</p>
<p>Maybe they&#8217;re hosting it on a separate domain so that there is nothing to xss? Thats how browsers work dumbass, all web security is domain based. If I host my website ffdsokjfsld.com on the same host as you, I can put javascript on there. does that mean hackademix.net is vulnerable to xss? no. because that would be stupid.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sirdarckcat</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-213</link>
		<dc:creator>sirdarckcat</dc:creator>
		<pubDate>Sun, 19 Aug 2007 23:15:23 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-213</guid>
		<description>The following sites use GModules.com scripts:

-&#62; Google Pages (http://pages.google.com/)
-&#62; Google Desktop (http://desktop.google.com/)
-&#62; iGoogle (http://www.google.com/ig)

Any way, is there any solution (from the Google side) for this?
I mean, I can't think a way Google can enable users to create their own modules if it's not this way..

I think that as a "Phishing" attack, there's a more dangerous vector using googlegroups.com, googlecode.com, googlepages.com, domains..

Any way, this "feature" can work extremely easy as a "defacement" attack against iGoogle, or Google Pages, and as a DoS to the SO, if you use Google Desktop.

So.. 
1.- Don't use gadgets with Google desktop.
2.- Don't use gadgets with Google pages.
3.- Don't use gadgets with iGoogle.
4.- Don't use gadgets at all :P

The second and third point can be avoided using NoScript, but the first one.. well.. Google Desktop is just evil.

Greetz!!</description>
		<content:encoded><![CDATA[<p>The following sites use GModules.com scripts:</p>
<p>-&gt; Google Pages (http://pages.google.com/)<br />
-&gt; Google Desktop (http://desktop.google.com/)<br />
-&gt; iGoogle (http://www.google.com/ig)</p>
<p>Any way, is there any solution (from the Google side) for this?<br />
I mean, I can&#8217;t think a way Google can enable users to create their own modules if it&#8217;s not this way..</p>
<p>I think that as a &#8220;Phishing&#8221; attack, there&#8217;s a more dangerous vector using googlegroups.com, googlecode.com, googlepages.com, domains..</p>
<p>Any way, this &#8220;feature&#8221; can work extremely easy as a &#8220;defacement&#8221; attack against iGoogle, or Google Pages, and as a DoS to the SO, if you use Google Desktop.</p>
<p>So..<br />
1.- Don&#8217;t use gadgets with Google desktop.<br />
2.- Don&#8217;t use gadgets with Google pages.<br />
3.- Don&#8217;t use gadgets with iGoogle.<br />
4.- Don&#8217;t use gadgets at all :P</p>
<p>The second and third point can be avoided using NoScript, but the first one.. well.. Google Desktop is just evil.</p>
<p>Greetz!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aerik</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-212</link>
		<dc:creator>Aerik</dc:creator>
		<pubDate>Sun, 19 Aug 2007 20:47:57 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-212</guid>
		<description>@xvcefj :

Go to about:config, enter noscript.untrusted and add gmodules.com to the end of it yourself.</description>
		<content:encoded><![CDATA[<p>@xvcefj :</p>
<p>Go to about:config, enter noscript.untrusted and add gmodules.com to the end of it yourself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giorgio</title>
		<link>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-208</link>
		<dc:creator>Giorgio</dc:creator>
		<pubDate>Sat, 18 Aug 2007 21:43:15 +0000</pubDate>
		<guid>http://hackademix.net/2007/08/17/dont-trust-googles-xssploding-gadgets/#comment-208</guid>
		<description>@&lt;b&gt;xvcefj &lt;/b&gt;:
&lt;strong&gt;gmodules.com&lt;/strong&gt; and &lt;strong&gt;google.com&lt;/strong&gt;, even being both Google domains and resolving to the same pool of hosts, do serve different content and deserve different levels of trust.
While &lt;strong&gt;gmodules.com&lt;/strong&gt; serves user-generated content including scripts from perfect strangers, www.google.com serves (or should serve, pending other XSS vulnerabilities) only scripts from Google.</description>
		<content:encoded><![CDATA[<p>@<b>xvcefj </b>:<br />
<strong>gmodules.com</strong> and <strong>google.com</strong>, even being both Google domains and resolving to the same pool of hosts, do serve different content and deserve different levels of trust.<br />
While <strong>gmodules.com</strong> serves user-generated content including scripts from perfect strangers, <a href="http://www.google.com" rel="nofollow">www.google.com</a> serves (or should serve, pending other XSS vulnerabilities) only scripts from Google.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
