一种无代码的流程可视化漏洞检测方法和系统转让专利

申请号 : CN202210462610.8

文献号 : CN114564728B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李维张瑞冬童永鳌朱鹏

申请人 : 成都无糖信息技术有限公司

摘要 :

本发明公开了一种无代码的流程可视化漏洞检测方法和系统,针对现有技术中存在的需要人工编写脚本代码或者编制扫描规则配置文件;以及编写扫描规则配置文件也需要基于固定模板,编制流程和逻辑规则,还需要学习和手工插入引擎中的自定义函数,学习特定的流程和语法规范的问题,本发明的技术方案包括:首先程序自动完成测试流程封装操作;用户创建漏洞检测方法时,程序自动完成系统变量初始化,同时保证不同检测方法的变量互不影响;然后用户可自定义全局变量在后续操作中引用;随后新建测试流程,可在流程中引用之前创建的全局变量和系统变量,并将结果绑定到未使用的系统变量;最后添加判断规则集合,并进行逻辑综合判断是否存在漏洞。

权利要求 :

1.一种无代码的流程可视化漏洞检测方法,其特征在于,包括:

S1:首先对漏洞扫描中的各类测试的测试流程进行抽象封装成接口,并针对不同的测试流程,内置不同的系统变量,用于绑定测试流程的结果数据和下一个测试流程及逻辑判断中;

S2:通过可视化表单创建测试流程,程序自动序列化成封装的测试流程接口的实例,支持创建多个测试流程,对多个测试流程进行排序和衔接,生成测试流程列表,测试流程列表在漏洞测试时按创建顺序依次执行;

S3:不同的测试流程进行执行产生不同的结果数据,将所述结果数据绑定到对应的系统变量中;

S3具体包括:绑定发送HTTP请求结果的R类型变量;绑定识别并提取验证码结果的Y类型变量;绑定从响应中提取数据结果的E类型变量;绑定对数据进行处理结果的P类型变量;

绑定DNS带外工具箱接口数据的T类型变量;

S4:根据各个测试流程的执行结果设置综合逻辑判断关系,根据所述综合逻辑判断关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在;具体包括:设置综合逻辑判断关系,然后实例化测试流程列表,对其进行综合测试,最后进行逻辑综合判断,若综合逻辑判断为正确,则测试通过;若逻辑判断为空或错误,则测试未通过,根据执行时输出的错误信息或者查看操作流程日志详情,定位不符合预期的测试流程,进行调试、修正和改进;

测试过程中各测试流程根据测试流程列表的顺序依次执行,动态展示执行状态,执行结果通过可视化界面展示;若执行失败,可查看执行的调试输出信息,跟踪测试流程的数据和对象、系统变量的变化情况,定位异常位置。

2.根据权利要求1所述的一种无代码的流程可视化漏洞检测方法,其特征在于,S1中,测试流程包括:发送HTTP请求、延迟等待指定时间、识别提取验证码、从响应中提取数据、对数据进行处理。

3.根据权利要求1所述的一种无代码的流程可视化漏洞检测方法,其特征在于,S1中还包括设置全局变量:用户通过可视化表单创建全局变量,并为全局变量赋值,支持对全局变量添加处理规则,所述处理规则包括:前缀、后缀、反转、截取、编码字符串和解码字符串;所述处理规则在全局变量引用前生效。

4.根据权利要求3所述的一种无代码的流程可视化漏洞检测方法,其特征在于,S2中,创建的测试流程包括:a.发送HTTP请求:输入请求数据包,支持通过可视化界面插入全局变量或系统变量,执行该测试流程时将全局变量或系统变量替换为真实数据;

b.延迟等待指定时间:用于发送请求间隔,避免频繁请求被测试服务器封禁,使用毫秒为单位;

c.识别并提取验证码:输入获取验证码图片的数据包,对复杂的验证码图片进行识别,内置了多个AI识别引擎,同时支持对识别结果的误差字符进行人工矫正;

d.从响应中提取数据:根据用户自定义规则,从其他的测试流程结果绑定的变量中的属性提取数据并绑定到全局变量或系统变量;

