一种基于HTTP/2的模糊测试方法和装置制造方法及图纸

技术编号:32115708 阅读:13 留言:0更新日期:2022-01-29 19:00
本发明专利技术公开一种基于HTTP/2的模糊测试方法及装置,本发明专利技术通过获取异常报文作为种子,且该异常报文为特定字段存在任一预设异常码的报文,根据HTTP/2协议可知,各种帧结构报文的特定字段的所有异常码给服务器端带来的影响都是一致的,因此在对报文中的特定字段进行模糊测试时,只需要测试特定字段存在任一预设异常码的情况,而该预设异常码可以代表该特定字段的所有异常情况,所以选择该异常报文作为种子,并且在后续的模糊测试中将该异常报文中特定字段固定下来不进行变异,而是对其他字段进行变异,可以大大减少测试例的生成,提高测试效率。试效率。试效率。

【技术实现步骤摘要】
一种基于HTTP/2的模糊测试方法和装置


[0001]本专利技术涉及软件安全测试领域,具体涉及一种基于HTTP/2的模糊测试方法和装置。

技术介绍

[0002]模糊测试是如今挖掘软件漏洞最有效的方法之一,由于其简单易用的特性,受到了软件安全相关从业人员的青睐。模糊测试的核心是通过给被测程序输入异常数据,监视软件是否会有异常行为,例如崩溃、超时等,以此来暴露软件潜在的漏洞。如果被测软件有异常行为,那么就可以将造成异常的输入记录下来。模糊测试应尽可能多地覆盖代码分支,以最大可能地暴露出潜在的漏洞。
[0003]模糊测试时需要设置起始种子,起始种子是指模糊测试开始时的第一个报文,后续将在这个报文的基础上进行变异,而传统的模糊测试是从任意一个报文起步,然后以此报文为基础,不断变异,然后在变异的报文中选择那些产生新的代码覆盖路径的报文,继续变异,以此循环。而HTTP/2协议中规定了在不同帧结构报文的特定字段要么为预设的正常码,要么为预设的异常码。而所有异常码对服务器端的影响是一致的,因此,如果仍然采用传统方法随机选择一个起始种子并对其全字段进行模糊测试,则会出现许多对于特定字段而言是重复的测试例,导致测试效率低下。
[0004]另外,在进行协议的模糊测试时,需要监视器对被测试的程序的运行状态进行监视,而传统的监视器要么需要源码,要么需要在被测对象的运行环境上调用相应监视器,但是在面对协议测试的时候,往往是没有源码的,很多情况下测试人员也无法在宿主主机上进行操作,比如要测试http/2的服务端,只能通过发送各种变异的报文到服务端,并不能在服务端上进行任何操作,因此,传统的监视器就无法应用于此类测试。
[0005]因此,有必要提供一种新的基于HTTP/2的模糊测试方法,以解决上述问题。

技术实现思路

