On Apr 17, 2010, at 2:49 AM, Nilesh Patil wrote:

> Hi
> 
> I have one doubt about javascript that does malicious things. Consider 
> following javascript.
> 
> <script language="JavaScript">
>     var n=unescape("%u9090");
>     var 
> s=unescape("%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u0000");
>     for(var i=0;i<64;i++){
>         n=n+n;
>         document.write('<script>throw n+s;</scr'+'ipt>');
>     }
> </script>
> 
> Above code causes exception and there by causing crash. Though Chrome doesnt 
> close. I am not sure what this scrpt does, but i think this is something to 
> do with 'throw' in JavaScript.
> Maybe something to do with overflow.
> My doubt is,
> 
> Is there any kind of handling done for above scenario which are potential for 
> hacking ?
> 
> I have Chrome 4.1.249.1045 (42898)  on which above script crashes Chrome page.

All browsers are engineered on the assumption that everything done in JS is 
malicious.

That said your example is not really "malicious":
var n = " ";
for (var i = 0; i < 64; i++) {
    n = n + n; // double the string length
    document.write(n)
}
Clearly this is simply a memory exhaustion issue: the memory growth will be 
exponential, to display the content you would need a machine with a >64bit 
address space.

In future can you avoid cross-posts to multiple lists? cheers.

--Oliver

> 
> _______________________________________________
> webkit-dev mailing list
> [email protected]
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to