kavin

剑走偏锋:基于静态检测的IE漏洞检测工具IEFuzz

kavin 安全防护 2022-12-19 360浏览 0

本文主要分享一款静态的IE浏览器模糊测试工具,该工具被称为IEFuzz。我们知道,像其他大部分软件一样,浏览器也往往通过两种方式进行模糊测试,一种为静态,另外一种则为动态。

在此前,我们在其他文章中也了解过其他的Fuzzer,如X-Fuzzer,PKAV HTTP Fuzzer,也了解过相关的Fuzzing方法,如从零开始学Fuzzing系列:浏览器挖掘框架Morph诞生记等。本文主要讲述静态浏览器Fuzzer的情况。

在当下,动态浏览器Fuzzer占据着主流,因为它们的运行效率高(纯粹是用JavaScript写的)。然而,当我们在进行动态Fuzzing 的时候,往往面临着一个共同的问题,就是“异常事件重现”。所以一般我们在构建JS 浏览器 Fuzzer时都需要非常仔细,否则在运行过程中可能会由于浏览器Fuzzer是动态的,将导致异常事件不可重现。

所以,在Fuzzing之前,我们往往需要考虑以下几个方面的问题:

1、测试实例(样本)如何生成?
2、对异常事件如何监控?
3、对于引起异常事件的测试实例如何保存?
4、异常事件如何重现?

对于上述使用动态 Fuzzer面临的问题,另外一种解决思路是,采用静态Fuzzer进行检测。虽然静态Fuzzer效率较低,但是一般都可以重现异常事件的。

IEFuzz简介

该静态IE fuzzer 是用python编写的,包括使用到以下模块:

pywin32com ——用于加载或者重载*.html测试实例;

pydbg——用于监控IE浏览器的异常事件;

paimei——用于生成异常事件的dump文件,下载链接为:paimei。

IEFuzz使用配置

为了能够顺利进行Fuzzing,我们需要在IE设置中做如下更改。

1、首先,因为Fuzzer 需要在本地加载测试实例(如加载路径为file://c:/fuzzer/testcases/temp.html)所以应该先将IE的ActiveX告警提示关闭,通过如下步骤:

(1)工具->Internet 选项->安全->自定义级别;

(2)随后将ActiveX告警提示关闭。

2、接着,为了能够使用 Python win32com来监控IE,我们还需要关闭IE的保护模块。但是请注意其中的风险。

(1)工具->Internet 选项->安全->受信任的站点:自定义级别为低;

(2)工具->Internet 选项->安全->Internet:自定义级别为中,同时关闭保护模式;

(3)工具->Internet 选项->安全->受限站点:关闭保护模式。

编写测试实例

首先我们可以基于该fuzzer编写自己的静态测试用例生成器。之后可以将其放在/TestCases文件夹中。在GitHub源码中, 也提供了一个样本以供

继续浏览有关 安全 的文章
发表评论