文件类型漏洞挖掘与SmartFuzz.PDFVIP

  • 117
  • 0
  • 约6.27万字
  • 约 27页
  • 2018-10-15 发布于天津
  • 举报
文件类型漏洞挖掘与SmartFuzz

第17 章 文件类型漏洞挖掘 与Smart Fuzz 17.1 Smart Fuzz 概述 17.1.1 文件格式Fuzz 的基本方法 不管是IE 还是Office,它们都有一个共同点,那就是用文件作为程序的主要输入。从本质 上来说,这些软件都是按照事先约定好的数据结构对文件中不同的数据域进行解析,以决定用 什么颜色、在什么位置显示这些数据。 不少程序员会存在这样的惯性思维,即假设他们所使用的文件是严格遵守软件规定的数据 格式的。这个假设在普通的使用过程中似乎没有什么不妥——毕竟用Word 生成的.doc 文件一 般不会存在什么非法的数据。 但是攻击者往往会挑战程序员的假定假设,尝试对软件所约定的数据格式进行稍许修改, 观察软件在解析这种“畸形文件”时是否会发生错误,发生什么样的错误,以及堆栈是否能 被溢出等。 文件格式Fuzz (File Fuzz )就是这种利用“畸形文件”测试软件鲁棒性的方法。您可以在 Internet 上找到许多用于File Fuzz 的工具。抛开界面、运行平台等因素不管,一个File Fuzz 工 具大体的工作流程包括以下几步,如图17.1.1 所示。 (1)以一个正常的文件模板为基础,按照一定规则产生一批畸形文件。 (2 )将畸形文件逐一送入软件进行解析,并监视软件是否会抛出异常。 (3 )记录软件产生的错误信息,如寄存器状态、栈状态等。 (4 )用日志或其他UI 形式向测试人员展示异常信息,以进一步鉴定这些错误是否能被 利用。 图17.1.1 Fuzz 的一般步骤 0 d a y 17.1.2 Blind Fuzz 和Smart Fuzz 第 ( 术 技 析 分 洞 漏 件 软 : 全 安 Blind Fuzz 即通常所说的“盲测”,就是在随机位置插入随机的数据以生成畸形文件。然而 现代软件往往使用非常复杂的私有数据结构,例如 PPT 、word、excel、mp3 、RMVB 、PDF 、 Jpeg,ZIP 压缩包,加壳的 PE 文件。数据结构越复杂,解析逻辑越复杂,就越容易出现漏洞。 复杂的数据结构通常具备以下特征:  拥有一批预定义的静态数据,如magic ,cmd id 等  数据结构的内容是可以动态改变的  数据结构之间是嵌套的  数据中存在多种数据关系 (size of,point to ,reference of ,CRC )  有意义的数据被编码或压缩,甚至用另一种文件格式来存储,这些格式的文件被挖掘 出越来越多的漏洞…… 2 对于采用复杂数据结构的复杂文件进行漏洞挖掘,传统的Blind Fuzz 暴露出一些不足之处, ) 版 例如:产生测试用例的策略缺少针对性,生成大量无效测试用例,难以发现复杂解析器深层逻 辑的漏洞等。 针对Blind Fuzz 的不足,Smart Fuzz 被越来越多地提出和应用。通常Smart Fuzz 包括三方 面的特征:面向逻辑(Logic Oriented Fuzzing )、面向数据类型 (Data Type Oriented Fuzzing )

文档评论(0)

1亿VIP精品文档

相关文档