e.对数据进行处理:根据用户自定义的规则,对全局变量或其他测试流程结果绑定的变量进行处理,内置多种数据处理规则,包括:前缀、后缀、反转、截取、编码字符串、解码字符串、大小写转换。

5.一种无代码的流程可视化漏洞检测系统,其特征在于,包括:

测试流程预处理模块:对漏洞扫描中的各类测试的测试流程进行抽象封装成接口,并针对不同的测试流程,内置不同的系统变量,用于绑定测试流程的结果数据和下一个测试流程及逻辑判断中;

创建测试流程模块:通过可视化表单创建测试流程,程序自动序列化成封装的测试流程接口的实例,支持创建多个测试流程,对多个测试流程进行排序和衔接,生成测试流程列表,测试流程列表在漏洞测试时按创建顺序依次执行;

测试流程执行结果绑定模块:不同的测试流程进行执行产生不同的结果数据,将所述结果数据绑定到对应的系统变量中;具体包括:绑定发送HTTP请求结果的R类型变量;绑定识别并提取验证码结果的Y类型变量;绑定从响应中提取数据结果的E类型变量;绑定对数据进行处理结果的P类型变量;绑定DNS带外工具箱接口数据的T类型变量;

综合逻辑判断模块:根据各个测试流程的执行结果设置综合逻辑判断关系,根据所述综合逻辑判断关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在,具体包括:设置综合逻辑判断关系,然后实例化测试流程列表,对其进行综合测试,最后进行逻辑综合判断,若综合逻辑判断为正确,则测试通过;若逻辑判断为空或错误,则测试未通过,根据执行时输出的错误信息或者查看操作流程日志详情,定位不符合预期的测试流程,进行调试、修正和改进;

测试过程中各测试流程根据测试流程列表的顺序依次执行,动态展示执行状态,执行结果通过可视化界面展示;若执行失败,可查看执行的调试输出信息,跟踪测试流程的数据和对象、系统变量的变化情况,定位异常位置。

6.根据权利要求5所述的一种无代码的流程可视化漏洞检测系统,其特征在于,测试流程预处理模块中,还包括设置全局变量:用户通过可视化表单创建全局变量,并为全局变量赋值,支持对全局变量添加处理规则,所述处理规则包括:前缀、后缀、反转、截取、编码字符串和解码字符串;所述处理规则在全局变量引用前生效。

7.根据权利要求5所述的一种无代码的流程可视化漏洞检测系统,其特征在于,创建测试流程模块中,创建的测试流程包括:a.发送HTTP请求:输入请求数据包,支持通过可视化界面插入全局变量或系统变量,执行该测试流程时将全局变量或系统变量替换为真实数据;

b.延迟等待指定时间:用于发送请求间隔,避免频繁请求被测试服务器封禁,使用毫秒为单位;

c.识别并提取验证码:输入获取验证码图片的数据包,对复杂的验证码图片进行识别,内置了多个AI识别引擎,同时支持对识别结果的误差字符进行人工矫正;

d.从响应中提取数据:根据用户自定义规则,从其他的测试流程结果绑定的变量中的属性提取数据并绑定到全局变量或系统变量;

e.对数据进行处理:根据用户自定义的规则,对全局变量或其他测试流程结果绑定的变量进行处理,内置多种数据处理规则,包括:前缀、后缀、反转、截取、编码字符串、解码字符串、大小写转换。

说明书 :

一种无代码的流程可视化漏洞检测方法和系统

技术领域

[0001] 本发明属于系统安全技术领域,具体涉及一种无代码的流程可视化漏洞检测方法和系统。

背景技术

