WEB角色纵向越权漏洞的测试方法、系统、终端及存储介质与流程

文档序号:28741651发布日期:2022-02-07 22:17阅读:410来源:国知局
WEB角色纵向越权漏洞的测试方法、系统、终端及存储介质与流程
web角色纵向越权漏洞的测试方法、系统、终端及存储介质
技术领域
1.本发明涉及web安全维护技术领域,具体涉及一种web角色纵向越权漏洞的测试方法、系统、终端及存储介质。


背景技术:

2.随着软件系统的不断发展,多角色用户的需求也在越来越多的软件系统上实现,随之而来的出现了越来越多的web安全漏洞,其中纵向越权漏洞是开发者和测试者关注的安全问题。例如一个普通用户通过对接口的分析,可以直接访问管理员权限的资源。
3.现在有纵向越权测试方法:第一种为手动测试,即通过浏览器界面抓取到接口,然后修改请求中的鉴权信息(将管理员的鉴权信息修改为普通用户鉴权信息),发送该请求,判断该接口是否存在越权漏洞。这样的测试方法非常繁琐,需要大量的人力投入,而且特别容易出来漏测的现象,导致越权漏洞未被发现,影响产品安全。
4.第二种为半自动化测试,通过手动测试收集所有的接口,然后通过修改请求的鉴权信息,对比修改前及修改后的请求响应,判断是否存在越权。这种方式在以下几个方面存在劣势:不能完全自动化测试,需要大量的手动测试手机api,大大降低了测试效率;测试依赖于api手册文档,需要知道xx api接口xx角色有无权限的先提条件,依赖于文档,大大掣肘了自动化的范围及效率。


技术实现要素:

