目录:
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
  • 动动手指,沙发就是你的了!
登录 后跟帖