[0002] 随着网络技术的发展,信息安全也越来越受到人们的重视。如果网站或者服务器的应用程序存在安全漏洞,不仅会对功能的正常使用造成影响,严重的话造成数据与机密的泄露。造成严重的经济损失和危害。因此对漏洞的检测显得尤为重要。
[0003] 现有技术中,通常通过漏洞扫描仪对漏洞进行检测。漏洞扫描器的相关产品中,在漏洞扫描规则的处理上,通常有三种形式:第一种是将漏洞扫描和判断机制硬编码在扫描引擎中;第二种是将扫描引擎和扫描脚本分开,扫描脚本以可执行的脚本文件加载到扫描引擎中执行;第三种是将扫描引擎和扫描规则分开,扫描规则以配置文件的形式加载到漏洞扫描引擎中解析执行。
[0004] 现有技术中存在以下技术问题:
[0005] 第二种和第三种方式更便于漏洞扫描器扫描规则的扩展,但是这两种方式需要人工编写脚本代码或者编制扫描规则配置文件。编写脚本代码需要熟悉特定的脚本编程语言,如python、ruby等等,还需要熟悉和了解在扫描引擎中封装的自定义函数。编写扫描规则配置文件也需要基于固定模板,编制流程和逻辑规则,还需要学习和手工插入引擎中的自定义函数,学习特定的流程和语法规范。并且这些方式,对编写规则的人来说要较高的编程基础,较强的逻辑和分析、调试能力,调试和执行过程也无法可视化,出现问题调试也较为麻烦。

发明内容

