接口模糊测试的方法及装置制造方法及图纸

技术编号:37122104 阅读:14 留言:0更新日期:2023-04-01 05:17
本申请公开一种接口模糊测试的方法及装置,其中方法包括:从待测应用中导出符合OpenAPI规范的接口文档,接口文档中包括目标接口的所有信息;根据接口文档生成文档对象模型;创建Etree.document结构体,根据解析得到的文档对象模型的所有信息在Etree.document结构体依次生成不同的元素;生成目标接口的XML模板;将XML模板输入至预设的模糊测试引擎;模糊测试引擎解析XML模板,并基于模糊测试引擎的变异算法对解析得到的目标接口的请求参数进行变异赋值得到变异数据包;模糊测试引擎将变异数据包输入至目标接口并根据目标接口返回的响应信息确定是否检测到漏洞。本申请不需要详细了解单个漏洞的详细信息和检测逻辑以及收集不同漏洞payload的操作,有利于降低接口测试的难度与工程量。低接口测试的难度与工程量。低接口测试的难度与工程量。

【技术实现步骤摘要】
接口模糊测试的方法及装置


[0001]本申请涉及模糊测试
,具体涉及一种接口模糊测试的方法及装置。

技术介绍

[0002]1989年,Wisconsin大学的Barton Miller教授提出了模糊测试(Fuzz)的概念。这是一种基于缺陷注入的漏洞挖掘方法,这项技术的基本方法是向应用程序、待测设备或者目标测试系统注入畸形的、非预期的数据去挖掘软件漏洞。相对而言,模糊测试的研究领域较为宽泛。从软件漏洞发掘技术的分类标准来看,模糊测试主要着眼于黑盒测试和灰盒测试领域。
[0003]当前产品对接口进行漏洞测试的时候,大多是通过提前对漏洞进行详细的分析,提前内置不同漏洞检测逻辑,内置大量的不同漏洞的针对性的payload,再根据接口响应的特征,进行特征检测的方式来检测接口漏洞,例如对于sql注入漏洞的检测,一般的检测逻辑分为布尔注入,错误注入,时间注入,orderby注入等,也就是说接口测试需要提前了解每一种漏洞的详细信息以及检测逻辑,由于漏洞分类多,payload也多,导致工程量巨大,难度高。

技术实现思路

