目录:
0x1:漏洞触发原理
0x2:分析环境准备
0x3:VML标记语言简介
0x4:通过POC代码观察漏洞
0x5:漏洞的利用
0x1:漏洞触发原理
MS06-055是 IE 在解析 VML 标记语言时,由于没有做字符串长度的限制而存在的基于栈的缓冲区溢出漏洞。引起栈溢出的是 IE 的核心组件 vgx.dll,引起漏洞的函数是 vgx.dll库中的SHADETYPE_TEXT::TEXT(ushort co nst * ,in t)。
0x2:分析环境准备
windows2000SP4,OD,IDA
IE版本:5.00.3700.1000
Vgx.dll版本:5.0.3014.1003
0x3:VML标记语言简介
VML 即矢量标记语言(Vector Markup Language),IE 从 5.0 版本以后开始在 HTML 文件中支持这种语言。在 Web 应用中如果需要绘制的图形比较简单,就可以使用矢量标记语言,用文本方式告诉客户端一些关键的绘图坐标,浏览器按照 VML 语言格式解析了这些坐标之后就能绘出精确的图形。例如下面这段 HTML:
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>failwest</title>
<style>
<!--v\:* { behavior: url(#default#VML); }-->
</style>
</head>
<body>
<v:rect style="width:44pt;height:44pt" fillcolor="black">
<v:fill method="QQQQ"/>
</v:rect>
</body>
</html>
在上述代码中,告诉浏览器以下绘图信息。 v:rect表示需要绘制的图形形状为矩形。也可绘制其他形状,如 Line、Polyline、Curve、l Roundrect 等。style=width:44pt,表示矩形宽为 44 个像素, height:44pt,表示矩形高为 44 个像素。fillcolor=black ,表示该矩形用黑色填充。也就是说,这一行 VML 代码告诉客户端在屏幕上绘制一个尺寸为 44×44 像素的颜色为黑色的正方形。运行这段HTML代码可以看到如下图所示的效果:
0x4:通过POC代码观察漏洞
可以通过上面的HTML代码来观察这个漏洞:
点击收藏 | 0
关注 | 1