[0006] 针对现有技术中存在的需要人工编写脚本代码或者编制扫描规则配置文件;以及编写扫描规则配置文件也需要基于固定模板,编制流程和逻辑规则,还需要学习和手工插入引擎中的自定义函数,学习特定的流程和语法规范的问题,本发明提出了一种无代码的流程可视化漏洞检测方法和系统,其目的为:通过可视化界面,在不编写代码的情况下,通过新建流程和填写表单的形式,实现复杂的漏洞扫描流程的定制化开发。
[0007] 为实现上述目的本发明所采用的技术方案是:提供一种无代码的流程可视化漏洞检测方法,包括:
[0008] S1:首先对漏洞扫描中的各类测试的测试流程进行抽象封装成接口,并针对不同的测试流程,内置不同的系统变量,用于绑定测试流程的结果数据和下一个测试流程及逻辑判断中;
[0009] S2:通过可视化表单创建测试流程,支持创建多个测试流程,对多个测试流程进行排序和衔接,生成测试流程列表;
[0010] S3:不同的测试流程进行执行产生不同的结果数据,将所述结果数据绑定到对应的系统变量中;
[0011] S4:根据各个测试流程的执行结果设置综合逻辑判断关系,根据所述综合逻辑判断关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在。
[0012] 较优的,本发明S1中,测试流程包括:发送HTTP请求、延迟等待指定时间、识别提取验证码、从响应中提取数据、对数据进行处理。
[0013] 较优的,本发明S1中还包括设置全局变量:用户通过可视化表单创建全局变量,并为全局变量赋值,支持对全局变量添加处理规则,所述处理规则包括:前缀、后缀、反转、截取、编码字符串和解码字符串。所述处理规则在全局变量引用前生效。
[0014] 较优的,本发明S2中,创建的测试流程包括:
[0015] a.发送HTTP请求:输入请求数据包,支持通过可视化界面插入全局变量或系统变量,执行该测试流程时将全局变量或系统变量替换为真实数据;
[0016] b.延迟等待指定时间:用于发送请求间隔,避免频繁请求被测试服务器封禁,使用毫秒为单位。
[0017] c.识别并提取验证码:输入获取验证码图片的数据包,对复杂的验证码图片进行识别,内置了多个AI识别引擎,同时支持对识别结果的误差字符进行人工矫正;
[0018] d.从响应中提取数据:根据用户自定义规则,从其他的测试流程结果绑定的变量中的属性提取数据并绑定到全局变量或系统变量;
[0019] e.对数据进行处理:根据用户自定义的规则,对全局变量或其他测试流程结果绑定的变量进行处理,内置多种数据处理规则,包括:前缀、后缀、反转、截取、编码字符串、解码字符串、大小写转换。
[0020] 较优的,本发明S3具体包括:绑定发送HTTP请求结果的R类型变量;绑定识别并提取验证码结果的Y类型变量;绑定从响应中提取数据结果的E类型变量;绑定对数据进行处理结果的P类型变量;绑定DNS带外工具箱接口数据的T类型变量。
[0021] 较优的,本发明S4具体包括:设置综合逻辑判断关系,然后实例化测试流程列表,对其进行综合测试,最后进行逻辑综合判断,若综合逻辑判断为正确,则测试通过;若逻辑判断为空或错误,则测试未通过,根据执行时输出的错误信息或者查看操作流程日志详情,定位不符合预期的测试流程,进行调试、修正和改进;
[0022] 测试过程中各测试流程根据测试流程列表的顺序依次执行,动态展示执行状态,执行结果通过可视化界面展示;若执行失败,可查看执行的调试输出信息,跟踪测试流程的数据和对象、系统变量的变化情况,定位异常位置。
[0023] 本发明还提出一种无代码的流程可视化漏洞检测系统,包括:
[0024] 测试流程预处理模块:对漏洞扫描中的各类测试的测试流程进行抽象封装成接口,并针对不同的测试流程,内置不同的系统变量,用于绑定测试流程的结果数据和下一个测试流程及逻辑判断中;
[0025] 创建测试流程模块:通过可视化表单创建测试流程,支持创建多个测试流程,对多个测试流程进行排序和衔接,生成测试流程列表;
[0026] 测试流程执行结果绑定模块:不同的测试流程进行执行产生不同的结果数据,将所述结果数据绑定到对应的系统变量中;
[0027] 综合逻辑判断模块:根据各个测试流程的执行结果设置综合逻辑判断关系,根据所述综合逻辑判断关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在。
[0028] 较优的,本发明测试流程预处理模块中,还包括设置全局变量:用户通过可视化表单创建全局变量,并为全局变量赋值,支持对全局变量添加处理规则,所述处理规则包括:前缀、后缀、反转、截取、编码字符串和解码字符串。所述处理规则在全局变量引用前生效。
[0029] 较优的,本发明创建测试流程模块中,创建的测试流程包括:
[0030] a.发送HTTP请求:输入请求数据包,支持通过可视化界面插入全局变量或系统变量,执行该测试流程时将全局变量或系统变量替换为真实数据;
[0031] b.延迟等待指定时间:用于发送请求间隔,避免频繁请求被测试服务器封禁,使用毫秒为单位。
[0032] c.识别并提取验证码:输入获取验证码图片的数据包,对复杂的验证码图片进行识别,内置了多个AI识别引擎,同时支持对识别结果的误差字符进行人工矫正;
[0033] d.从响应中提取数据:根据用户自定义规则,从其他的测试流程结果绑定的变量中的属性提取数据并绑定到全局变量或系统变量;
[0034] e.对数据进行处理:根据用户自定义的规则,对全局变量或其他测试流程结果绑定的变量进行处理,内置多种数据处理规则,包括:前缀、后缀、反转、截取、编码字符串、解码字符串、大小写转换。
[0035] 较优的,本发明综合逻辑判断模块具体包括:设置综合逻辑判断关系,然后实例化测试流程列表,对其进行综合测试,最后进行逻辑综合判断,若综合逻辑判断为正确,则测试通过;若逻辑判断为空或错误,则测试未通过,根据执行时输出的错误信息或者查看操作流程日志详情,定位不符合预期的测试流程,进行调试、修正和改进;
[0036] 测试过程中各测试流程根据测试流程列表的顺序依次执行,动态展示执行状态,执行结果通过可视化界面展示;若执行失败,可查看执行的调试输出信息,跟踪测试流程的数据和对象、系统变量的变化情况,定位异常位置。
[0037] 相比现有技术,本发明的技术方案具有如下优点/有益效果:
[0038] 1.本发明能够在开发过程中,使开发人员和用户的整体逻辑更加清晰明了,各个流程支持可视化动态调试,可实时跟踪和查看各个流程的对象及变量的变化情况,便于开发人员和用户快速发现和定位问题,极大降低人员的开发能力要求、简化开发和调试难度、大幅提高开发和调试效率。
[0039] 2.本发明的检测方法对用户透明,用户只需关注测试逻辑,无需学习和记忆检测方法中的内置方法、函数。
[0040] 3.本发明的检测方法中封装了漏洞扫描测试的各项流程,实现了各流程的可视化对接,用户通过简单的配置即可实现复杂的扫描和测试流程,解决绝大部分复杂场景的漏洞扫描和测试问题。
[0041] 4.本发明的测试流程和判断机制通过友好的形式呈现,用户可更清晰的了解和掌控整个测试流程,避免了开发过程中产生的逻辑方面的错误,即使非常复杂的流程用户也不会产生逻辑混乱。
[0042] 5.本发明的用户测试和调试简单便捷,开发过程中即可对测试目标进行测试和对当前流程进行调试。各测试流程支持阶段性执行和调试,便于把控各流程环节的执行情况、查看当前流程的测试结果和数据变化情况,从每一个流程上进行把关。在设置多个测试流程后,可对已设置的所有流程进行整体测试,动态跟踪每一个测试流程的执行情况、执行结果和数据变化情况,方便用户快速发现和定位问题所在位置。

