基于fiddler的安全越权问题批量测试方法和装置与流程

文档序号:26139464发布日期:2021-08-03 14:23阅读:313来源:国知局
基于fiddler的安全越权问题批量测试方法和装置与流程

本发明涉及计算机应用技术领域,具体涉及一种基于fiddler的安全越权问题批量测试方法和装置。



背景技术:

越权漏洞是web应用程序中一种常见的安全漏洞。在项目的测试过程中,在完成基础功能测试后,为了确保一定级别的接口具备权限限制,以防止非权限相关人员操作该功能接口,杜绝越权漏洞,还需要对这些接口进行权限访问测试。

现有技术中的权限测试,有的是通过浏览器的开发工具,捕获接口的全部信息,再通过接口管理工具(postman,jmeter,或者公司内部自研的接口自动化工具)进行模拟验证;还有的是通过fiddler(fiddler是http调试抓包工具)在访问请求前打断点,替换身份认证信息后,释放请求,从而根据响应结果,验证权限是否验证通过。

现有技术通过先捕获接口,再通过接口管理工具进行模拟测试,前期需要消耗大量的人力进行编写和维护接口用例;此外,单接口逐一验证,接口数量多,执行时间常,效率很低;fiddler打断点抓包,采用现测现抓的方式,验证完毕后的数据无法利用,不利于接口的后期管理和回归测试。



技术实现要素:

有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于fiddler的安全越权问题批量测试方法和装置,以降低人力投入、提高越权检测的效率,并通过对测试数据进行保存,便于接口的后期管理和回归测试。

为实现以上目的,本发明采用如下技术方案:一种基于fiddler的安全越权问题批量测试方法,包括:

通过fiddler获取待测接口的接口信息;所述接口信息包括原始认证信息;

对测试例集的参数信息和公共越权接口的断言进行配置;

将配置后的参数信息批量替换掉待测接口的原始认证信息,得到替换后的认证信息;

按照特定的批次顺序,根据替换后的认证信息批量触发访问每个待测接口,以使待测接口执行访问请求;

获取服务器根据访问请求返回的响应数据,并将响应数据与断言内容进行比较;

当响应数据与断言内容相符时,判定该待测接口的测试结果为通过;否则,该待测接口的测试结果为不通过。

可选的,所述通过fiddler获取待测接口的接口信息,包括:

打开fiddler,并开启捕获开关,使所有接口的接口信息均能够被捕获;

根据实际需要访问并操作被测系统,筛选出待测接口,剔除无关接口,并获取所述待测接口的接口信息。

可选的,所述原始认证信息为:待测接口的原始cookie信息;

对测试例集的参数信息和公共越权接口的断言响应进行配置,包括:

将代表无权限访问者的认证信息填入到测试例集的参数配置中;以及,

配置公共越权接口的断言内容。

可选的,还包括:

对待测接口的接口信息进行存储,以便后期管理。

可选的,还包括:

根据待测接口的测试结果,以一定形式组合输出权限测试报告;

所述越权测试报告中还包括:该被测系统的权限测试结果;

其中,当越权测试报告中的所有待测接口的测试结果均为通过时,判定该被测系统的权限测试结果为通过;否则,判定被测系统的权限测试结果为不通过。

可选的,所述权限测试报告中包括:所有待测接口的测试明细信息;

所述待测接口的测试明细信息包括:待测接口的接口信息,测试例集及其对应的参数,和每个待测接口对应的测试结果。

本发明还提供了一种基于fiddler的安全越权问题批量测试装置,包括:

信息获取模块,用于通过fiddler获取待测接口的接口信息;所述接口信息包括原始认证信息;

配置模块,用于对测试例集的参数信息和公共越权接口的断言进行配置;

替换模块,用于将配置后的参数信息批量替换掉待测接口的原始认证信息,得到替换后的认证信息;

触发访问模块,用于按照特定的批次顺序,根据替换后的认证信息批量触发访问每个待测接口,以使待测接口执行访问请求;

比较模块,用于获取服务器根据访问请求返回的响应数据,并将响应数据与断言内容进行比较;

结果判定模块,用于当响应数据与断言内容相符时,判定该待测接口的测试结果为通过;否则,判定该待测接口的测试结果为不通过。

可选的,还包括:

存储模块,用于对待测接口的接口信息进行存储,以便后期管理。

可选的,还包括:

输出模块,用于根据待测接口的测试结果,以一定形式组合输出权限测试报告;

