一种基于AFL的二进制命令注入漏洞检测方法及系统与流程
未命名
10-19
阅读:102
评论:0
一种基于afl的二进制命令注入漏洞检测方法及系统
技术领域
1.本发明属于信息安全技术领域,具体涉及一种基于afl的二进制命令注入漏洞检测方法及系统。
背景技术:
2.2013年,基于覆盖率引导的模糊测试工具afl(american fuzzy lop)诞生,其采用编译插桩的方式,通过记录输入样本的代码覆盖率,调整输入样本以提高覆盖率,从而增加发现漏洞的概率,该方法基于遗传算法对种子进行编译,具有轻量级检测、快速的覆盖反馈、以及动态调整策略等优势,在实际应用中发现了大量漏洞,模糊测试效果显著,所以迅速得到了研究人员的广泛关注。此后,基于afl的改进工作集中出现,开启了模糊测试快速发展的新浪潮。
3.尽管afl具有自动化程度高、误报率低、速度快等优势,近年来也出现了许多以提高afl自动化程度、平台适配度、测试效率等为目的的改进工作,但是从漏洞发现能力上看,afl仍然具有局限性。由于模糊测试是通过监测目标程序的异常来发现漏洞的,而命令注入漏洞通常不会导致程序的崩溃或挂起,所以对于此类漏洞,已有的afl改进工具仍然难以检测出来。目前已有想法是通过逆向分析工具修改二进制程序汇编代码,将命令注入漏洞涉及的关键系统变量改为空指针,对其强制加异常,但是该方法会导致其他类型的漏洞也难以被检测到,具有较低的可行性,所以如何在不影响原有检测能力的情况下,使得afl能够检测出二进制目标程序的命令注入漏洞成为需要思考的问题。
技术实现要素:
4.(一)要解决的技术问题
5.本发明要解决的技术问题是:在不影响原有检测能力的情况下,如何使得afl具备检测二进制目标程序的命令注入漏洞的能力,提高afl的漏洞发现能力,增强afl可发现的漏洞类型的多样性。
6.(二)技术方案
7.为了解决上述技术问题,本发明提供了一种基于afl的二进制命令注入漏洞检测方法,包括以下步骤:
8.s1、在进行模糊测试之前,对要测试的目标对象进行识别,所述目标对象为目标程序或系统;
9.s2、分析目标程序或系统的输入向量,初步确定测试用例应包含的信息;
10.s3、依据对目标对象和输入向量的分析,构造合适的初始测试用例,然后基于afl变异算法进行自动化地测试用例生成,并在字典生成过程中添加注入命令“touch/tmp/detack”;
11.s4、将生成的测试用例发送给目标程序或系统,完成目标程序或系统的动态执行;在目标程序或系统执行的过程中,监测目标程序或系统的异常和错误,如果发生异常,则继
续步骤s5,如果没有异常发生,则返回步骤s3;
12.s5、分析异常产生原因,记录相关信息;
13.s6、判断模糊测试是否结束,或者是否手动停止,如果结束测试,则继续步骤s7,如果继续测试,则返回步骤s3,进行下一轮测试用例的变异和执行;
14.s7、模糊测试结束后,判断是否新增“/tmp/detack”文件,如果出现该文件,则说明二进制目标程序或系统存在命令注入漏洞,如果没有出现,则说明二进制目标程序或系统不存在命令注入漏洞。
15.优选地,步骤s1中对要测试的目标对象进行识别,包括:确定目标程序或系统的运行环境、软件语言、功能性质、以及是否有源代码的关键信息。
16.优选地,步骤s2分析目标程序或系统的输入向量的过程中寻找全目标对象的输入向量,包含客户端向目标发送的所有的数据信息,包括文件头、文件名、文件格式、数据、注册表项、环境变量。
17.优选地,步骤s3中基于afl变异算法进行自动化地测试用例生成,包括:通过对初始测试用例进行变异来生成新的测试用例,其中,在模糊测试的随机性变异阶段,采用破坏、拼接方式,得到新的测试用例,在模糊测试的确定性变异阶段采用位翻转、加减运算、替换、字典的方式,得到新的测试用例。
18.优选地,步骤s3在afl变异算法中,从字典中随机选取条件信息,随机替换测试用例中的部分内容,进而使得测试用例能进入到目标程序或系统对应条件的路径。
19.优选地,步骤s5具体为:根据目标程序或系统产生异常的执行路径、栈回溯信息、以及处理流程,判定是否有漏洞存在、漏洞是否真实有效、漏洞形成原因、以及漏洞是否具有利用价值,然后将有效的测试用例和判定的漏洞相关信息保存下来。
20.优选地,步骤s7在模糊测试结束后,根据是否新增“/tmp/detack”文件,来判断在字典中添加的注入命令“touch/tmp/detack”是否执行,从而判断二进制目标程序或系统是否存在命令注入漏洞。
21.本发明还提供了一种用于实现所述方法的二进制命令注入漏洞检测系统。
22.优选地,该系统包括:
23.(1)预处理模块
24.预处理模块用于模糊测试开始前的目标对象识别和输入向量分析,输入向量分析时通过人工分析xml配置文件、逆向分析exe可执行文件的手段,获取待测目标对象的基本功能点、程序入口点、核心数据处理函数及其输入输出信息,从而分析得到目标程序或系统的输入向量;
25.(2)测试用例生成模块
26.测试用例生成模块基于afl变异算法进行自动化地测试用例生成,其中,通过对测试用例生成策略进行改进,利用逆向分析的方法撰写idc脚本,从二进制目标程序或系统中提取字典,并在其中注入自定义命令,使得测试用例朝着导向性目标进行生成;
27.根据对二进制目标程序或系统反汇编代码的分析,字典的提取来源分为三类:立即数、直接内存地址数据、函数调用的数据,具体来说,每种类别的提取方法如下:
28.a)立即数划分为整型、字符串、浮点数,此类型的字典提取算法如下:首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选
出汇编语言中比较类的操作码地址,其中用于整型、字符串类型比较的操作码为“cmp”,用于float单精度浮点数类型比较的操作码为“ucomiss”,用于double双精度浮点数类型比较的操作码为“ucomisd”;接着判断该操作码的地址的第二个操作数的类型,当返回值为5时代表是立即数类型;最后对立即数进行处理,输出为十六进制的字符串,并存储到字典文本文件中;
29.b)直接内存地址数据的字典提取算法如下:首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出汇编语言中比较类的操作码地址,其中用于整型、字符串类型比较的操作码为“cmp”,用于float单精度浮点数类型比较的操作码为“ucomiss”,用于double双精度浮点数类型比较的操作码为“ucomisd”;接着判断该操作码的地址的第二个操作数类型的返回值为2时,代表是直接内存地址类型,然后获取该直接内存地址对应的数据,并将其输出为十六进制字符串,存储到字典文本文件中;
30.c)函数调用类型数据的字典提取算法如下:首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出操作码为“call”的地址,并获取该地址处调用的函数名称;接着将函数名与比较类的函数名进行比对,当判断属于比较类函数时,查找该函数对应的两个参数地址;最后根据两个参数地址指向的数据类型获取相对应的数据,并将其输出为十六进制字符串,存储到字典文本文件中;
31.最后,汇总上述三种算法提取的字典文本文件,并过滤掉重复性文本,即可获得最终的字典;
32.(3)程序执行模块
33.程序执行模块用于将基于afl变异算法生成的测试用例发送给目标程序或系统,并在程序或系统接收数据、处理数据的执行过程中监测程序或系统的异常,当无异常时,正常执行程序即可,当有异常产生时,记录异常信息及对应的测试用例,然后自动重启程序或系统继续执行下一个测试用例,直到模糊测试时间结束或者手动停止为止;
34.(4)结果分析模块
35.结果分析模块用于分析目标程序或系统的异常信息,判断是否有漏洞存在,以及获取该漏洞的危害等级、可利用性信息;此外,还根据模糊测试结束后是否新增“/tmp/detack”文件,来判断目标程序或系统是否存在命令注入漏洞,如果新增了该“/tmp/detack”文件,则表明目标程序或系统存在命令注入漏洞。
36.优选地,所述逆向分析exe可执行文件,具体操作为:使用调试工具ida打开二进制目标程序或系统,然后查看目标程序或系统的输出函数列表,根据函数名找到目标程序或系统的主函数,接着按f5获取反汇编伪代码,人工审计该伪代码,定位到函数入口点地址、真正处理数据的函数入口点地址,最后对定位到的关键函数进行分析,获取对目标程序或系统进行模糊测试所需要的信息,并记录保存于相关文档中。
37.(三)有益效果
38.本发明提供的基于afl的二进制命令注入漏洞检测方法及系统,在afl确定性变异阶段的字典中加入一条注入命令,并监测模糊测试前后该命令是否执行,来判断是否存在命令注入漏洞。该方法通过添加异常监测条件,有效地实现了在不影响原有检测能力的情况下,使得afl能够检测出二进制目标程序或系统的命令注入漏洞的能力,丰富了漏洞检测
器afl的功能,提高了漏洞挖掘的效率。
附图说明
39.图1为本发明提供的基于afl的二进制命令注入漏洞检测方法及系统流程图;
40.图2为本发明提供的测试用例生成过程的流程图;
41.图3为本发明提供的立即数类型的字典提取算法伪代码;
42.图4为本发明提供的直接内存地址数据类型的字典提取算法伪代码;
43.图5为本发明提供的函数调用类型的字典提取算法伪代码。
具体实施方式
44.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
45.本发明提出了一种基于afl的二进制命令注入漏洞检测方法及系统,其基本思想是:首先分析待测目标,从宏观上了解要测试的目标对象,并选择相应的测试工具和方案;然后对待测目标的输入向量进行分析,尽可能准确地覆盖目标程序的输入域;接着进行测试用例的生成,实现字典的提取、命令的注入,以及测试用例的导向性变异;之后执行测试用例,监测程序的异常情况,并对结果进行分析,记录相关信息;最后在模糊测试结束后,根据是否新增“/tmp/detack”文件,来判断在字典中注入的命令是否在模糊测试过程中执行,从而判断二进制目标程序是否存在二进制命令注入漏洞。
46.参考图1,本发明提供了一种基于afl的二进制命令注入漏洞检测方法,包括如下步骤:
47.s1、在进行模糊测试之前,对要测试的目标对象进行识别,所述目标对象为目标程序或系统;
48.s2、分析目标程序或系统的输入向量,初步确定测试用例应包含的信息;
49.s3、依据对目标对象和输入向量的分析,构造合适的初始测试用例,然后基于afl变异算法进行自动化地测试用例生成,并在字典生成过程中添加注入命令“touch/tmp/detack”;
50.s4、将生成的测试用例发送给目标程序或系统,完成目标程序或系统的动态执行;
51.在目标程序或系统执行的过程中,监测目标程序或系统的异常和错误,如果发生异常,则继续步骤s5,如果没有异常发生,则返回步骤s3;
52.s5、分析异常产生原因,记录相关信息;
53.s6、判断模糊测试是否结束,或者是否手动停止,如果结束测试,则继续步骤s7,如果继续测试,则返回步骤s3,进行下一轮测试用例的变异和执行;
54.s7、模糊测试结束后,判断是否新增“/tmp/detack”文件,如果出现该文件,则说明二进制目标程序或系统存在命令注入漏洞,如果没有出现,则说明二进制目标程序或系统不存在命令注入漏洞。
55.步骤s1中对要测试的目标对象进行识别,包括:确定目标程序或系统的运行环境、软件语言、功能性质、以及是否有源代码等关键信息,从宏观上了解要测试的目标对象。
56.步骤s2,所述分析目标程序或系统的输入向量的过程中要尽可能找全目标对象的
输入向量,应包含客户端向目标发送的所有的数据信息,比如文件头、文件名、文件格式、数据、注册表项、环境变量等。
57.步骤s3中基于afl变异算法进行自动化地测试用例生成,包括:通过对初始测试用例(初始输入数据)进行变异来生成新的测试用例,具体来说,在模糊测试的随机性变异阶段,通常采用havoc(破坏)、splice(拼接)等方式,得到新的测试用例,在模糊测试的确定性变异阶段通常采用bitflip(位翻转)、arithmetic(加减运算)、interest(替换)、dictionary(字典)等方式,得到新的测试用例。
58.dictionary(字典)的作用是存储辅助判断路径的条件信息,步骤s3在afl变异算法中,通过从字典中随机选取条件信息,随机替换测试用例中的部分内容,进而使得测试用例能进入到目标程序或系统对应条件的路径,增强测试用例的有效性。所以在字典生成过程中添加注入命令“touch/tmp/detack”,可以使得随机生成的测试用例中有很大机率包含该条命令。
59.步骤s5具体为:根据目标程序或系统产生异常的执行路径、栈回溯信息、以及处理流程等,判定是否有漏洞存在、漏洞是否真实有效、漏洞形成原因、以及漏洞是否具有利用价值,然后将有效的测试用例和判定的上述漏洞相关信息保存下来。
60.在模糊测试开始前,确保“/tmp/detack”文件不存在,然后步骤s7在模糊测试结束后,根据是否新增“/tmp/detack”文件,来判断在字典中添加的注入命令“touch/tmp/detack”是否执行,从而判断二进制目标程序或系统是否存在命令注入漏洞。
61.本发明还提供了一种基于afl的二进制命令注入漏洞检测方法及系统,该系统面向二进制目标程序的命令注入漏洞,旨在研究afl发现二进制命令注入漏洞的能力,通过在afl字典生成的过程中添加新建文件命令,并对比模糊测试前后该文件是否存在,来判断该条注入命令是否执行,从而判断目标程序是否存在命令注入漏洞,使afl具备检测命令注入漏洞的能力。该系统主要分为预处理模块、测试用例生成模块、程序执行模块、结果分析模块四大部分,整体流程如图1所示。下面对系统每个模块的功能进行详细描述。
62.(1)预处理模块
63.预处理模块主要用于模糊测试开始前的目标对象识别和输入向量分析,输入向量分析时通过人工分析xml配置文件、逆向分析exe可执行文件等手段,获取待测目标对象的基本功能点、程序入口点、核心数据处理函数及其输入输出等信息,从而分析得到目标程序或系统的输入向量。
64.所述逆向分析exe可执行文件,具体操作为:
65.使用调试工具ida打开二进制目标程序或系统,然后查看目标程序或系统的输出函数列表,根据函数名找到目标程序或系统的主函数,接着按f5获取反汇编伪代码,人工审计该伪代码,定位到函数入口点地址、真正处理数据的函数入口点地址,最后对定位到的关键函数进行分析,获取对目标程序或系统进行模糊测试所需要的信息,并记录保存于相关文档中。
66.(2)测试用例生成模块
67.测试用例生成模块是本发明的关键点,具体流程如图2所示,基于afl变异算法进行自动化地测试用例生成的过程中,通过对测试用例生成策略进行改进,利用逆向分析的方法撰写idc脚本,从二进制目标程序或系统中提取字典,并在其中注入自定义命令,使得
测试用例朝着导向性目标进行生成,降低模糊测试盲目性的同时,新增检测命令注入漏洞的功能。
68.根据对二进制目标程序或系统反汇编代码的分析,字典的提取来源主要可以分为三类:立即数、直接内存地址数据、函数调用的数据,具体来说,每种类别的提取方法如下:
69.a)立即数主要可以划分为整型、字符串、浮点数,该类型的字典提取算法伪代码如图3所示。首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出汇编语言中比较类的操作码地址,其中用于整型、字符串、以及其他普通类型比较的操作码为“cmp”,用于float单精度浮点数类型比较的操作码为“ucomiss”,用于double双精度浮点数类型比较的操作码为“ucomisd”;接着判断该操作码地址第二个操作数的类型,当返回值为5时代表是立即数类型;最后对立即数进行处理,输出为十六进制的字符串,并存储到字典文本文件中。
70.b)直接内存地址数据的字典提取算法的伪代码如图4所示,总体流程和上述立即数类型的算法相似,区别在于第二个操作数类型的返回值为2时,代表是直接内存地址类型,然后获取该直接内存地址对应的数据,并将其输出为十六进制字符串,存储到字典文本文件中。
71.c)函数调用类型数据的字典提取算法的伪代码如图5所示,首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出操作码为“call”的地址,并获取该地址处调用的函数名称;接着将函数名与比较类的函数名进行比对,当判断属于比较类函数时,查找该函数对应的两个参数地址;最后根据两个参数地址指向的数据类型获取相对应的数据,并将其输出为十六进制字符串,存储到字典文本文件中。
72.最后,汇总上述三种算法提取的字典文本文件,并过滤掉重复性文本,即可获得最终的字典。
73.所述在其中注入自定义命令,具体操作为:
74.作为一个示例,可以在生成的字典中添加命令字符串“touch/tmp/detack”,该命令如果执行了,会在字典所在目录中新建目录“/tmp”,并在该目录下生成名称为“detack”的空文件。
75.(3)程序执行模块
76.程序执行模块用于将基于afl变异算法生成的测试用例发送给目标程序或系统,并在程序或系统接收数据、处理数据的执行过程中监测程序或系统的异常,当无异常时,正常执行程序即可,当有异常产生时,记录异常信息及对应的测试用例,然后自动重启程序或系统继续执行下一个测试用例,直到模糊测试时间结束或者手动停止为止。
77.(4)结果分析模块
78.结果分析模块主要负责分析目标程序或系统的异常信息,判断是否有漏洞存在,以及获取该漏洞的危害等级、可利用性等信息。此外,还根据模糊测试结束后是否新增“/tmp/detack”文件,来判断目标程序或系统是否存在命令注入漏洞,如果新增了该“/tmp/detack”文件,则表明目标程序或系统存在命令注入漏洞。通过结果分析模块,能够证明本发明检测系统所实现的检测方法的有效性。
79.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
技术特征:
1.一种基于afl的二进制命令注入漏洞检测方法,其特征在于,包括以下步骤:s1、在进行模糊测试之前,对要测试的目标对象进行识别,所述目标对象为目标程序或系统;s2、分析目标程序或系统的输入向量,初步确定测试用例应包含的信息;s3、依据对目标对象和输入向量的分析,构造合适的初始测试用例,然后基于afl变异算法进行自动化地测试用例生成,并在字典生成过程中添加注入命令“touch/tmp/detack”;s4、将生成的测试用例发送给目标程序或系统,完成目标程序或系统的动态执行;在目标程序或系统执行的过程中,监测目标程序或系统的异常和错误,如果发生异常,则继续步骤s5,如果没有异常发生,则返回步骤s3;s5、分析异常产生原因,记录相关信息;s6、判断模糊测试是否结束,或者是否手动停止,如果结束测试,则继续步骤s7,如果继续测试,则返回步骤s3,进行下一轮测试用例的变异和执行;s7、模糊测试结束后,判断是否新增“/tmp/detack”文件,如果出现该文件,则说明二进制目标程序或系统存在命令注入漏洞,如果没有出现,则说明二进制目标程序或系统不存在命令注入漏洞。2.如权利要求1所述的方法,其特征在于,步骤s1中对要测试的目标对象进行识别,包括:确定目标程序或系统的运行环境、软件语言、功能性质、以及是否有源代码的关键信息。3.如权利要求1所述的方法,其特征在于,步骤s2分析目标程序或系统的输入向量的过程中寻找全目标对象的输入向量,包含客户端向目标发送的所有的数据信息,包括文件头、文件名、文件格式、数据、注册表项、环境变量。4.如权利要求1所述的方法,其特征在于,步骤s3中基于afl变异算法进行自动化地测试用例生成,包括:通过对初始测试用例进行变异来生成新的测试用例,其中,在模糊测试的随机性变异阶段,采用破坏、拼接方式,得到新的测试用例,在模糊测试的确定性变异阶段采用位翻转、加减运算、替换、字典的方式,得到新的测试用例。5.如权利要求1所述的方法,其特征在于,步骤s3在afl变异算法中,从字典中随机选取条件信息,随机替换测试用例中的部分内容,进而使得测试用例能进入到目标程序或系统对应条件的路径。6.如权利要求1所述的方法,其特征在于,步骤s5具体为:根据目标程序或系统产生异常的执行路径、栈回溯信息、以及处理流程,判定是否有漏洞存在、漏洞是否真实有效、漏洞形成原因、以及漏洞是否具有利用价值,然后将有效的测试用例和判定的漏洞相关信息保存下来。7.如权利要求1所述的方法,其特征在于,步骤s7在模糊测试结束后,根据是否新增“/tmp/detack”文件,来判断在字典中添加的注入命令“touch/tmp/detack”是否执行,从而判断二进制目标程序或系统是否存在命令注入漏洞。8.一种用于实现如权利要求1至7中任一项所述方法的二进制命令注入漏洞检测系统。9.如权利要求8所述的系统,其特征在于,包括:(1)预处理模块预处理模块用于模糊测试开始前的目标对象识别和输入向量分析,输入向量分析时通
过人工分析xml配置文件、逆向分析exe可执行文件的手段,获取待测目标对象的基本功能点、程序入口点、核心数据处理函数及其输入输出信息,从而分析得到目标程序或系统的输入向量;(2)测试用例生成模块测试用例生成模块基于afl变异算法进行自动化地测试用例生成,其中,通过对测试用例生成策略进行改进,利用逆向分析的方法撰写idc脚本,从二进制目标程序或系统中提取字典,并在其中注入自定义命令,使得测试用例朝着导向性目标进行生成;根据对二进制目标程序或系统反汇编代码的分析,字典的提取来源分为三类:立即数、直接内存地址数据、函数调用的数据,具体来说,每种类别的提取方法如下:a)立即数划分为整型、字符串、浮点数,此类型的字典提取算法如下:首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出汇编语言中比较类的操作码地址,其中用于整型、字符串类型比较的操作码为“cmp”,用于float单精度浮点数类型比较的操作码为“ucomiss”,用于double双精度浮点数类型比较的操作码为“ucomisd”;接着判断该操作码的地址的第二个操作数的类型,当返回值为5时代表是立即数类型;最后对立即数进行处理,输出为十六进制的字符串,并存储到字典文本文件中;b)直接内存地址数据的字典提取算法如下:首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出汇编语言中比较类的操作码地址,其中用于整型、字符串类型比较的操作码为“cmp”,用于float单精度浮点数类型比较的操作码为“ucomiss”,用于double双精度浮点数类型比较的操作码为“ucomisd”;接着判断该操作码的地址的第二个操作数类型的返回值为2时,代表是直接内存地址类型,然后获取该直接内存地址对应的数据,并将其输出为十六进制字符串,存储到字典文本文件中;c)函数调用类型数据的字典提取算法如下:首先从基本块的起始地址开始遍历所有函数,当地址有效且为.text代码段时,获取操作码;然后筛选出操作码为“call”的地址,并获取该地址处调用的函数名称;接着将函数名与比较类的函数名进行比对,当判断属于比较类函数时,查找该函数对应的两个参数地址;最后根据两个参数地址指向的数据类型获取相对应的数据,并将其输出为十六进制字符串,存储到字典文本文件中;最后,汇总上述三种算法提取的字典文本文件,并过滤掉重复性文本,即可获得最终的字典;(3)程序执行模块程序执行模块用于将基于afl变异算法生成的测试用例发送给目标程序或系统,并在程序或系统接收数据、处理数据的执行过程中监测程序或系统的异常,当无异常时,正常执行程序即可,当有异常产生时,记录异常信息及对应的测试用例,然后自动重启程序或系统继续执行下一个测试用例,直到模糊测试时间结束或者手动停止为止;(4)结果分析模块结果分析模块用于分析目标程序或系统的异常信息,判断是否有漏洞存在,以及获取该漏洞的危害等级、可利用性信息;此外,还根据模糊测试结束后是否新增“/tmp/detack”文件,来判断目标程序或系统是否存在命令注入漏洞,如果新增了该“/tmp/detack”文件,则表明目标程序或系统存在命令注入漏洞。
10.如权利要求9所述的系统,其特征在于,所述逆向分析exe可执行文件,具体操作为:使用调试工具ida打开二进制目标程序或系统,然后查看目标程序或系统的输出函数列表,根据函数名找到目标程序或系统的主函数,接着按f5获取反汇编伪代码,人工审计该伪代码,定位到函数入口点地址、真正处理数据的函数入口点地址,最后对定位到的关键函数进行分析,获取对目标程序或系统进行模糊测试所需要的信息,并记录保存于相关文档中。
技术总结
本发明涉及一种基于AFL的二进制命令注入漏洞检测方法及系统,属于信息安全技术领域。本发明提供的基于AFL的二进制命令注入漏洞检测方法及系统,在AFL确定性变异阶段的字典中加入一条注入命令,并监测模糊测试前后该命令是否执行,来判断是否存在命令注入漏洞。该方法通过添加异常监测条件,有效地实现了在不影响原有检测能力的情况下,使得AFL能够检测出二进制目标程序或系统的命令注入漏洞的能力,丰富了漏洞检测器AFL的功能,提高了漏洞挖掘的效率。的效率。的效率。
技术研发人员:汪美琴 贾琼 刘明哲 张卫国 任益辰
受保护的技术使用者:北京计算机技术及应用研究所
技术研发日:2023.07.08
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