5.针对现有技术的上述不足,本发明提供一种web角色纵向越权漏洞的测试方法、系统、终端及存储介质,以解决上述技术问题。
6.第一方面,本发明提供一种web角色纵向越权漏洞的测试方法,包括:
7.通过角色用户登录web,从web的源码文件中定位角色用户的可操作界面,并定位所述可操作界面中的可操作元素;
8.通过自动化工具执行可操作元素以向web后端发送接口请求,通过抓包工具抓取后端对所述接口请求的响应消息,将接口请求和相应的响应消息保存至用户文件;
9.通过比对用户文件和管理员的请求与响应文件,生成角色用户的无权限操作列表,所述无权限操作列表存储角色用户的没有执行权限的接口;
10.基于角色用户的鉴权信息生成测试请求,所述测试请求访问所述无权限操作列表中的接口,如果访问结果与鉴权信息匹配则通过测试。
11.进一步的,通过角色用户登录web,从web的源码文件中定位角色用户的可操作界面,并定位所述可操作界面中的可操作元素,包括:
12.从所有角色用户中随机选取目标角色用户,直至遍历所有角色用户;
13.利用自动化工具模拟目标角色用户登录web,遍历web的所有可访问的前端源码文件,定位目标角色用户具有操作权限的可操作界面;
14.通过解析前端源码文件定位可操作界面内的可操作元素,所述可操作元素包括块
元素、行元素、按键和输入框。
15.进一步的,通过自动化工具执行可操作元素以向web后端发送接口请求,通过抓包工具抓取后端对所述接口请求的响应消息,将接口请求和相应的响应消息保存至用户文件,包括:
16.所述自动化工具对可操作元素进行显示检验,将正常显示的可操作性元素组成通配符,通过通配符进行操作定位和执行;
17.将接口请求及发送时间和响应消息及响应时间保持至用户文件。
18.进一步的,通过比对用户文件和管理员的请求与响应文件,生成角色用户的无权限操作列表,所述无权限操作列表存储角色用户的没有执行权限的接口,包括:
19.利用管理员用户登录web,并根据前端源码文件和自动化工具执行接口请求发送,将接口请求和相应的响应消息保存至管理员的请求与响应文件;
20.比对用户文件与管理员的请求与响应文件的一致性,将用户文件中不存在的,请求与响应文件中的接口请求作为目标接口请求筛选出来;
21.从目标接口请求解析出接口信息,将接口信息保存至无权限操作列表。
22.进一步的,基于角色用户的鉴权信息生成测试请求,所述测试请求访问所述无权限操作列表中的接口,如果访问结果与鉴权信息匹配则通过测试,包括:
23.通过请求库登录获取响应的鉴权信息,将鉴权信息保存至请求头部;
24.基于携带鉴权信息的请求头部向无权限操作列表中的接口发送接口请求;
25.获取响应与接口请求的状态码,判断所述状态码是否与鉴权信息匹配,如果两者匹配则判定测试通过。
26.第二方面,本发明提供一种web角色纵向越权漏洞的测试系统,包括:
27.信息解析单元,用于通过角色用户登录web,从web的源码文件中定位角色用户的可操作界面,并定位所述可操作界面中的可操作元素;
28.操作执行单元,用于通过自动化工具执行可操作元素以向web后端发送接口请求,通过抓包工具抓取后端对所述接口请求的响应消息,将接口请求和相应的响应消息保存至用户文件;
29.文件比对单元,用于通过比对用户文件和管理员的请求与响应文件,生成角色用户的无权限操作列表,所述无权限操作列表存储角色用户的没有执行权限的接口;
30.权限验证单元,用于基于角色用户的鉴权信息生成测试请求,所述测试请求访问所述无权限操作列表中的接口,如果访问结果与鉴权信息匹配则通过测试。
31.进一步的,所述信息解析单元用于:
32.从所有角色用户中随机选取目标角色用户,直至遍历所有角色用户;
33.利用自动化工具模拟目标角色用户登录web,遍历web的所有可访问的前端源码文件,定位目标角色用户具有操作权限的可操作界面;
34.通过解析前端源码文件定位可操作界面内的可操作元素,所述可操作元素包括块元素、行元素、按键和输入框。
35.进一步的,所述操作执行单元用于:
36.所述自动化工具对可操作元素进行显示检验,将正常显示的可操作性元素组成通配符,通过通配符进行操作定位和执行;
37.将接口请求及发送时间和响应消息及响应时间保持至用户文件。
38.进一步的,文件比对单元用于:
39.利用管理员用户登录web,并根据前端源码文件和自动化工具执行接口请求发送,将接口请求和相应的响应消息保存至管理员的请求与响应文件;
40.比对用户文件与管理员的请求与响应文件的一致性,将用户文件中不存在的,请求与响应文件中的接口请求作为目标接口请求筛选出来;
41.从目标接口请求解析出接口信息,将接口信息保存至无权限操作列表。
42.进一步的,权限验证单元用于:
43.通过请求库登录获取响应的鉴权信息,将鉴权信息保存至请求头部;
44.基于携带鉴权信息的请求头部向无权限操作列表中的接口发送接口请求;
45.获取响应与接口请求的状态码,判断所述状态码是否与鉴权信息匹配,如果两者匹配则判定测试通过。
46.第三方面,提供一种终端,包括:
47.处理器、存储器,其中,
48.该存储器用于存储计算机程序,
49.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
50.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
51.本发明的有益效果在于,本发明提供的web角色纵向越权漏洞的测试方法、系统、终端及存储介质,通过selenium遍历所有html源码文件,判断当前用户有无权限访问对应页面;通过解析html文件,识别所有的页面元素,通过selnium操作元素,收集所有的api请求信息文件;通过读取对于不同角色的api请求信息文件,识别出不同角色的对应的无权限访问的api列表,以便进行纵向越权的测试。本发明实现了多角色系统的纵向越权的全自动化测试方法,大大调高了测试效率,减少了大量的越权测试的人力投入,同时提高了越权测试的覆盖面,避免未发现的越权安全问题,提高了系统的安全性。
52.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
53.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
54.图1是本发明一个实施例的方法的示意性流程图。
55.图2是本发明一个实施例的系统的示意性框图。
56.图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
57.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施
例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
58.下面对本发明中出现的关键术语进行解释。
59.web,也称万维网(网址以www开头),是一种网络使用环境的总称。从网络使用环境的角度来看,web就是我们平常使用浏览器上网时所浏览的网页。从技术的角度来看,web技术包含网站网页的布局设计、代码编写、数据库建立、网络平台等相关技术。
60.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种web角色纵向越权漏洞的测试系统。
61.如图1所示,该方法包括:
62.步骤110,通过角色用户登录web,从web的源码文件中定位角色用户的可操作界面,并定位所述可操作界面中的可操作元素;
63.步骤120,通过自动化工具执行可操作元素以向web后端发送接口请求,通过抓包工具抓取后端对所述接口请求的响应消息,将接口请求和相应的响应消息保存至用户文件;
64.步骤130,通过比对用户文件和管理员的请求与响应文件,生成角色用户的无权限操作列表,所述无权限操作列表存储角色用户的没有执行权限的接口;
65.步骤140,基于角色用户的鉴权信息生成测试请求,所述测试请求访问所述无权限操作列表中的接口,如果访问结果与鉴权信息匹配则通过测试。
66.为了便于对本发明的理解,下面以本发明web角色纵向越权漏洞的测试方法的原理,结合实施例中对web角色纵向越权漏洞进行测试的过程,对本发明提供的web角色纵向越权漏洞的测试方法做进一步的描述。
67.具体的,所述web角色纵向越权漏洞的测试方法包括:
68.s1通过角色用户登录web,从web的源码文件中定位角色用户的可操作界面,并定位所述可操作界面中的可操作元素。
69.从所有角色用户中随机选取目标角色用户,直至遍历所有角色用户;利用自动化工具模拟目标角色用户登录web,遍历web的所有可访问的前端源码文件,定位目标角色用户具有操作权限的可操作界面;通过解析前端源码文件定位可操作界面内的可操作元素,所述可操作元素包括块元素、行元素、按键和输入框。
70.例如,用户使用selenium工具模拟使用者登入系统,打开一个html页面(selenium打开html的行为相当于跳转到html对应的前端页面),用户有权限访问的页面可以打开,无权限的则打开失败。打开成功的页面,解析html,获取到当前html对应的所有的可操作性元素。比如块元素div,行元素span,按键button,输入框input等。
71.s2通过自动化工具执行可操作元素以向web后端发送接口请求,通过抓包工具抓取后端对所述接口请求的响应消息,将接口请求和相应的响应消息保存至用户文件。
72.自动化工具对可操作元素进行显示检验,将正常显示的可操作性元素组成通配符,通过通配符进行操作定位和执行;将接口请求及发送时间和响应消息及响应时间保持至用户文件。
73.selenium对可操作元素进行检查,检查是否显示,是否灰置,判断当前元素是否可
以操作。通过selenium工具对定位的可操作元素进行操作,比如页面调换,数据提交,数据删除等。selenium操作页面元素的方法,通过步骤二中解析的元素,组成xpath(通配符),通过xpath进行定位,然后进行click(鼠标点击)等操作。在本地通过抓包工具(例如tcpdump等),对响应的http/https消息进行抓取,并且存储到文件。遍历所有的前端html源码文件,生成该角色的记录api的请求及响应的文件。
74.s3通过比对用户文件和管理员的请求与响应文件,生成角色用户的无权限操作列表,所述无权限操作列表存储角色用户的没有执行权限的接口。
75.利用管理员用户登录web,并根据前端源码文件和自动化工具执行接口请求发送,将接口请求和相应的响应消息保存至管理员的请求与响应文件;比对用户文件与管理员的请求与响应文件的一致性,将用户文件中不存在的,请求与响应文件中的接口请求作为目标接口请求筛选出来;从目标接口请求解析出接口信息,将接口信息保存至无权限操作列表。
76.使用每一种角色的用户,生成对应角色的记录api的请求及响应的文件。对比分析不同角色的文件,生成每种角色没有权限访问的api列表。对比角色1和管理员角色的文件,发现某api存在在管理员角色文件里,而不存在在角色1的文件里,则当前api为角色1无权访问的api。依次分析所有文件,生成所有角色对应的没有权限访问的api列表。
77.s4基于角色用户的鉴权信息生成测试请求,所述测试请求访问所述无权限操作列表中的接口,如果访问结果与鉴权信息匹配则通过测试。
78.通过请求库登录获取响应的鉴权信息,将鉴权信息保存至请求头部;基于携带鉴权信息的请求头部向无权限操作列表中的接口发送接口请求;获取响应与接口请求的状态码,判断所述状态码是否与鉴权信息匹配,如果两者匹配则判定测试通过。
79.使用python的request库进行登录,在响应中获取到token等鉴权信息,将鉴权信息存储到header中,以便使用session及header进行后续发送请求消息。登录后,依次发送请求消息到角色没有权限的api列表。检查请求响应的状态码是否符合预期(403forbidden)或者响应中的数据是否符合预期,从而测试当前角色的纵向越权情况。
80.如图2所示,该系统200包括:
81.信息解析单元210,用于通过角色用户登录web,从web的源码文件中定位角色用户的可操作界面,并定位所述可操作界面中的可操作元素;
82.操作执行单元220,用于通过自动化工具执行可操作元素以向web后端发送接口请求,通过抓包工具抓取后端对所述接口请求的响应消息,将接口请求和相应的响应消息保存至用户文件;
83.文件比对单元230,用于通过比对用户文件和管理员的请求与响应文件,生成角色用户的无权限操作列表,所述无权限操作列表存储角色用户的没有执行权限的接口;
84.权限验证单元240,用于基于角色用户的鉴权信息生成测试请求,所述测试请求访问所述无权限操作列表中的接口,如果访问结果与鉴权信息匹配则通过测试。
85.可选地,作为本发明一个实施例,信息解析单元用于:
86.从所有角色用户中随机选取目标角色用户,直至遍历所有角色用户;
87.利用自动化工具模拟目标角色用户登录web,遍历web的所有可访问的前端源码文件,定位目标角色用户具有操作权限的可操作界面;
88.通过解析前端源码文件定位可操作界面内的可操作元素,所述可操作元素包括块元素、行元素、按键和输入框。
89.可选地,作为本发明一个实施例,操作执行单元用于:
90.所述自动化工具对可操作元素进行显示检验,将正常显示的可操作性元素组成通配符,通过通配符进行操作定位和执行;
91.将接口请求及发送时间和响应消息及响应时间保持至用户文件。
92.可选地,作为本发明一个实施例,文件比对单元用于:
93.利用管理员用户登录web,并根据前端源码文件和自动化工具执行接口请求发送,将接口请求和相应的响应消息保存至管理员的请求与响应文件;
94.比对用户文件与管理员的请求与响应文件的一致性,将用户文件中不存在的,请求与响应文件中的接口请求作为目标接口请求筛选出来;
95.从目标接口请求解析出接口信息,将接口信息保存至无权限操作列表。
96.可选地,作为本发明一个实施例,权限验证单元用于:
97.通过请求库登录获取响应的鉴权信息,将鉴权信息保存至请求头部;
98.基于携带鉴权信息的请求头部向无权限操作列表中的接口发送接口请求;
99.获取响应与接口请求的状态码,判断所述状态码是否与鉴权信息匹配,如果两者匹配则判定测试通过。
100.图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的web角色纵向越权漏洞的测试方法。
101.其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
102.其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
103.处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
104.通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
105.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、
光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
106.因此,本发明通过selenium遍历所有html源码文件,判断当前用户有无权限访问对应页面;通过解析html文件,识别所有的页面元素,通过selnium操作元素,收集所有的api请求信息文件;通过读取对于不同角色的api请求信息文件,识别出不同角色的对应的无权限访问的api列表,以便进行纵向越权的测试。本发明实现了多角色系统的纵向越权的全自动化测试方法,大大调高了测试效率,减少了大量的越权测试的人力投入,同时提高了越权测试的覆盖面,避免未发现的越权安全问题,提高了系统的安全性,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
107.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
108.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
109.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
110.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
111.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
112.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1