所述越权测试报告中还包括:该被测系统的权限测试结果;

其中,当越权测试报告中的所有待测接口的测试结果均为通过时,判定该被测系统的权限测试结果为通过;否则,判定被测系统的权限测试结果为不通过。

本发明采用以上技术方案,所述一种基于fiddler的安全越权问题批量测试方法,包括:通过fiddler获取待测接口的接口信息;所述接口信息包括原始认证信息;对测试例集的参数信息和公共越权接口的断言进行配置;将配置后的参数信息批量替换掉待测接口的原始认证信息,得到替换后的认证信息;按照特定的批次顺序,根据替换后的认证信息批量触发访问每个待测接口,以使待测接口执行访问请求;获取服务器根据访问请求返回的响应数据,并将响应数据与断言内容进行比较;当响应数据与断言内容相符时,判定该待测接口的测试结果为通过;否则,该待测接口的测试结果为不通过。本发明通过fiddler获取待测的接口信息,且对于不同接口本发明无需关注接口内容的变化,提高了测试效率;通过对测试例集的参数信息和公共越权接口的断言内容进行批量配置,并将配置后的参数信息批量替换掉待测接口的原始认证信息,简化了测试执行的配置操作,使测试者更简单便捷的进行测试操作,也提高了测试效率;通过对待测接口的接口信息进行存储,便于后续对接口进行管理和回归测试。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种基于fiddler的安全越权问题批量测试方法实施例一提供的流程示意图;

图2是本发明一种基于fiddler的安全越权问题批量测试方法实施例二提供的流程示意图;

图3是本发明一种基于fiddler的安全越权问题批量测试装置一个实施例提供的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

如果项目系统针对权限的接口处理方案一致,一般在接口的最外围进行权限限制,对于是否越权的结论判定就可以比较简单的进行实现。这也就意味着,权限测试的接口测试,可以不考虑接口的功能性逻辑,入参的参数化和合理性等信息,对于接口的响应数据的判断也很简单,这是本方案设计的可行性基础。

图1是本发明一种基于fiddler的安全越权问题批量测试方法实施例一提供的流程示意图。

如图1所示,本发明所述的一种基于fiddler的安全越权问题批量测试方法,包括:

步骤s11:通过fiddler获取待测接口的接口信息;所述接口信息包括原始认证信息;

进一步的,所述通过fiddler获取待测接口的接口信息,包括:

打开fiddler,并开启捕获开关,使所有接口的接口信息均能够被捕获;

根据实际需要访问并操作被测系统,筛选出待测接口,剔除无关接口,并获取所述待测接口的接口信息。

步骤s12:对测试例集的参数信息和公共越权接口的断言进行配置;

进一步的,所述原始认证信息可以为:待测接口的原始cookie信息;

对测试例集的参数信息和公共越权接口的断言响应进行配置,包括:

将代表无权限访问者的认证信息填入到测试例集的参数配置中;以及,

配置公共越权接口的断言内容。

步骤s13:将配置后的参数信息批量替换掉待测接口的原始认证信息,得到替换后的认证信息;

步骤s14:按照特定的批次顺序,根据替换后的认证信息批量触发访问每个待测接口,以使待测接口执行访问请求;

步骤s15:获取服务器根据访问请求返回的响应数据,并将响应数据与断言内容进行比较;

步骤s16:当响应数据与断言内容相符时,判定该待测接口的测试结果为通过;否则,该待测接口的测试结果为不通过。

进一步的,还包括:

对待测接口的接口信息进行存储,以便后期管理。

进一步的,还包括:

根据待测接口的测试结果,以一定形式组合输出权限测试报告;

所述越权测试报告中还包括:该被测系统的权限测试结果;

其中,当越权测试报告中的所有待测接口的测试结果均为通过时,判定该被测系统的权限测试结果为通过;否则,判定被测系统的权限测试结果为不通过。

进一步的,所述权限测试报告中包括:所有待测接口的测试明细信息;

所述待测接口的测试明细信息包括:待测接口的接口信息,测试例集及其对应的参数,和每个待测接口对应的测试结果。

如图2所示,为本发明所述的基于fiddler的安全越权问题批量测试方法的另一实施例,该实施例具体包括:

步骤s21:打开fiddler代理;

步骤s22:根据实际需要访问并操作被测系统,开启捕获开关,使得待测接口被捕获;其中,待测接口是被测系统上需要被测试的接口;通过fiddler捕获的方式,获取待测接口的接口数据,减少人为抄录的繁琐,且无需关注接口内容的调整,有利于提高测试效率;