[0004]本申请的目的在于提供一种接口模糊测试的方法、装置、电子设备及计算机可读存储介质,有利于更客观地进行风险评价且能够提高风险评价的效率。
[0005]为实现上述目的,本申请提供了一种接口模糊测试的方法,包括:
[0006]针对待测应用的目标接口,从所述待测应用中导出符合OpenAPI规范的接口文档,所述接口文档中包括所述目标接口的所有信息;
[0007]根据所述接口文档中的所述所有信息生成文档对象模型;
[0008]创建Etree.document结构体,根据解析得到的所述文档对象模型的所有信息在所述Etree.document结构体依次生成不同的元素;
[0009]调用所述Etree.document结构体的内置方法生成所述目标接口的XML模板,所述XML模板包含所述目标接口的所有信息;
[0010]将所述XML模板输入至预设的模糊测试引擎;
[0011]所述模糊测试引擎解析所述XML模板,并基于所述模糊测试引擎的变异算法对解析得到的所述目标接口的请求参数进行变异赋值得到变异数据包;
[0012]所述模糊测试引擎将所述变异数据包输入至所述目标接口并根据所述目标接口返回的响应信息确定是否检测到漏洞。
[0013]可选地,所述根据所述接口文档中的所述所有信息生成文档对象模型包括:
[0014]解析所述接口文档中的所述所有信息并根据解析到的所述所有信息生成自定义的数据结构,所述自定义的数据结构中包括所述目标接口的所有信息;
[0015]解析所述自定义的数据结构并将解析到的所述自定义的数据结构的数据赋值给
定义的所述文档对象模型的参数。
[0016]可选地,利用所述GO语言的第三方库对所述文档对象模型进行解析。
[0017]可选地,所述请求参数包括所述目标接口的请求方式、请求URL、请求头和请求体。
[0018]可选地,所述变异算法包括倒序算法、大写转小写算法和/或随机数算法。
[0019]可选地,所述模糊测试引擎通过HttpClient将所述变异数据包输入至所述目标接口。
[0020]为实现上述目的,本申请提供了一种接口模糊测试的装置,包括:
[0021]导出模块,用于针对待测应用的目标接口,从所述待测应用中导出符合OpenAPI规范的接口文档,所述接口文档中包括所述目标接口的所有信息;
[0022]第一生成模块,用于根据所述接口文档中的所述所有信息生成文档对象模型;
[0023]创建及生成模块,用于创建Etree.document结构体,根据解析得到的所述文档对象模型的所有信息在所述Etree.document结构体依次生成不同的元素;
[0024]第二生成模块,用于调用所述Etree.document结构体的内置方法生成所述目标接口的XML模板,所述XML模板包含所述目标接口的所有信息;
[0025]输入模块,用于将所述XML模板输入至预设的模糊测试引擎;
[0026]解析及变异模块,用于所述模糊测试引擎解析所述XML模板,并基于所述模糊测试引擎的变异算法对解析得到的所述目标接口的请求参数进行变异赋值得到变异数据包;
[0027]输入及确定模块,用于所述模糊测试引擎将所述变异数据包输入至所述目标接口并根据所述目标接口返回的响应信息确定是否检测到漏洞。
[0028]可选地,所述根据所述接口文档中的所述所有信息生成文档对象模型包括:
[0029]解析所述接口文档中的所述所有信息并根据解析到的所述所有信息生成自定义的数据结构,所述自定义的数据结构中包括所述目标接口的所有信息;
[0030]解析所述自定义的数据结构并将解析到的所述自定义的数据结构的数据赋值给定义的所述文档对象模型的参数。
[0031]为实现上述目的,本申请还提供了一种电子设备,包括:
[0032]处理器;
[0033]存储器,其中存储有所述处理器的可执行指令;
[0034]其中,所述处理器配置为经由执行所述可执行指令来执行如前所述的接口模糊测试的方法。
[0035]为实现上述目的,本申请还提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现如前所述的接口模糊测试的方法。
[0036]本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行如上所述的接口模糊测试的方法。
[0037]本申请从待测应用中导出符合OpenAPI规范的接口文档,根据接口文档中的所有信息生成文档对象模型,再创建Etree.document结构体并根据解析得到的文档对象模型的所有信息在Etree.document结构体依次生成不同的元素,接着根据Etree.document结构体的内置方法即可生成目标接口的XML模板,而XML模板中包含目标接口的所有信息,进而将
XML模板输入至模糊测试引擎即可利用变异算法对解析得到的目标接口的请求参数进行变异赋值得到变异数据包,然后将变异数据包输入至目标接口,根据目标接口返回的响应信息即可确定是否检测到漏洞。本申请相对传统的测试方法,基于通用的OpenAPI规范的接口文件和测试引擎及变异算法即可进行接口模糊测试,不需要详细了解单个漏洞的详细信息和检测逻辑以及收集不同漏洞payload这一工程量巨大且高难度的操作,有利于降低接口测试的难度与工程量。
附图说明
[0038]图1是本申请实施例接口模糊测试的方法的流程图。
[0039]图2是本申请实施例接口模糊测试的装置的示意框图。
[0040]图3是本申请实施例电子设备的示意框图。
具体实施方式
...

【技术保护点】

【技术特征摘要】
1.一种接口模糊测试的方法,其特征在于,包括:针对待测应用的目标接口,从所述待测应用中导出符合OpenAPI规范的接口文档,所述接口文档中包括所述目标接口的所有信息;根据所述接口文档中的所述所有信息生成文档对象模型;创建Etree.document结构体,根据解析得到的所述文档对象模型的所有信息在所述Etree.document结构体依次生成不同的元素;调用所述Etree.document结构体的内置方法生成所述目标接口的XML模板,所述XML模板包含所述目标接口的所有信息;将所述XML模板输入至预设的模糊测试引擎;所述模糊测试引擎解析所述XML模板,并基于所述模糊测试引擎的变异算法对解析得到的所述目标接口的请求参数进行变异赋值得到变异数据包;所述模糊测试引擎将所述变异数据包输入至所述目标接口并根据所述目标接口返回的响应信息确定是否检测到漏洞。2.如权利要求1所述的接口模糊测试的方法,其特征在于,所述根据所述接口文档中的所述所有信息生成文档对象模型包括:解析所述接口文档中的所述所有信息并根据解析到的所述所有信息生成自定义的数据结构,所述自定义的数据结构中包括所述目标接口的所有信息;解析所述自定义的数据结构并将解析到的所述自定义的数据结构的数据赋值给定义的所述文档对象模型的参数。3.如权利要求1所述的接口模糊测试的方法,其特征在于,利用所述GO语言的第三方库对所述文档对象模型进行解析。4.如权利要求1所述的接口模糊测试的方法,其特征在于,所述请求参数包括所述目标接口的请求方式、请求URL、请求头和请求体。5.如权利要求1所述的接口模糊测试的方法,其特征在于,所述变异算法包括倒序算法、大写转小写算法和/或随机数算法。6.如权利要求1所述的接口模糊测试的方法,其特征在于,所述模糊测试引擎通过HttpClient将所述变异数据包输入至所述目标接...

【专利技术属性】
技术研发人员:汪凡万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1