一 背景知识 由文件格式入手,来分析MS08-052漏洞, 并构造了一个可以使没有补丁的程序崩溃的图片, 1 WMF文件结构 --------------------------| | 文件头 | |-------------------------| | 文件记录 | |-------------------------| |-------------------------| | 文件记录 | |-------------------------| |-------------------------| | 文件记录 | |-------------------------| windows中文件头结构如下 typedef struct { INT16 Left; INT16 Top; INT16 Right; INT16 Bottom; } PWMFRect16; typedef struct { UINT32 Key; // GDIP_WMF_PLACEABLEKEY INT16 Hmf; // Metafile HANDLE number (always 0) PWMFRect16 BoundingBox; // Coordinates in metafile units INT16 Inch; // Number of metafile units per inch UINT32 Reserved; // Reserved (always 0) INT16 Checksum; // Checksum value for previous 10 WORDs } WmfPlaceableFileHeader; typedef struct tagMETAHEADER { WORD mtType; // 01 磁盘 WORD mtHeaderSize; // 0x0009 头大小9个word WORD mtVersion; DWORD mtSize; // 不算WmfPlaceableFileHeader头的文件大小 WORD mtNoObjects; DWORD mtMaxRecord; WORD mtNoParameters; } METAHEADER; 图 1.1 文件头 文件记录由 文件记录大小(4字节) 文件记录类型(2字节) 文件记录体组成,其中0x0538类型是polypolygon类型,正是对这个记录的处理不当导致的溢出, 该记录的结构如下记录大小 记录类型 polygon个数(假设为x) 第1个polygon的点数(y个) 第2个polygon点数 ....第x个polygon的点数 .第1个polygon的第1个点 第1个polygon的第2个点....第1个polygon的第y个点...............第x个polygon的第1个点 .................................第x个polygon的最后1个点 由图1.2看出该记录的大小为0x73个word长度. 该记录类型是0x0538 该记录中polygon的个数为1 , polygon的点数为0x37, 后面0x37个word长度的数据就是该polygon的点. 想要读取该记录则要先分配空间,但并不是根据0x73来分配的,而是根据polygon的个数,及每个polygon的点数相加来分配空间. 图 1.2 polypolygon记录 二 漏洞部分代码图2.1 具有漏洞的代码图2.2 微软修补后的代码除了判断是否小于0 还有判断是否加过了溢出了三 WMF文件构造 构造了一个wmf文件polypoygon记录, 用极大的polygon个数和每个polygon的点数都很大, 使其计算达到整数溢出,使用没有补丁的gdiplus的程序查看该文件,就可以直接崩溃, 测试图片连接http://bbs.antiy.cn/viewthread.php?tid=1087&extra=page%3D1&frombbs=1 无木马. 呵呵 四 解决方案 有漏洞的赶快打补丁吧http://www.antiy.com/cn/download/agdifix.htm五 总结 图形文件格式是由很多“段”构成的数据流,而每个段由:长度, 类型,参数,数据等结构构成,在程序解析这些文件格式的时候会依据“类型”来确认段,并读取参数” 进行一定的运算,再依据这些参数来处理随后紧跟的“数据”。漏洞的产生原因就是在对参数进行运算的时候相信了文件输入的参数没有进行确认而导致的。除了图形文件格式外excel的biff格式也是一样的由段的头决定后续数据的读取,且有可变数据对象。有输入就有危险.六 参考文献[1] GDI+ 中的漏洞可能允许远程执行代码 ( http://www.microsoft.com/china/technet/security/bulletin/MS08-052.mspx[2] Microsoft GDI+ WMF PolyPolygon Record Parsing Integer Overflow http://secuni *** /binary_ *** ysis/sample_ *** ysis/ 2008[3] Wmf http://download.microsoft.com/download/0/B/E/0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/WindowsMetafileFormat(wmf)Specification.pdf 2008
网络黑客远程控制怎祥完成 人肉信息内容查询系统7(人肉信息网站) 怎祥防止网络黑客侵蚀 护肤产品的十大网络黑客教学课件(护肤产品培训教材) 如何劝阻网络黑客 qq被网络黑客监...
本文导读目录: 1、何谓黑客 黑客的主要任务是什么 2、黑客是什么,能做什么 3、什么是“黑客”? 4、黑客到底是干嘛的? 5、请问病毒和黑客的主要任务是什么? 6、什么是黑客...
一年的产品经理薪资水平(6年产品经理月薪) 在IT互联网行业,产品经理自2012年起,一直是备受追捧的岗位,亦被行业看做是CEO的候选人。数据说话,看看拉勾网上产品经理的薪资水平(毕业3年内平均达...
一、黑客可以进入暗网吗(有没有黑客进入公安网)方法总结 1、黑客能否黑进公安系统,看到摄像头里的内容不可能的,公安部门的天网是专用内网,与互联网是物理隔离,除非公安部门的信息中心出了内鬼。黑客进入公...
可以说现在的电影市场很火爆,但还有一个不能忽视的市场:网络小说。是的,现在写网络小说正在成为越来越多的人的职业,他们在这个行业赚了不少钱。今天小编就来聊聊写网络小说怎么赚钱。 1、小说市场分析 很...
手机假装黑客酷炫代码? 1、手机QQ的整人代码大全 —— 第一步,将以下代码复制到记事本中。2、手机一串代码秒变黑客微信的方法:下载软件Aris终端桌面,打开软件有许多桌面代码的主题,选择其中一个。?...