步骤s23:筛选所需要的待测接口,剔除无关接口,并触发获取待测接口的接口信息;

步骤s24:步骤s23中的待测接口信息,以同一批次为单位进行存储,即将同一时间的所有待测接口的接口信息作为同一批次的数据进行存储;比如,批次1:接口(1……n);批次2:接口(1……n);

步骤s25:按批次,配置待测接口的参数信息,比如cookie信息,一般是将代表无权限访问者的认证信息填入到配置中,并且配置公共越权接口的响应断言,比如将断言返回的信息设为无权限;

步骤s26:将配置后的参数信息批量替换掉待测接口的原始认证信息(cookie信息),得到替换后的认证信息;批量替换所有待测接口中的固定信息,取代逐个替换,有利于提高测试效率;

步骤s27:通过触发执行逻辑,按照一定的批次顺序,批量触发每个待测接口;即利用替换后的认证信息批量触发访问每个待测接口,以使待测接口执行访问请求,服务器接收到访问请求后,会根据访问请求和该待测接口的权限返回响应数据;

步骤s28:获取服务器根据访问请求返回的响应数据,将每个接口的响应数据,根据断言内容进行判断;

步骤s29:如果返回的响应数据和断言的内容相符(比如,返回“无权限”的内容),则表明返回的响应数据与断言内容一致,则判定该待测接口的越权测试结果为通过,否则判定该待测接口的越权测试结果为不通过;

步骤s210:承接步骤s29,将测试结果,以一定形式组合输出权限测试报告,所述越权测试报告中还包括:该被测系统的权限测试结果;其中,当越权测试报告中的所有待测接口的测试结果均为通过时,判定该被测系统的权限测试结果为通过;否则,判定被测系统的权限测试结果为不通过。

需要说明的是,所有待测接口的测试结论,会以明细的形式告知测试者,以供排查。

本发明实施例通过fiddler获取待测的接口信息,取代人为逐个编写接口测试用例,提高了测试效率;通过对测试例集的参数信息和公共越权接口的断言内容进行批量配置,并将配置后的参数信息批量替换掉待测接口的原始认证信息,简化了测试执行的配置操作,使测试者更简单便捷的进行测试操作,也提高了测试效率;通过对待测接口的接口信息进行存储,便于后续对接口进行管理和回归测试。

图3是本发明一种基于fiddler的安全越权问题批量测试装置一个实施例提供的结构示意图。

如图3所示,本发明所述的一种基于fiddler的安全越权问题批量测试装置,包括:

信息获取模块31,用于通过fiddler获取待测接口的接口信息;所述接口信息包括原始认证信息;

配置模块32,用于对测试例集的参数信息和公共越权接口的断言进行配置;

替换模块33,用于将配置后的参数信息批量替换掉待测接口的原始认证信息,得到替换后的认证信息;

触发访问模块34,用于按照特定的批次顺序,根据替换后的认证信息批量触发访问每个待测接口,以使待测接口执行访问请求;

比较模块35,用于获取服务器根据访问请求返回的响应数据,并将响应数据与断言内容进行比较;

结果判定模块36,用于当响应数据与断言内容相符时,判定该待测接口的测试结果为通过;否则,判定该待测接口的测试结果为不通过。

进一步的,该装置还包括:

存储模块,用于对待测接口的接口信息进行存储,以便后期管理。

进一步的,该装置还包括:

输出模块,用于根据待测接口的测试结果,以一定形式组合输出权限测试报告;

所述越权测试报告中还包括:该被测系统的权限测试结果;

其中,当越权测试报告中的所有待测接口的测试结果均为通过时,判定该被测系统的权限测试结果为通过;否则,判定被测系统的权限测试结果为不通过

本实施例所述的一种基于fiddler的安全越权问题批量测试装置的工作原理与图1或图2所述的一种基于fiddler的安全越权问题批量测试方法的工作原理相同,在此不再赘述。

本发明实施例由信息获取模块31通过fiddler获取待测的接口信息,取代人为逐个编写接口测试用例,提高了测试效率;通过配置模块32对测试例集的参数信息和公共越权接口的断言内容进行批量配置,并由替换模块33将配置后的参数信息批量替换掉待测接口的原始认证信息,简化了测试执行的配置操作,使测试者更简单便捷的进行测试操作,也提高了测试效率;通过存储模块对待测接口的接口信息进行存储,便于后续对接口进行管理和回归测试。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1