[0006]本专利技术的目的在于提供一种基于HTTP/2的模糊测试方法、装置、电子设备及计算机可读存储介质,能够减少模糊测试例的数量,提高模糊测试的效率。
[0007]为实现上述目的,本专利技术提供了一种基于HTTP/2的模糊测试方法,包括:
[0008]获取异常报文作为种子,所述异常报文为特定字段存在任一预设异常码的报文;
[0009]对所述异常报文的其他字段进行变异生成测试报文;
[0010]将所述测试报文发送至服务器端。
[0011]可选地,所述特定字段为预设正常码或预设异常码,所述服务器端接收到所述特定字段为预设异常码的报文必须响应协议错误的连接错误至客户端。
[0012]可选地,所述其他字段不包括影响所述客户端与所述服务器端交互的字段。
[0013]可选地,所述其他字段不包括表示报文类型的字段。
[0014]可选地,所述获取异常报文作为种子包括:通过配置文件控制一报文的所述特定
字段变异以得到所述异常报文。
[0015]可选地,在将所述测试报文发送至所述服务器端之后,所述方法还包括:
[0016]发送PING帧报文至所述服务器端;
[0017]根据是否接收到所述服务器端返回的带有ACK标志位的所述PING帧报文,确定所述服务器端是否正常。
[0018]可选地,所述异常报文包括:
[0019]Padding字段为非0x0的DATA帧报文;
[0020]Window Size Increment字段为0x0的WINDOW_UPDATE帧报文;
[0021]Stream Identifier字段为0x0的PUSH_PROMISE帧报文、HEADERS帧报文、 PRIORITY帧报文、CONTINUATION帧报文、RST_STREAM帧报文;
[0022]Stream Identifier字段为非0x0的PING帧报文、SETTING帧报文、GOAWAY 帧报文。
[0023]为实现上述目的,本专利技术还提供了一种基于HTTP/2的模糊测试装置,包括:
[0024]获取模块,用于获取异常报文作为种子,所述异常报文为特定字段存在任一预设异常码的报文;
[0025]生成模块,用于对所述异常报文的其他字段进行变异生成测试报文;
[0026]发送模块,用于将所述测试报文发送至服务器端;
[0027]为实现上述目的,本专利技术还提供了一种电子设备,包括:
[0028]处理器;
[0029]存储器,其中存储有所述处理器的可执行指令;
[0030]其中,所述处理器配置为经由执行所述可执行指令来执行如上所述的基于 HTTP/2的模糊测试方法。
[0031]为实现上述目的,本专利技术还提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现如上所述的基于HTTP/2的模糊测试方法。
[0032]与现有技术相比,本专利技术的基于HTTP/2的模糊测试方法通过获取异常报文作为种子,且该异常报文为特定字段存在任一预设异常码的报文,根据HTTP/2 协议可知,各种帧结构报文的特定字段的所有异常码给服务器端带来的影响都是一致的,因此在对报文中的特定字段进行模糊测试时,只需要测试特定字段存在任一预设异常码的情况,而该预设异常码可以代表该特定字段的所有异常情况,所以选择该异常报文作为种子,并且在后续的模糊测试中将该异常报文中特定字段固定下来不进行变异,而是对其他字段进行变异,可以大大减少测试例的生成,提高测试效率。
附图说明
[0033]图1是HTTPS握手信息交互流程图。
[0034]图2是建立HTTP/2连接的信息交互流程图。
[0035]图3是建立HTTP/2连接的报文交互示意图。
[0036]图4是本专利技术实施例基于HTTP/2的模糊测试方法的方法流程图。
[0037]图5a

图5j依次是DATA帧、HEADER帧、PING帧、PRIORITY帧、SETTING 帧、RST_STREAM帧、CONTINUATION帧、PUSH_PROMISE帧、GOAWAY 帧、WINDOW_UPDATE帧的结构示意图。
[0038]图6是本专利技术实施例对报文字段进行控制的代码示意图。
[0039]图7是本专利技术实施例PING帧报文监控服务器端的信息交互流程图。
[0040]图8是本专利技术实施例客户端发送的PING帧报文以及服务器端返回的带有 ACK标志位的PING帧报文的示意图。
[0041]图9是本专利技术实施例基于HTTP/2的模糊测试装置的示意框图。
[0042]图10是本专利技术实施例电子设备的示意框图。
具体实施方式
[0043]为了详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0044]实施例一
[0045]请参阅图1,由于HTTP/2的模糊测试需要建立在HTTPS的基础之上,因此需要先建立HTTPS的握手协商,具体步骤如下:
[0046]客户端发送一条详细说明其加密功能本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于HTTP/2的模糊测试方法,其特征在于,包括:获取异常报文作为种子,所述异常报文为特定字段存在任一预设异常码的报文;对所述异常报文的其他字段进行变异生成测试报文;将所述测试报文发送至服务器端。2.如权利要求1所述的基于HTTP/2的模糊测试方法,其特征在于,所述特定字段为预设正常码或预设异常码,所述服务器端接收到所述特定字段为预设异常码的报文必须响应协议错误的连接错误至客户端。3.如权利要求1所述的基于HTTP/2的模糊测试方法,其特征在于,所述其他字段不包括影响所述客户端与所述服务器端交互的字段。4.如权利要求1所述的基于HTTP/2的模糊测试方法,其特征在于,所述其他字段不包括表示报文类型的字段。5.如权利要求1所述的基于HTTP/2的模糊测试方法,其特征在于,所述获取异常报文作为种子包括:通过配置文件控制一报文的所述特定字段变异以得到所述异常报文。6.如权利要求1所述的基于HTTP/2的模糊测试方法,其特征在于,在将所述测试报文发送至所述服务器端之后,所述方法还包括:发送PING帧报文至所述服务器端;根据是否接收到所述服务器端返回的带有ACK标志位的所述PING帧报文,确定所述服务器端是否正常。7.如权利要求1所述的基于HTTP/2的模糊测试方法,其特征在于,所述...

【专利技术属性】
技术研发人员:李民锋王颉万振华李显郑明
申请(专利权)人:开源网安物联网技术武汉有限公司
类型:发明
国别省市:

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

1