7.挖出IE本地安全配置选项
在IE中可以通过点击“工具→Internet选项→安全”来设定电脑安全等级,之后会出现如图所示窗口(图3)。从图中可以看出,在安全性设定中我们只能设定Internet、本地Intranet、受信任的站点、受限制的站点。不过,惯于隐藏其部分功能的微软(真不知微软是怎么想的,老和我们玩“捉迷藏”游戏),在这里又留了一手:其实这里还有一个隐藏的选项??就是“我的电脑”的安全性设定,如果你想看到它,可以通过修改注册表的方法来达到目的。
图3
下面是具体的方法:打开“开始”菜单中的“运行”,在弹出的“运行”对话框中输入Regedit.exe,打开注册表编辑器,点击前面的“+”号顺次展开到:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones{document_content},在右边窗口中找到DWORD值“Flags”,默认键值为十六进制的21(十进制33),双击“Flags”,在弹出的对话框中将它的键值改为“1”即可,关闭注册表编辑器。无需重新启动电脑,重新打开IE,再次点击“工具→Internet选项→安全”标签,你就会看到多了一个“我的电脑”图标(图4),在这里你可以对IE的本地安全进行配置。
图4
这个小技巧有什么用呢?把下面的代码保存为一个html文件,然后运行试试就知道了:
运行上面的html文件,会打开你的计算机中c:/winnt/system32文件夹下的calc.exe文件!而且IE没有任何提示!即使在IE的安全设置中禁用ActiveX控件上述代码也能工作!如果不是calc.exe文件而是其他恶意文件又会怎么样?如果是在你浏览的网页中含有类似上面的代码又会怎么样?真危险啊!
之所以会这样是由于IE存在两个可怕的漏洞:可本地执行任意命令,IE的ActiveX安全设置可被绕过。在上述代码中我们给IE指定了一个系统中并不存在的控件号("clsid:88888888-8888-8888-8888-888888888888),IE会试图从codebase指定的地址去下载并安装改控件。根据codebase于是IE找到了c:/winnt/system32/calc.exe,接着IE开始“下载”并安装该程序。由于calc.exe是EXE文件,这样就等于是在运行该文件,所以calc.exe就被运行了!
那么为什么IE在“下载安装控件”过程中不提示用户,也不应用IE安全设置中的限定进行检测呢?这就是IE的ActiveX安全设置可被绕过漏洞造成的!其主要原因是IE安全设置都是针对非本地的页面或交互的,对于本地的安全设置IE是最大信任的。如果你注意看IE的安全设置,都是对Internet和Intranet上WEB服务器而言的,根本就没有对本地文件的安全设置。概括说来就是IE对本地安全采用最大信任原则。
解决的办法就是我们在开始说的那个技巧:挖出挖出IE本地安全配置选项,即修改IE安全设置中有关“我的电脑”的设置,选定后,禁用ActiveX下载就万事大吉了。