附图说明

[0043] 为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0044] 图1是本发明实施例1的流程示意图。

具体实施方式

[0045] 为使本发明目的、技术方案和优点更加清楚,下面对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。
[0046] 实施例1:
[0047] 如图1所示(附图中虚线框为非必要流程),本发明提出了一种无代码的流程可视化漏洞检测方法,包括:
[0048] S1:首先对漏洞扫描中的各类测试的测试流程进行抽象封装成接口,并针对不同的测试流程,内置不同的系统变量,用于绑定测试流程的结果数据和下一个测试流程及逻辑判断中;还包括设置全局变量:用户通过可视化表单创建全局变量,并为全局变量赋值,支持对全局变量添加处理规则,所述处理规则包括:前缀、后缀、反转、截取、编码字符串和解码字符串。所述处理规则在全局变量引用前生效。
[0049] 本发明在创建测试流程和规则判断中,通过可视化界面可插入全局变量,保证各流程之间的数据交互,降低开发和调试难度,提高操作效率。
[0050] S1中,测试流程包括:发送HTTP请求、延迟等待指定时间、识别提取验证码、从响应中提取数据、对数据进行处理。
[0051] S2:通过可视化表单创建测试流程,支持创建多个测试流程,对多个测试流程进行排序和衔接,生成测试流程列表;S2中,创建的测试流程包括:
[0052] a.发送HTTP请求:输入请求数据包,支持通过可视化界面插入全局变量或系统变量,执行该测试流程时将全局变量或系统变量替换为真实数据,支持可视化单元测试;变量以“§”符号括起来,
[0053] b.延迟等待指定时间:用于发送请求间隔,避免频繁请求被测试服务器封禁,使用毫秒为单位。
[0054] c.识别并提取验证码:输入获取验证码图片的数据包,对复杂的验证码图片进行识别,内置了多个AI识别引擎,同时支持对识别结果的误差字符进行人工矫正;
[0055] d.从响应中提取数据:根据用户自定义规则,从其他的测试流程结果绑定的变量中的属性提取数据并绑定到全局变量或系统变量;
[0056] e.对数据进行处理:根据用户自定义的规则,对全局变量或其他测试流程结果绑定的变量进行处理,内置多种数据处理规则,包括:前缀、后缀、反转、截取、编码字符串、解码字符串、大小写转换。
[0057] S3:不同的测试流程进行执行产生不同的结果数据,将所述结果数据绑定到对应的系统变量中;
[0058] S3具体包括:绑定发送HTTP请求结果的R类型变量;绑定识别并提取验证码结果的Y类型变量;绑定从响应中提取数据结果的E类型变量;绑定对数据进行处理结果的P类型变量;绑定DNS带外工具箱接口数据的T类型变量。
[0059] S4:根据各个测试流程的执行结果设置综合逻辑判断关系,根据所述综合逻辑判断关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在。
[0060] S4具体包括:如图1所示,设置综合逻辑判断关系,然后实例化测试流程列表,对其进行综合测试,最后进行逻辑综合判断,若综合逻辑判断为正确,则测试通过,没有漏洞;若逻辑判断为空或错误,则测试未通过,根据执行时输出的错误信息重新设置综合逻辑判断关系,或者查看操作流程日志详情,定位不符合预期的测试流程,根据错误信息对测试流程进行调试、修正和改进;
[0061] 测试过程中各测试流程根据测试流程列表的顺序依次执行,动态展示执行状态,执行结果通过可视化界面展示;若执行失败,可查看执行的调试输出信息,跟踪测试流程的数据和对象、系统变量的变化情况,定位异常位置。
[0062] 本发明一个漏洞扫描测试可能包含多个测试流程,在创建扫描规则的过程中,需要对每一个新创建好的测试流程进行单独测试和对多个测试流程一起进行综合测试。为保证检验和调试过程更友好清晰,提供了可视化的测试模块,用户可实时查看流程执行过程和执行结果,并且查看每一个流程执行完成后相关的对象和变量的变化情况,能够更快速的帮用户确定问题出现在哪个环节上。
[0063] 本发明要判断测试是否通过,需要综合多个测试流程,根据各个测试流程结果的逻辑关系来进行逻辑运算,根据最终的逻辑运算结果判断漏洞是否存在。对测试流程绑定的变量对象,根据选定的属性、对应的判断方法以及特征数据形成一条判断逻辑,添加多条判断的逻辑关系并指定各判断逻辑之间的关系,通过逻辑运算判断最终的结果。
[0064] 本发明还提出一种无代码的流程可视化漏洞检测系统,包括:
[0065] 测试流程预处理模块:对漏洞扫描中的各类测试的测试流程进行抽象封装成接口,并针对不同的测试流程,内置不同的系统变量,用于绑定测试流程的结果数据和下一个测试流程及逻辑判断中;
[0066] 测试流程预处理模块还包括设置全局变量:用户通过可视化表单创建全局变量,并为全局变量赋值,支持对全局变量添加处理规则,所述处理规则包括:前缀、后缀、反转、截取、编码字符串和解码字符串。所述处理规则在全局变量引用前生效。
[0067] 创建测试流程模块:通过可视化表单创建测试流程,支持创建多个测试流程,对多个测试流程进行排序和衔接,生成测试流程列表;创建的测试流程包括:
[0068] a.发送HTTP请求:输入请求数据包,支持通过可视化界面插入全局变量或系统变量,执行该测试流程时将全局变量或系统变量替换为真实数据;
[0069] b.延迟等待指定时间:用于发送请求间隔,避免频繁请求被测试服务器封禁,使用毫秒为单位。
[0070] c.识别并提取验证码:输入获取验证码图片的数据包,对复杂的验证码图片进行识别,内置了多个AI识别引擎,同时支持对识别结果的误差字符进行人工矫正;
[0071] d.从响应中提取数据:根据用户自定义规则,从其他的测试流程结果绑定的变量中的属性提取数据并绑定到全局变量或系统变量;
[0072] e.对数据进行处理:根据用户自定义的规则,对全局变量或其他测试流程结果绑定的变量进行处理,内置多种数据处理规则,包括:前缀、后缀、反转、截取、编码字符串、解码字符串、大小写转换。
[0073] 测试流程执行结果绑定模块:不同的测试流程进行执行产生不同的结果数据,将所述结果数据绑定到对应的系统变量中;
[0074] 综合逻辑判断模块:根据各个测试流程的执行结果设置综合逻辑判断关系,根据所述综合逻辑判断关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在。
[0075] 具体包括:设置综合逻辑判断关系,然后实例化测试流程列表,对其进行综合测试,最后进行逻辑综合判断,若综合逻辑判断为正确,则测试通过,没有漏洞;若逻辑判断为空或错误,则测试未通过,根据执行时输出的错误信息重新设置综合逻辑判断关系,或者查看操作流程日志详情,定位不符合预期的测试流程,根据错误信息对测试流程进行调试、修正和改进;
[0076] 测试过程中各测试流程根据测试流程列表的顺序依次执行,动态展示执行状态,执行结果通过可视化界面展示;若执行失败,可查看执行的调试输出信息,跟踪测试流程的数据和对象、系统变量的变化情况,定位异常位置。
[0077] 实施例2:如图1所示(附图中虚线框为非必要流程),本发明具体步骤包括:
[0078] 1、测试流程封装:将漏洞测试过程中的测试流程进行抽象封装成接口,封装了如:发送HTTP请求、延迟等待指定时间、识别提取验证码、从响应中提取数据、对数据进行处理等漏洞扫描中的常用测试流程,并可通过接口进行更多测试流程的扩充。
[0079] 2、系统变量设计:大部分的测试流程在执行完成后,均会产生对应的执行结果,因此程序封装了一些系统变量如:绑定发送HTTP请求结果的R类型变量,绑定识别并提取验证码结果的Y类型变量,绑定从响应中提取数据结果的E类型变量,绑定对数据进行处理结果的P类型变量,绑定DNS带外工具箱接口数据的T类型变量等等。
[0080] 3、全局变量设计:系统变量初始化对用户透明,用户只需关注漏洞测试过程中自己要定义的变量,也称之为全局变量,用户可通过可视化表单创建全局变量,为变量赋值(时间戳、目标主机等变量由程序自动赋值),可选择对变量添加多个处理规则如:添加前后缀、反转、截取、编码解码字符串等,处理规则在变量引用前生效。
[0081] 4、新建测试流程集:通过可视化表单创建测试流程,如新建“发送HTTP请求”测试流程,可通过可视化界面在编辑器粘贴HTTP请求数据包,点击编辑器的右键菜单在光标处插入可使用的系统变量或全局变量,通过下拉框选择HTTP请求结果绑定的系统变量如R1,再根据需要选择其他配置如自动修正Referer、共享Cookie容器保持登录等等;然后输入测试地址,根据需要选择是否使用代理,点击测试按钮,即可向测试目标发送测试数据,检查HTTP请求数据和响应数据是否符合预期,如果不符合预期可查看调试日志查看发送和接收的数据,各变量的值的变化情况,排查问题所在位置。可创建多个测试流程,对测试流程进行排序和衔接,各个操作流程都由相应的表单产生,无需编写代码,由程序自动序列化成封装的测试流程接口的实例,多个测试流程组成的集合在漏洞测试时按创建顺序依次执行。
[0082] 5、新建测试流程逻辑判断规则集:可根据各流程的执行结果来设置综合逻辑判断关系,根据各个测试流程结果的逻辑关系来进行逻辑运算,以最终的逻辑运算结果判断漏洞是否存在。对测试流程绑定的变量对象,根据选定的属性、对应的判断方法以及特征数据形成一条判断逻辑,添加多条判断的逻辑关系并指定各判断逻辑之间的关系,通过逻辑运算判断最终的结果。
[0083] 6、测试流程集检验和调试:可进行整体流程测试。输入测试站点地址,可选择是否使用代理服务器,点击“流程测试”后,各流程根据顺序依次执行,动态展示执行状态,执行结果通过友好界面可视化展示。如果执行失败,可查看执行的调试输出信息,跟踪流程的数据和对象、变量的变化情况,定位异常位置。
[0084] 7、各测试流程结果逻辑综合判断:如果各测试流程结果综合逻辑判断为正确,则测试通过;各测试流程结果综合逻辑判断为空或错误,则测试未通过,可根据执行时输出的错误信息重新设置综合逻辑判断关系,或者查看操作流程日志详情,定位不符合预期的测试流程,根据错误信息对测试流程进行调试、修正和改进。
[0085] 本发明主要包括:测试流程封装,系统变量设计,全局变量设计,新建测试流程,新建测试流程逻辑判断规则集,测试流程集检验和调试,各测试流程结果逻辑综合判断七个步骤。程序启动时自动完成测试流程封装操作;用户创建漏洞检测方法时,程序自动完成系统变量初始化,同时保证不同检测方法的变量互不影响;然后用户可自定义全局变量在后续操作中引用;随后新建测试流程,可在流程中引用之前创建的全局变量和系统变量,并将结果绑定到未使用的系统变量;最后添加判断规则集合,并进行逻辑综合判断是否存在漏洞。
[0086] 以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。