2010-04-23 80 views
6

我是一个测试团队的成员,他们的任务是在Firefox浏览器中使用JavaScript进行“糟糕的行为”。我试过these methods来关闭浏览器,但是没有一个会比弹出窗口要求关闭脚本更糟糕。使用JavaScript崩溃Firefox使用

还有其他想法吗?

+18

听起来像:找我segets for leet zero-dayz! – 2010-04-23 23:37:54

回答

9

有点类似于一个“叉炸弹”

<html> 
<body> 
<a href="#" onclick="die()">click me!</a> 
<script> 
function die() { 
    setTimeout(function() {die(); die()}, 0) 
} 
</script> 
</body> 
</html> 

这是不停止的由FF 3.6及以下(除非用户恰好关闭违规标签很快)。你让它运行的时间越长,它就会越凶恶。最终它将吃掉该过程中可用的所有内存。 CPU上的负载也应该增加。一些操作系统会比其他操作系统更好地处理错误的FF。如果您还在每个周期对DOM应用适当的加载,则可以使其更加恶化。

编辑:“只有为了世界的利益才能使用这些知识。” :-)

+1

我正在运行Firefox 13,但它对此不是免疫的。几分钟后,Firefox给了我“很抱歉”框。 – bwDraco 2012-07-07 00:19:00

+2

呃,什么是漏洞。在32位版本的Firefox上,这是一个简单的DoS攻击,在几分钟后将取消Firefox。在64位Firefox上(例如在x86-64 Linux上),这种情况更糟糕:浏览器可能会分配几乎无限量的内存,可能会因交换而锁定机器,直到OOM杀手检测到它,或者在系统上没有类似的功能,完全使计算机崩溃。这确实需要修补。 – bwDraco 2012-07-07 00:39:56

+0

@DragonLord真是遗憾,真的。我希望对处理程序的数量有一些内部的理智限制。我想知道其他浏览器的公平性如何。然而,如果我*曾经*去过这样做的网站,我永远不会返回;) – 2012-07-07 01:14:28

6

脚本执行时看门狗很不错,但它并没有解决模态回路问题。要一个alertconfirmprompt盒停止计时器,使这个:

<script>while(true) alert('alert bomb');</script> 

难以从逃脱,而这个:

<body onbeforeunload="while(true) alert('alert bomb');"> 

实际上是不可能。 (让你的任务管理器得心应手。)

使用难以逃脱的模态循环是侵略性间谍软件安装程序页面最喜欢的策略。 (“单击”是,现在安装VomitBar或面对无尽的警报框......“)

+3

Chrome> Firefox on this :) :); http://tinypic.com/r/54smer/5 – Matt 2010-04-24 00:24:22

+1

有史以来最烦人的事情之一! – 2010-04-24 01:04:23

+2

Chrome提供了在第一个框后终止脚本的选项。 – 2010-04-24 02:06:02

2

我设法通过大量DOM元素的插入来反复崩溃我的Firefox。

基本上,用户点击一个按钮来触发一个jQuery AJAX调用。该调用将返回完整的HTML文件,该文件将通过jQuery附加到特定的div。

<script> 
    $("div.content").empty(); 
    $("div.content").html(data); 
</script> 

然后,一旦添加了数据,将尝试分析数据的整个淤泥和添加的onClick和onHover选项事件树基本上每个元素。

请放心,每次运行此功能时,我的浏览器都会崩溃。它会引起通常的“一个脚本运行缓慢,你想取消它”,但我永远不能取消它,并总是不得不按CTRL + ALT + DEL它。

只是供参考,我从来没有计划做10,000元素插入这是我的错误。我用JOIN查询一个数据库,并打算做SELECT DISTINCT,而不是返回100个元素,所以SELECT返回10,000,因为这些连接。哎呦。