欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种网站安全测试方法、装置、电子设备及存储介质独创技术47775字

一种网站安全测试方法、装置、电子设备及存储介质

2021-02-22 01:56:03

一种网站安全测试方法、装置、电子设备及存储介质

  技术领域

  本公开涉及计算机技术领域,尤其涉及一种网站安全测试方法、装置、电子设备及存储介质。

  背景技术

  相关技术中,常通过web漏洞扫描器对网站的安全性进行测试,其主要通过从目标网站的请求消息中解析出信息对(如包含参数标识和参数信息的键值对),进而通过解析出的信息对判断目标网站是否存在安全漏洞。请求消息中的信息对中可以为单一格式或多种格式混合的信息对,而当前在网站安全检测的过程中只会针对请求消息的某一种数据格式进行解析,基于解析得到的信息对验证目标网站的安全性,网站安全测试的准确度较低,因此如何提升网站安全测试的准确度是一个值得思考的问题。

  发明内容

  本公开实施例提供一种网站安全测试方法、装置、电子设备及存储介质,用于提升网站安全测试的准确度。

  本公开第一方面,提供一种网站安全测试方法,包括:

  对网站请求信息进行解析操作,得到所述网站请求信息对应的基础信息对,其中,所述基础信息对为包括基础数据类型的参数信息的信息对;

  在所述网站请求信息中不存在目标信息对的情况下,对解析得到的基础信息对进行转换处理,得到所述网站请求消息对应的请求测试消息,所述目标信息对为包括非基础数据类型的参数信息的信息对;

  向所述网站请求消息对应的网站发送所述请求测试消息,并根据所述网站对所述请求测试消息的响应信息验证所述网站的安全性。

  在一种可能的实现方式中,对网站请求信息进行解析操作的步骤,包括:

  识别所述网站请求信息中目标信息对的参数信息的参数格式;

  基于识别的参数格式对应的解析规则,对所述目标信息对中的参数信息进行解析操作。

  在一种可能的实现方式中,所述识别所述网站请求信息中信息对的参数信息的参数格式的步骤,包括:

  按照预设的参数格式的优先级,依次将预设的参数格式与目标信息对中的参数信息的格式进行匹配;以及

  将与目标信息对中的参数信息的格式匹配成功的预设的参数格式,确定为目标信息对中参数信息的参数格式。

  在一种可能的实现方式中,所述识别的参数格式对应的解析规则包括至少两个,所述对所述目标信息对中的参数信息进行解析操作的步骤,包括:

  从所述至少两个解析规则中确定目标解析规则,按照目标解析规则对所述目标信息对中的参数信息进行解析操作。

  在一种可能的实现方式中,所述按照目标解析规则对所述目标信息对中的参数信息进行解析操作的步骤之后,还包括:

  若进行解析得到的信息对中仍有目标信息对,则从所述至少两个解析规则中未选择的解析规则中重新确定目标解析规则,按照重新确定的目标解析规则对所述目标信息对中的参数信息进行解析操作,至解析得到的信息对中没有目标信息对。

  在一种可能的实现方式中,所述从所述至少两个解析规则中确定目标解析规则的步骤,包括:

  从所述至少两个解析规则中确定第N优先级的解析规则为目标解析规则,若使用第N优先级的解析规则解析失败,则确定第(N-1)优先级的解析规则为目标解析规则,其中,N为大于等于1的自然数,第N优先级高于第(N-1)优先级;或

  从所述至少两个解析规则中随机选择一个解析规则确定为目标解析规则。

  在一种可能的实现方式中,所述识别的参数格式包括json格式,所述按照目标解析规则对所述目标信息对中的参数信息进行解析操作的步骤,包括:

  利用目标解析规则中的第一解析格式,提取与目标解析规则对应的信息对中的参数标识,以及

  利用目标解析规则中的第二解析格式,提取与目标解析规则对应的信息对中的参数信息。

  在一种可能的实现方式中,所述对解析得到的基础信息对进行转换处理,得到所述网站请求消息对应的请求测试消息的步骤,包括:

  确定所述解析得到的基础信息对中与安全测试目标对应的基础信息对;

  对所述与安全测试目标对应的基础信息对进行转换处理,得到所述网站请求消息对应的请求测试消息。

  在一种可能的实现方式中,所述对解析得到的基础信息对进行转换处理,得到所述网站请求消息对应的请求测试消息的步骤,包括:

  将所述解析得到的基础信息对中的参数信息替换为第一测试信息,得到所述网站请求消息对应的请求测试消息;和/或

  在所述解析得到的基础信息对中添加第二测试信息,得到所述网站请求消息对应的请求测试消息。

  本公开第二方面,提供一种网站安全测试装置,包括:

  信息解析单元,被配置为执行对网站请求信息进行解析操作,得到所述网站请求信息对应的基础信息对,其中,所述基础信息对为包括基础数据类型的参数信息的信息对;

  信息转换单元,被配置为执行在所述网站请求信息中不存在目标信息对的情况下,对解析得到的基础信息对进行转换处理,得到所述网站请求消息对应的请求测试消息,所述目标信息对为包括非基础数据类型的参数信息的信息对;

  安全测试单元,被配置为执行向所述网站请求消息对应的网站发送所述请求测试消息,并根据所述网站对所述请求测试消息的响应信息验证所述网站的安全性。

  在一种可能的实现方式中,所述信息解析单元具体被配置为执行:

  识别所述网站请求信息中目标信息对的参数信息的参数格式;

  基于识别的参数格式对应的解析规则,对所述目标信息对中的参数信息进行解析操作。

  在一种可能的实现方式中,所述信息解析单元具体被配置为执行:

  按照预设的参数格式的优先级,依次将预设的参数格式与目标信息对中的参数信息的格式进行匹配;以及

  将与目标信息对中的参数信息的格式匹配成功的预设的参数格式,确定为目标信息对中参数信息的参数格式。

  在一种可能的实现方式中,所述信息解析单元具体被配置为执行:

  从所述至少两个解析规则中确定目标解析规则,按照目标解析规则对所述目标信息对中的参数信息进行解析操作。

  在一种可能的实现方式中,所述信息解析单元还被配置为执行:

  按照目标解析规则对所述目标信息对中的参数信息进行解析操作之后,若进行解析得到的信息对中仍有目标信息对,则从所述至少两个解析规则中未选择的解析规则中重新确定目标解析规则,按照重新确定的目标解析规则对所述目标信息对中的参数信息进行解析操作,至解析得到的信息对中没有目标信息对。

  在一种可能的实现方式中,所述信息解析单元具体被配置为执行:

  从所述至少两个解析规则中确定第N优先级的解析规则为目标解析规则,若使用第N优先级的解析规则解析失败,则确定第(N-1)优先级的解析规则为目标解析规则,其中,N为大于等于1的自然数,第N优先级高于第(N-1)优先级;或

  从所述至少两个解析规则中随机选择一个解析规则确定为目标解析规则。

  在一种可能的实现方式中,所述识别的参数格式包括json格式,所述信息解析单元具体被配置为执行:

  利用目标解析规则中的第一解析格式,提取与目标解析规则对应的信息对中的参数标识,以及

  利用目标解析规则中的第二解析格式,提取与目标解析规则对应的信息对中的参数信息。

  在一种可能的实现方式中,所述信息转换单元具体被配置为执行:

  确定所述解析得到的基础信息对中与安全测试目标对应的基础信息对;

  对所述与安全测试目标对应的基础信息对进行转换处理,得到所述网站请求消息对应的请求测试消息。

  在一种可能的实现方式中,所述信息转换单元具体被配置为执行:

  将所述解析得到的基础信息对中的参数信息替换为第一测试信息,得到所述网站请求消息对应的请求测试消息;和/或

  在所述解析得到的基础信息对中添加第二测试信息,得到所述网站请求消息对应的请求测试消息。

  本公开第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面及一种可能的实施方式中任一所述的方法。

  本公开第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面及一种可能的实施方式中任一所述的方法。

  本公开的方案至少带来以下的有益效果:

  本公开实施例中对网站请求消息进行逐级解析操作,直至解析出的信息对中没有目标信息对,可以解析出网站请求消息中所有的基础信息对,进而在据解析出的基础信息对生成请求测试消息时,可以生成对每个基础信息对进行安全检测的请求测试消息,也可以生成对指定的基础信息对进行安全检测的请求测试消息,进而在通过请求测试消息检测网站的安全性时,提升了网站安全检测的准确度。

  附图说明

  此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

  图1为本公开示例性实施例提供的一种网站安全测试方法的过程示意图;

  图2为本公开示例性实施例提供的一种对网站请求消息进行第一级解析操作的流程示意图;

  图3为本公开示例性实施例提供的一种对网站请求消息进行第i级解析操作的流程示意图;

  图4为本公开示例性实施例提供的另一种对网站请求消息进行第i级解析操作的流程示意图;

  图5为本公开示例性实施例提供的另一种对网站请求消息进行第一级解析操作的流程示意图;

  图6为本公开示例性实施例提供的一种对网站请求消息进行逐级解析操作的原理示意图;

  图7为本公开示例性实施例提供的一种对网站请求消息进行逐级解析操作的过程示意图;

  图8为本公开示例性实施例提供的一种网站安全测试装置的结构示意图;

  图9为本公开示例性实施例提供的一种电子设备的结构示意图。

  具体实施方式

  为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

  需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

  为了便于本领域技术人员更好地理解本公开的技术方案,下面对本公开涉及的技术名词进行说明。

  信息对:本公开实施例中的信息对指解析网站请求消息得到的数据对和解析目标信息对得到的数据对,信息对包括参数标识和参数信息,如信息对可以为包括参数名和参数值的参数键值对(key_key,key_value),上述参数名为信息对中的参数标识,参数值为信息对中的参数信息。

  目标信息对:参数信息的数据类型不是基础数据类型的信息对,其中基础数据类型包括字符串类型、数值类型和布尔类型中的一个或多个数据类型。

  基础信息对:参数信息的数据类型为基础数据类型的信息对,即基础信息对为目标信息对之外的信息对。

  下面对本公开的设计思想进行说明。

  随着互联网技术的不断发展,网站安全建设越来越受重视,其中常通过web漏洞扫描器对网站的安全性进行测试。web漏洞扫描器作为一种网络安全评估工具,其工作的原理是从目标网站的请求消息中解析出信息对(如包含参数名和参数值的参数键值对),通过解析得到的信息对判断目标网站是否存在安全漏洞。因此,网络安全检测结果的准确度很大程度上取决于载荷是否能够有效到大目标网站的后端并触发对目标网站的攻击行为,而这一切的前提都是能够正确的对请求消息中的信息对进行正确的提取解析,生成符合目标网站的请求消息的格式的载荷。

  请求消息中的信息对中参数信息的数据格式可以为post表单格式、json格式、soap格式、xml格式等,目前一些请求消息中的参数信息为多种格式的混合,而当前在网站安全检测的过程中只会针对某一种数据格式对请求消息进行解析,在接收请求消息后,调用对应的解析模块针对上述数据格式进行逐一尝试解析请求消息,即在接收请求消息后,可以先按照json格式对应的解析规则解析请求消息,若解析成功则停止解析过程,否则可以尝试按照post表单格式解析请求消息,若解析成功则停止解析过程;进而基于解析得到的信息对生成符合目标网站的请求消息的格式的载荷,而按照解析得到的信息对中的参数信息可能存在另外的信息对,仅相关技术中基于解析得到的信息对生成载荷,明显会降低网站安全测试的准确度;如若某一请求消息中的字符串为id=3&person={“age”:26,”sex”:”male”},在对其进行解析时,若按照json格式解析时,会解析失败,按照post表单格式进行解析会将person的参数信息{“age”:26,”sex”:”male”}当成一个字符串进行处理,而无法解析出其中的age和sex两个参数的参数信息,进而无法生成对age和sex两个参数的位置进行安全测试的载荷;如某一请求消息中的字符串为{“age”:25,“api”:“query”,“info”:[{“id”:“0”,“name”:“ab”},{“ID”:“1”,“name”:“cd”}],对其进行解析后,提取的参数为age、api和info,而info参数的参数信息为[{“id”:“0”,“name”:“ab”},{“ID”:“1”,“name”:“cd”}],info参数的参数信息并不是一个简单的字符串,而是包含了id和name两个属性的字符数,如果仅提取info参数,则在生成载荷时,会将info的参数信息作为一个整体进行变换,生成的载荷中可能不包含id和name属性,进而不能使用生成的载荷验证网站针对id和name属性的安全性。

  鉴于此,本公开设计一种网站安全测试方法、装置、电子设备及存储介质,用以提升网站安全测试的准确度,由于网站安全测试的准确度与请求消息的解析过程具有较强的关联度,因此,本公开实施例中在对网站请求消息进行解析时,对网站请求消息进行解析操作,在解析出信息对之后,判断解析后的网站请求消息中是否存在目标信息对,若解析得到的信息对中存在目标信息对,则继续对网站请求消息进行解析操作,直至解析出的信息对中不存在目标信息对,进而根据解析出的各基础信息对生成网站请求消息对应的请求测试消息,通过请求测试消息对网站进行安全性的检测,上述基础信息对为包括基础数据类型的参数信息的信息对,目标信息对为包括非基础数据类型的参数信息的信息对,基础数据类型可以包括字符串类型、数值类型和布尔类型中的一个或多个数据类型。

  进一步地,在进行解析操作的过程中,若解析得到的目标信息对中的参数信息为json格式,则可以利用json格式对应的解析规则中的第一解析格式,提取与json格式的参数信息中的其它信息对的参数标识,以及利用json格式对应的解析规则中的第二解析格式,提取与json格式的参数信息中的其它信息对的参数信息。

  以下结合附图对本公开的方案进行详细说明。

  如图1所示,本公开实施例提供一种网站安全测试方法,具体包括如下步骤:

  步骤S101,对网站请求信息进行解析操作,得到上述网站请求信息对应的基础信息对,其中,上述基础信息对为包括基础数据类型的参数信息的信息对。

  具体地,可以识别上述网站请求信息中信息对的参数信息的参数格式;基于识别的参数格式对应的解析规则,对上述目标信息对中的参数信息进行解析操作。

  步骤S102,在上述网站请求信息中不存在目标信息对的情况下,对解析得到的基础信息对进行转换处理,得到上述网站请求消息对应的请求测试消息,上述目标信息对为包括非基础数据类型的参数信息的信息对。

  具体地,可以确定解析得到的基础信息对中与安全测试目标对应的基础信息,进而对确定的基础信息对进行转换处理,得到上述网站请求消息对应的请求测试消息,上述转换处理可以但不局限于包括用测试信息替换基础信息对中的参数信息、在基础信息对中的参数信息后拼接测试信息等。

  步骤S103,向上述网站请求消息对应的网站发送上述请求测试消息,并根据上述网站对上述请求测试消息的响应信息验证上述网站的安全性。

  本公开实施例以下内容对步骤S101中的对网站请求消息进行详细说明。

  作为一种实施例,在步骤S101中若对网站请求消息进行一次解析操作后,得到的信息对中存在目标信息对,则可以对网站请求消息进行多次解析操作,其中若当前级解析操作得到的信息对中存在目标信息对,则进行下一级解析操作,直至解析得到的信息对中不存在目标信息对,本公开实施例中的当前级操解析操作指当前正在进行的解析操作,其可以代指第一级解析操作至第i级解析操作,i为大于1的整数;下一级解析操作代指第一级解析操作之后的解析操作,i为大于1的整数。;

  作为一种实施例,在步骤S101中识别上述网站请求信息中信息对的参数信息的参数格式时,可以按照预设的参数格式的优先级,依次将预设的参数格式与目标信息对中的参数信息的格式进行匹配;将与目标信息对中的参数信息的格式匹配成功的预设的参数格式,确定为目标信息对中参数信息的参数格式,上述目标信息对为上述网站请求消息中的信息对。

  本公开实施例以下内容针对网站请求消息的第一级解析操作进行详细说明。

  对网站请求消息进行第一级解析操作时,可以通过按照预设的参数格式的优先级,依次将预设的参数格式与网站请求消息中目标信息对的参数格式进行匹配,按照匹配成功的参数格式对应的解析规则对目标信息对中的参数信息进行解析操作;如可以但不局限于将预设的参数格式的优先级从高到低的顺序设置为json格式、soap格式、xml格式、post表单格式,在对网站请求消息进行第一级解析操作时,可以首先将目标信息对的参数信息的参数格式与json格式进行匹配,若匹配成功则按照json格式的解析规则解析目标信息对中的参数信息,且不再将目标信息对的参数信息的参数格式与预设的其它参数格式进行匹配;若网站请求消息的参数格式与json格式匹配失败,则将目标信息对的参数信息的参数格式与soap格式进行匹配,若匹配成功则按照soap格式的解析规则解析目标信息对中的参数信息,否则将目标信息对的参数信息的参数格式与xml格式进行匹配,若目标信息对的参数信息的参数格式与json格式、soap格式以及xml格式的匹配均失败,则可以按照post表单格式的解析规则解析目标信息对中的参数信息。

  请参见图2,为便于理解,此处给出一个第一级解析操作的流程示意图,开始解析网站请求消息后,逐一尝试按照不同的预设格式的解析规则对网站请求消息进行解析操作,若解析成功则完成对网站请求消息的第一级解析操作,若解析失败则继续尝试按照另外的预设格式的解析规则进行解析操作,若所有的预设格式与网站请求消息的参数格式均不匹配,则可以按照默认格式的解析规则对进行解析操作,其中默认格式可以但不局限于为post格式。

  本公开实施例以下内容对上述下一级解析操作(即第一级解析操作之后的第i级解析操作)进行详细说明。

  如图3所示,在进行第i级解析操作时具体包括如下步骤:

  步骤S301,识别网站请求消息中的目标信息对的参数信息的参数格式。

  具体地,在步骤S301中识别目标信息对中参数信息的参数格式时,可以但不局限于按照预设的参数格式的优先级,依次将预设的参数格式与目标信息对中的参数信息的格式进行匹配;以及将与目标信息对中的参数信息的格式匹配成功的预设的参数格式,确定为目标信息对的参数信息的参数格式;如预设的参数格式包括json格式、soap格式和post表单格式时,可以将预设的参数格式的优先级从高到低的顺序设置为json格式、soap格式和post表单格式,进而首先判断目标信息对的参数信息的参数格式与json格式是否匹配,若匹配则将json格式确定为目标信息对的参数信息的参数格式,否则继续判断目标信息对的参数信息的参数格式与soap格式是否匹配,若匹配则将soap格式确定为目标信息对的参数信息的参数格式,否则可以直接将post表单格式确定为目标信息对的参数信息的参数格式,也可以继续判断目标信息对的参数信息的参数格式与post表单格式是否匹配。

  步骤S302,基于识别的参数格式对应的解析规则,对上述目标信息对中的参数信息进行解析操作。

  作为一种实施例,本公开实施例中针对同一个参数格式可以设置多个解析规则,如针对json格式设置如下第一正则表达式至第三正则表达式的解析规则。

  第一正则表达式:("(?P<name>[^"]+)"s*:s*")(.*?)"(?<!\");

  第二正则表达式:("(?P<name>[^"]+)"s*:s*)(-?d[d.]*);

  第三正则表达式:("(?P<name>[^"]+)"s*:s*)((true|false|null));

  上述第一正则表达式至第三正则表达式中("(?P<name>[^"]+)"s*:s*)表征与信息对中的参数标识匹配,(.*?)"(?<!\")与信息对中数据类型为字符串类型的参数信息匹配,(-?d[d.]*)与信息对中数据类型为数值类型的参数信息匹配,((true|false|null))与信息对中数据类型为布尔类型的参数信息匹配。

  本公开实施例中,还可以在上述各正则表达式结尾处添加结束符“b”,如将第一正则表达式变形为("(?P<name>[^"]+)"s*:s*")(.*?)"(?<!\")/b,将第二正则表达式变形为("(?P<name>[^"]+)"s*:s*)(-?d[d.]*)/b,将第三正则表达式变形为("(?P<name>[^"]+)"s*:s*)((true|false|null))/b。

  进一步,若步骤S301中识别出的参数格式对应的解析规则包括至少两个,则在步骤S302中对目标信息对中的参数信息进行解析操作的步骤,包括:

  从上述至少两个解析规则中确定目标解析规则,按照目标解析规则对目标信息对中的参数信息进行解析操作。

  作为一种实施例,若上述识别的参数格式包括json格式,则可以通过如下方式按照目标解析规则对目标信息对中的参数信息进行解析操作:

  利用目标解析规则中的第一解析格式,提取与目标解析规则对应的信息对中的参数标识,以及利用目标解析规则中的第二解析格式,提取与目标解析规则对应的信息对中的参数信息。

  若目标解析规则为第一正则表达式时,则上述第一解析格式为("(?P<name>[^"]+)"s*:s*"),第二解析格式为(.*?)"(?<!\"),则利用("(?P<name>[^"]+)"s*:s*")提取目标信息对的参数信息中的第一信息对的参数标识,利用(.*?)"(?<!\")提取目标信息对的参数信息中的第一信息对的参数信息,该参数信息的数据类型为字符串类型,第一信息对包括参数信息的数据类型为字符串类型的信息对。

  若目标解析规则为第二正则表达式时,则上述第一解析格式为("(?P<name>[^"]+)"s*:s*),第二解析格式为(-?d[d.]*),则利用("(?P<name>[^"]+)"s*:s*)提取目标信息对的参数信息中的第二信息对的参数标识,利用(-?d[d.]*)提取目标信息对的参数信息中的第二信息对的参数信息,该参数信息的数据类型为数值类型,第二信息对包括参数信息的数据类型为数值类型的信息对。

  若目标解析规则为第三正则表达式时,则上述第一解析格式为("(?P<name>[^"]+)"s*:s*),第二解析格式为((true|false|null)),则利用("(?P<name>[^"]+)"s*:s*)提取目标信息对的参数信息中的第三信息对的参数标识,利用((true|false|null))提取目标信息对的参数信息中的第三信息对的参数信息,该参数信息的数据类型为数值类型,第三信息对包括参数信息的数据类型为布尔类型的信息对。

  更进一步,可以基于上述至少两个解析规则的优先级,从上述至少两个解析规则中确定目标解析规则,具体地,可以从上述至少两个解析规则中确定第N优先级的解析规则为目标解析规则,若使用第N优先级的解析规则解析失败,则确定第(N-1)优先级的解析规则为目标解析规则,其中,N为大于等于1的自然数,第N优先级高于第(N-1)优先级;如识别的参数格式为json格式时,可以基于上述第一正则表达式至第三正则表达式的优先级,从第一正则表达式至第三正则表达式中选择出目标解析规则,其中对上述至少两个解析规则的优先级的设置方式不做限定,本领域的技术人员可根据实际需求设置。

  还可以从上述至少两个解析规则中随机选择一个解析规则,确定为目标解析规则;如识别的参数格式为json格式时,可以从第一正则表达式至第三正则表达式中随机选择一个正则表达式确定为目标解析规则。

  作为一种实施例,按照目标解析规则对上述目标信息对中的参数信息进行解析操作的步骤之后,若进行解析得到的信息对中仍有目标信息对,则可以从上述至少两个解析规则中未选择的解析规则中重新确定目标解析规则,按照重新确定的目标解析规则对上述目标信息对中的参数信息进行解析操作,至解析得到的信息对中没有目标信息对;如识别出的参数格式为json格式时,确定的目标解析规则为第一正则表达式,若按照第一正则表达式对第i-1级解析操作得到的目标信息对中的参数信息进行解析操作后,仍然存在目标信息对,则可以继续选择第二正则表达式和第三正则表达式中的一个或组合作为目标解析规则,对仍然存在的目标信息对进行解析操作,至解析得到的信息对中没有目标信息对。

  作为一种实施例,若识别出的参数格式为json格式,json格式的解析规则包括第一正则表达式至第三正则表达式,则步骤S302中,可以同时按照第一正则表达式至第三正则表达式,对第i-1级解析操作得到的目标信息对中的参数信息进行解析操作,此处可参见图4,具体包括如下步骤:

  步骤S401,按照第一正则表达式,对第i-1级解析操作得到的目标信息对中的参数信息进行解析操作;

  步骤S402,按照第二正则表达式,对按照第一正则表达式解析得到的目标信息对中的参数信息进行解析操作;

  步骤S403,按照第三正则表达式,对按照第二正则表达式解析得到的目标信息对中的参数信息进行解析操作。

  应当说明的是,对上述步骤S401至步骤S403中具体按照的正则表达式不做限定,本领域的技术人员可根据实际需求设置,如将步骤S401至步骤S403进行解析操作依据的正则表达式分别设置为第二正则表达式、第三正则表达式以及第一正则表达式等。

  作为一种实施例,若网站请求消息的参数格式为json格式,则在第一级解析操作中,也可以使用上述第一正则表达式至第三正则表达式中的一个或多个对网站请求消息进行第一级解析操作,如图5所示,同时按照第一正则表达式至第三正则表达式,对网站请求消息进行第一级解析操作的过程具体包括如下步骤:

  步骤S501,按照第一正则表达式,对网站请求消息进行解析操作。

  步骤S502,按照第二正则表达式,对按照第一正则表达式解析得到的目标信息对中的参数信息进行解析操作。

  其中若按照第一正则表达式解析得到的信息对中不包括目标信息对,则结束对网站请求消息的解析过程。

  步骤S503,按照第三正则表达式,对按照第二正则表达式解析得到的目标信息对中的参数信息进行解析操作。

  其中若按照第二正则表达式解析得到的信息对中不包括目标信息对,则结束对网站请求消息的解析过程;若步骤S503之后,若按照第三正则表达式解析得到的信息对中不包括目标信息对,则结束对网站请求消息的解析过程,否则,则对按照第三正则表达式解析得到的目标信息对进行第i级解析操作(i为大于1的值)。

  应当说明的是,对上述步骤S501至步骤S503中具体按照的正则表达式不做限定,本领域的技术人员可根据实际需求设置,如将步骤S501至步骤S503进行解析操作依据的正则表达式分别设置为第二正则表达式、第三正则表达式以及第一正则表达式等。

  以下对步骤S102中获得请求测试消息的过程进行详细说明。

  具体地,可以确定解析得到的基础信息对中与安全测试目标对应的基础信息对;对上述与安全测试目标对应的基础信息对进行转换处理,得到上述网站请求对应的请求测试消息。

  如若网站请求消息为{“age”:26,“info”:{“name”:“ab”,“sex”:“male”}},则通过上述方法对网站请求消息进行逐级解析操作后,得到的基础信息对为{“{key_age}”:{key_age_value},“info”:{“{key_name}”:{key_name_value},“{key_sex}”:{key_sex_value}},可以从上述各基础信息对中确定与安全测试目标对应的基础信息对;如安全测试目标为测试name属性时,与安全测试目标对应的基础信息对可以为({key_name}”:{key_name_value}),进而可以对({key_name}”:{key_name_value})进行转换处理;安全测试目标为测试sex属性时,与安全测试目标对应的基础信息对可以为({key_sex}”:{key_sex_value}),进而可以对({key_sex}”:{key_sex_value})进行转换处理。

  进一步地,可以通过如下至少一种转换方式对解析得到的基础信息对进行转换处理,得到上述网站请求消息对应的请求测试消息:

  第一种转换方式:直接替换参数信息。

  将解析得到的基础信息对中的参数信息替换为第一测试信息,得到上述网站请求消息对应的请求测试消息。

  如网站请求消息为id=1&info={“age”:26,“ids”:[1,2]},第一测试信息为字符串<evil>,则根据解析出的基础信息对生成的请求测试消息可以为:id=<evil>&info={“age”:26,“ids”:[1,2]}、id=1&info={“age”:<evil>,“ids”:[1,2]}、id=1&info={“age”:26,“ids”:<evil>}、id=<evil>&info={“age”:<evil>,“ids”:[1,2]}、id=1&info={“age”:26,“ids”:[<evil>,2]}等。

  第二种转换方式:参数信息后拼接测试信息。

  在解析得到的基础信息对中添加第二测试信息,得到上述网站请求消息对应的请求测试消息。

  如网站请求消息为id=1&info={“age”:26,“ids”:[1,2]},第二测试信息为字符串<evil>,则根据解析出的基础信息对生成的请求测试消息可以为:id=1<evil>&info={“age”:26,“ids”:[1,2]}、id=1&info={“age”:26<evil>,“ids”:[1,2]}、id=1<evil>&info={“age”:26<evil>,“ids”:[1,2]}等。

  当同时采用上述第一种转换方式和第二种转换方式生成请求测试消息时,若网站请求消息为id=1&info={“age”:26,“ids”:[1,2]},第一测试信息为字符串<evil1>,第二测试信息为字符串<evil2>,则生成的请求测试消息可以为id=1<evil2>&info={“age”:<evil1>,“ids”:[1,2]}、生成的请求测试消息也可以为id=<evil1><evil2>&info={“age”:26,“ids”:[1,2]}。

  应当说明的是,上述第一测试信息和第二测试信息可以相同也可以不同,本领域的技术人员可根据实际需求设置。

  本公开实施例的以下内容提供几个网站安全测试的具体示例。

  示例1

  该示例中网站请求消息中待解析的部分为{“age”:26,“info”:{“name”:“ab”,“sex”:“male”}},其待解析的部分为json格式的嵌套,该示例中的信息对为参数键值对,信息对中的参数标识为参数键值对中的参数名,信息对中的参数信息为参数键值对中的参数值。

  如图6所示,给出本示例中对网站请求消息进行解析操作的原理示意图,该示例中通过递归调用的方式,修改解析操作过程中的数据流向,将解析操作得到的参数键值对中的参数值重新送回解析模块,直到解析得到的参数值为基础数据类型(即参数值为基础数据类型的参数键值对为上述基础信息对),将解析得到的基础数据类型的参数值保存到解析结果集中,上述解析模块用于对网站请求消息进行解析操作,上述基础数据类型字符串类型、数值类型以及布尔类型。

  同时,若网站请求消息的参数格式为json格式,则可以将上述第一正则表达式至第三正则表达式中的至少一个作为目标解析规则,直接根据目标解析规则提取网站请求消息中的各参数名和参数值,并将提取出的参数名和参数值组成的参数键值对进行格式化,如将提取出的各参数键值对替换成形如“key_key1”:“key_key1_value”的字符串。

  例如网站请求消息中待解析的参数值为{“age”:26,“info”:{“name”:“ab”,“sex”:“male”}},相关技术中在判断网站请求消息中目标信息对的参数值的参数格式为json格式后,调用json格式对应的解析库,将解析得到的age和info相关的两个参数键值对放入解析结果集中;而本公开中在判断网站请求消息中目标信息对的参数值的参数格式为json格式后,可以调用json格式对应的解析库进行第一级解析操作,解析得到age和info相关的两个参数键值对,并分别判断age和info的参数值是否为基础数据类型,此情况下判断出age的参数值为数值类型,则将age以及age的参数值保存到解析结果集中,同时判断出info的参数值不是基础数据类型,进而针对info的参数值进行第二级解析操作,在进而第二级解析操作时,判断出info的参数值的参数格式为json格式,则调用json格式对应的解析库对info的参数值进行解析,解析出name和sex相关的两个参数键值对,且name的参数值和sex的参数值都为字符串类型,则将name和sex相关的两个参数键值对保存到解析结果集中,并保存key_name和key_sex两个参数键到参数键集中,结束对网站请求消息的解析过程。

  另外,本公开实施例中,还可以在判断网站请求消息中待解析的参数值的参数格式为json格式后,可以将上述第一正则表达式至第三正则表达式中的至少一个确定为目标解析规则,按照目标解析规则对网站请求消息进行解析操作,具体过程可参见上述内容,此处不再重复描述。

  该示例中针对网站请求消息中待解析的参数值{“age”:26,“info”:{“name”:“ab”,“sex”:“male”}}进行解析操作,解析得到的结果的形式可以为{“{key_age}”:{key_age_value},“info”:{“{key_name}”:{key_namen_value},“{key_sex}”:{key_sex_value}}}。

  进而可以利用测试信息,分别对参数键key_age、key_name和key_sex进行变换和/或替换,得到网站请求消息对应的请求测试消息,通过请求测试消息验证对应网站的安全性。

  示例2

  该示例中网站请求消息中待解析的部分为json格式和post表单格式的混合体;该示例中的信息对为参数键值对,信息对中的参数标识为参数键值对中的参数名,信息对中的参数信息为参数键值对中的参数值。

  请参见图7,假设json格式的优先级高于post表单格式,网站请求消息中待解析的部分为id=1&info={“age”:26},则对网站请求消息进行逐级解析操作的过程包括如下步骤:

  步骤S701,参数模块将网站请求参数中待解析的部分id=1&info={“age”:26}传送至解析模块。

  步骤S702,解析模块判断网站请求消息中待解析的部分的参数格式与json格式是否匹配,此时解析模块确定id=1&info={“age”:26}与json格式不匹配后,进入步骤S703。

  步骤S703,解析模块按照post表单格式对网站请求消息进行第一级解析操作,得到id=1和info={“age”:26},两个参数键值对。

  步骤S704,解析结果处理模块确定id=1的参数键值对中的参数值为数值类型后,将id=1添加到解析结果集,且将参数名id添加到参数键集中。

  步骤S705,解析结果处理模块确定info={“age”:26}的参数键值对中参数值不是基础数据类型后,进而将参数值{“age”:26}传送给解析模块进行第二级解析操作。

  步骤S706,解析模块确定参数值{“age”:26}为json格式后,按照json格式对应的解析规则,对参数值{“age”:26}进行解析,得到{“key_age”:{key_age_value}},并将解析结果传送至解析结果处理模块。

  此步骤中,可以按照上述第一正则表达式至第三正则表达式的方式对{“age”:26}进行解析操作,此处不再重复叙述。

  步骤S707,解析结果处理模块确定{“key_age”:{key_age_value}}中的参数值为数值类型后,将{“key_age”:{key_age_value}}添加到解析结果集中,并将key_age添加到参数键集中。

  此示例中针对网站请求消息中待解析的部分id=1&info={“age”:26}进行逐级解析操作,解析得到的结果为id=1&info={“key_age”:{key_age_value}},参数键为id和key_age。

  进而可以利用测试信息,分别对参数键id和key_age进行变换和/或替换,得到网站请求消息对应的请求测试消息,通过请求测试消息验证对应网站的安全性。

  本公开实施例中,通过对网站请求消息进行解析操作,直至解析得到的信息对中不存在目标信息对,进而根据解析得到的基础信息对生成请求测试消息时,可以生成对每个解析得到的基础信息对进行安全检测的请求测试消息,也可以生成对指定的基础信息对进行安全检测的请求测试消息,进而在通过请求测试消息检测网站的安全性时,提升了网站安全检测的准确度。

  如图8所示,基于相同的发明构思,本公开实施例还提供一种网站安全测试装置800,该装置包括:

  信息解析单元801,被配置为执行对网站请求信息进行解析操作,得到上述网站请求信息对应的基础信息对,其中,上述基础信息对为包括基础数据类型的参数信息的信息对;

  信息转换单元802,被配置为执行在上述网站请求信息中不存在目标信息对的情况下,对解析得到的基础信息对进行转换处理,得到上述网站请求消息对应的请求测试消息,上述目标信息对为包括非基础数据类型的参数信息的信息对;

  安全测试单元803,被配置为执行向上述网站请求消息对应的网站发送上述请求测试消息,并根据上述网站对上述请求测试消息的响应信息验证上述网站的安全性。

  作为一种实施例,信息解析单元801具体被配置为执行:

  识别上述网站请求信息中目标信息对的参数信息的参数格式;

  基于识别的参数格式对应的解析规则,对上述目标信息对中的参数信息进行解析操作。

  作为一种实施例,信息解析单元801具体被配置为执行:

  按照预设的参数格式的优先级,依次将预设的参数格式与目标信息对中的参数信息的格式进行匹配;以及

  将与目标信息对中的参数信息的格式匹配成功的预设的参数格式,确定为目标信息对中参数信息的参数格式。

  作为一种实施例,信息解析单元801具体被配置为执行:

  从上述至少两个解析规则中确定目标解析规则,按照目标解析规则对上述目标信息对中的参数信息进行解析操作。

  作为一种实施例,信息解析单元801还被配置为执行:

  按照目标解析规则对上述目标信息对中的参数信息进行解析操作之后,若进行解析得到的信息对中仍有目标信息对,则从上述至少两个解析规则中未选择的解析规则中重新确定目标解析规则,按照重新确定的目标解析规则对上述目标信息对中的参数信息进行解析操作,至解析得到的信息对中没有目标信息对。

  作为一种实施例,信息解析单元801具体被配置为执行:

  从上述至少两个解析规则中确定第N优先级的解析规则为目标解析规则,若使用第N优先级的解析规则解析失败,则确定第(N-1)优先级的解析规则为目标解析规则,其中,N为大于等于1的自然数,第N优先级高于第(N-1)优先级;或

  从上述至少两个解析规则中随机选择一个解析规则确定为目标解析规则。

  作为一种实施例,上述识别的参数格式包括json格式,信息解析单元801具体被配置为执行:

  利用目标解析规则中的第一解析格式,提取与目标解析规则对应的信息对中的参数标识,以及

  利用目标解析规则中的第二解析格式,提取与目标解析规则对应的信息对中的参数信息。

  作为一种实施例,信息转换单元具体802被配置为执行:

  确定上述解析得到的基础信息对中与安全测试目标对应的基础信息对;

  对上述与安全测试目标对应的基础信息对进行转换处理,得到上述网站请求消息对应的请求测试消息。

  作为一种实施例,信息转换单元802具体被配置为执行:

  将上述解析得到的基础信息对中的参数信息替换为第一测试信息,得到上述网站请求消息对应的请求测试消息;和/或

  在上述解析得到的基础信息对中添加第二测试信息,得到上述网站请求消息对应的请求测试消息。

  如图9所示,本公开提供一种电子设备900,包括处理器901、用于存储上述处理器可执行指令的存储器902;

  其中,上述处理器901被配置为执行如上述任一种网站安全测试方法的过程。

  在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由上述电子设备的处理器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,上述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

  本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

  应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

《一种网站安全测试方法、装置、电子设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)