IE特大漏洞
网络与通信
你知道吗?只要一个特殊格式的图片文件便可使IE强行关闭。或许你不相信,微软连这么大的Bug都没有发现,可这却是真真切切地存在着的。
描述
将以下代码存为一个文件,无论扩展名是什么,在IE中直接打开或在HTML文件中作为图片插入,都可以正常显示为一幅16×16像素的BMP图片。
#define odo_width 16
#define odo_height 16
static char odo_bits[] = {
0xFF,0xFF,0xFF,……
0xFF,0xFF,0xFF,……
0xFF,0xFF,0xFF,……
0xFF,0xFF,0xFF,……
0xFF,0xFF,0xFF,……
};
以上是对于远程文件的情况。在本地机器上打开时,文件扩展名必须是不能被浏览器自动显示的,即不能是HTML、TXT、GIF、JPG等。应是ZIP、EXE、XXX或其他未知的,也可以在HTML文件中作为图片插入。
原理
当把HTML文件odo_width和odo_height的值设为一个极大的数时,IE不检查文件的实际大小,而是直接按照odo_width和odo_height的值来申请内存。如果文件过大会导致系统资源耗尽,最终系统会调用DbgBreakPoint杀掉IE的进程。
在资源浏览器中预览或者作为邮件查看也有类似的情况出现。
测试代码
现在网络上的论坛,几乎都开放了YBB(Yuzi Bulletin Board)代码的功能,我们只要把含有Bug代码的图片贴到论坛上,那么所有的人一浏览这个帖子都马上会使IE关闭,硬盘狂烁不停。
Bug代码如下:
#define odo_width 22222222222222222222
#define odo_height 22222222222222222222
static char odo_bits[] = {
0xFF,
};
或者你也可以在自家的电脑上测试这一漏洞,将以上代码保存为yuzi.htm,放到Web目录下。
在浏览器里输入:http://127.0.0.1/yuzi.htm。
解决方案
建议大家不要浏览不受信任的网站,不要用HTML方式查看邮件,或者干脆关闭IE对图片的支持。
什么是D.o.S
D.o.S(Denial-of-Service,即拒绝服务)攻击的原理,就是利用网络系统资源(Memory/Disk Space、Network Bandwidth等)有限,加上部分网络系统或者相关通信协议等,利用其设计或操作上的漏洞,在一段时期间内通过大量且密集的封包传送,达到使被攻击的网站(程序)无法处理,以致许多正常想要连上该网站(程序)的用户都被阻断在外,连不上该网站(程序)。网站(程序)本身,大致上可能都还是好好的,只是来不及处理这些恶意的不速之客。(图1)
