<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ie on blag</title><link>https://blog.beford.org/tags/ie/</link><description>Recent content in Ie on blag</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 06 Nov 2009 03:14:39 +0000</lastBuildDate><atom:link href="https://blog.beford.org/tags/ie/index.xml" rel="self" type="application/rss+xml"/><item><title>Security Bookmarklets</title><link>https://blog.beford.org/2008/01/28/security-bookmarklets/</link><pubDate>Mon, 28 Jan 2008 23:47:57 +0000</pubDate><guid>https://blog.beford.org/2008/01/28/security-bookmarklets/</guid><description>&lt;p&gt;I took a couple of days from my school vacation to write 3 bookmarklets that will help me when auditing web sites, I&amp;rsquo;d like to share them here because I know that they&amp;rsquo;ll help some of my friends, and probably one of the two readers of this blog.&lt;/p&gt;
&lt;p&gt;[Text2SQLChar](javascript:(function(){ x=prompt(&amp;lsquo;Input text:&amp;rsquo;,&amp;rsquo;&amp;rsquo;);l=x.length;t=x.charCodeAt(0);for (i = 1;i&amp;lt;l;i++) t = t +&amp;rsquo;,&amp;rsquo;+x.charCodeAt(i);prompt(&amp;lsquo;Output: &amp;lsquo;, &amp;lsquo;Char(&amp;rsquo;+t+&amp;rsquo;)&amp;rsquo;); })();) Converts an string into a CHAR() mysql, usefull when magic_quotes is on.&lt;br&gt;
[SQLIncrement](javascript:(function(){url=decodeURI(location);if (url.indexOf(&amp;lsquo;select 1&amp;rsquo;)==-1) { alert(&amp;lsquo;Inject a simple 'union select 1' first.&amp;rsquo;);return; }max=url.substring(url.indexOf(&amp;lsquo;select 1&amp;rsquo;)).split(&amp;rsquo;,&amp;rsquo;).length;if (max&amp;gt;1) zx = (max-1)+&amp;rsquo;,&amp;rsquo;+max; else zx = &amp;lsquo;select 1&amp;rsquo;;tmp=url.indexOf(zx);location=encodeURI(url.substring(0, tmp+zx.length)+&amp;rsquo;,&amp;rsquo;+(max+1)+url.substring(tmp+zx.length));})()) Increments automatically the number of columns of the injected select query.&lt;br&gt;
[SQLDecrement](javascript:(function(){url=decodeURI(location);if (url.indexOf(&amp;lsquo;select 1&amp;rsquo;)==-1) { alert(&amp;lsquo;Inject a simple 'union select 1' first.&amp;rsquo;);return; }max=url.substring(url.indexOf(&amp;lsquo;select 1&amp;rsquo;)).split(&amp;rsquo;,&amp;rsquo;).length;if (max&amp;gt;2) zx = (max-2)+&amp;rsquo;,&amp;rsquo;+(max-1); else { if (max==2) zx=&amp;lsquo;select 1&amp;rsquo;; else return; } tmp=url.indexOf(zx);dx = &amp;lsquo;,&amp;rsquo;+max;location=encodeURI(url.substring(0, tmp+zx.length)+url.substring(tmp+zx.length+dx.length));})()) Decrements automatically the number of columns of the injected select query.&lt;br&gt;
[Increment](javascript:(function(){ var e,s; IB=1; function isDigit(c) { return (&amp;lsquo;0&amp;rsquo; &amp;lt;= c &amp;amp;&amp;amp; c &amp;lt;= &amp;lsquo;9&amp;rsquo;) } L = decodeURI(location.href); LL = L.length; for (e=LL-1; e&amp;gt;=0; &amp;ndash;e) if (isDigit(L.charAt(e))) { for(s=e-1; s&amp;gt;=0; &amp;ndash;s) if (!isDigit(L.charAt(s))) break; break; } ++s; if (e&amp;lt;0) return; oldNum = L.substring(s,e+1); newNum = &amp;rsquo;&amp;rsquo; + (parseInt(oldNum,10) + IB); while (newNum.length &amp;lt; oldNum.length) newNum = &amp;lsquo;0&amp;rsquo; + newNum; location.href = L.substring(0,s) + newNum + L.slice(e+1); })();) Allows you to navigate up html files or images that have a number in them.&lt;br&gt;
[Decrement](javascript:(function(){ var e,s; IB=-1; function isDigit(c) { return (&amp;lsquo;0&amp;rsquo; &amp;lt;= c &amp;amp;&amp;amp; c &amp;lt;= &amp;lsquo;9&amp;rsquo;) } L = decodeURI(location.href); LL = L.length; for (e=LL-1; e&amp;gt;=0; &amp;ndash;e) if (isDigit(L.charAt(e))) { for(s=e-1; s&amp;gt;=0; &amp;ndash;s) if (!isDigit(L.charAt(s))) break; break; } ++s; if (e&amp;lt;0) return; oldNum = L.substring(s,e+1); newNum = &amp;rsquo;&amp;rsquo; + (parseInt(oldNum,10) + IB); while (newNum.length &amp;lt; oldNum.length) newNum = &amp;lsquo;0&amp;rsquo; + newNum; location.href = L.substring(0,s) + newNum + L.slice(e+1); })();) Allows you to navigate down html files or images that have a number in them.&lt;br&gt;
&lt;a href="javascript:(function()%7Bx=prompt('Text:','');l=x.length%3;if(l)for(i=1;i%3C7-l;i++)x=x+'%20';;prompt('Output:',window.btoa(x));%7D)();"&gt;base64&lt;/a&gt; Firefox only, base64 with no padding&lt;/p&gt;</description></item><item><title>Google Gadgets XSS (IE6/Opera)</title><link>https://blog.beford.org/2007/11/25/google-gadgets-xss-ie6/</link><pubDate>Sun, 25 Nov 2007 09:58:23 +0000</pubDate><guid>https://blog.beford.org/2007/11/25/google-gadgets-xss-ie6/</guid><description>&lt;p&gt;There is a recent discussion on &lt;a href="http://ha.ckers.org/blog/20071119/google-gadgets-gaffe/"&gt;ha.ckers.org&lt;/a&gt; regarding a possible CSRF that could allow an attacker to inject an evil gadget on someobdy else&amp;rsquo;s iGoogle page. After checking the format of the &lt;a href="http://ha.ckers.org/asdf2.xml"&gt;xml file&lt;/a&gt; used to define the gadgets properties, I noticed a couple of attributes that could be used as point of injections to active content, the &lt;strong&gt;thumbnail&lt;/strong&gt; and &lt;strong&gt;screenshot&lt;/strong&gt; attribute. Only one of them is vulnerable, the screenshot attribute, by using a javascript URI as value you can execute active content on certain browsers such as IE6. This is a poc that shows an alert with the current document.domain value:&lt;/p&gt;</description></item></channel></rss>