一种越权访问漏洞测试方法与流程

文档序号:29689842发布日期:2022-04-16 11:03阅读:666来源:国知局
一种越权访问漏洞测试方法与流程

1.本发明涉及计算机数据安全技术领域,具体涉及一种越权访问漏洞测试方法。


背景技术:

2.在互联网业务系统运行过程中,需要设置每一用户的访问权限,使得每一用户仅能操作自己的数据信息,保证数据隔离以及权限隔离。但是由于在客户端的业务应用程序提交数据请求时,服务器端可能会忽略账户操作权限的判断,导致攻击者可以使用一个合法账户,即可对存在越权访问漏洞的其他账户的数据进行非法的操作,导致被攻击的账户无法使用或被消耗掉可用资源。
3.现有技术中,为应对越权访问漏洞的问题,技术人员可以使用越权访问漏洞扫描工具,例如burp suite,进行抓包操作,然后修改请求参数,对比接口返回报文结果来确定是否包含敏感信息,然后作用于其他可能存在缺陷的接口中,从而实现对web应用程序的一些常规越权访问漏洞的测试。但上述解决方案存在使用人员学习成本高,以及需要进行大量的重复工作,因而非常依赖安全测试人员的主观经验,由此造成较大的人力资源消耗,同时也存在操作步骤频繁复杂,检测效率低下与被测程序不贴合等弊端,尤其是无法进行大规模的越权访问漏洞检测和后续灵活维护。


技术实现要素:

4.本发明的目的在于提供一种越权访问漏洞测试方法。实现了可以高效的完成越权访问漏洞测试的任务,方法操作步骤简单、检测效率高、后续维护成本低、节省人力资源,能够实现大规模的越权访问漏洞的检测工作。
5.具体技术方案如下:
6.在本发明实施的第一方面,首先提供了一种越权访问漏洞测试方法,所述方法包括:
7.获取已经登录的第一账户的功能接口,作为第一测试接口;所述测试接口包含所述第一账户的第一登录信息;
8.使用接口测试工具,根据第二账户的第二登录信息修改所述第一登录信息,得到第二测试接口;
9.使用接口测试工具,通过所述第二测试接口对测试账户发起功能测试;所述测试账户为所述第一账户,或者,所述测试账户为所述第二账户;
10.若针对所述功能测试的返回结果为操作失败,则表示不存在越权访问漏洞,否则,表示存在越权访问漏洞。
11.可选地,所述获取已经登录的第一账户的功能接口,作为第一测试接口,包括:
12.通过全球广域网web浏览器登录第一账户;
13.打开web浏览器的开发者工具network,并且开启录制功能;
14.获取所述第一账户的所有可用的功能接口,作为第一测试接口。
15.可选地,所述第一测试接口的接口类型包括字典请求、控制器与动作controller and action、即时编译编程语言javascript、超文本标记语言html和模型请求中的一种或多种。
16.可选地,所述使用接口测试工具,根据第二账户的第二登录信息修改所述第一登录信息,得到第二测试接口,包括:
17.获取第二账户的第二登录信息的第一身份验证证明字段;
18.使用接口测试工具,将所述第一登录信息的第二身份验证证明字段替换为所述第一身份验证证明字段。
19.可选地,所述功能测试对应的数据操作包括增加数据、删除数据、修改数据和查看数据中的一种或多种。
20.可选地,所述第一账户和所述第二账户分别为同一父子账户中的两个子账户;所述第一账户和所述第二账户均不具有针对对方的数据的操作权限;所述测试账户为所述第二账户;
21.所述若针对所述功能测试的返回结果为操作失败,则表示不存在越权访问漏洞,否则,表示存在越权访问漏洞,包括:
22.若针对所述功能测试的返回结果为操作失败,则表示不存在横向数据越权访问漏洞,否则,表示存在横向数据越权访问漏洞。
23.可选地,所述第一账户和所述第二账户属于同一父子账户,且所述第一账户为父账户,所述第二账户为子账户;所述第一账户具有针对所述第二账户的数据的操作权限,所述第二账户不具有针对所述第一账户的数据的操作权限;所述测试账户为所述第一账户;
24.所述若针对所述功能测试的返回结果为操作失败,则表示不存在越权访问漏洞,否则,表示存在越权访问漏洞,包括:
25.若针对所述功能测试的返回结果为操作失败,则表示不存在纵向数据越权访问漏洞,否则,表示存在纵向数据越权访问漏洞。
26.可选地,所述第一账户和所述第二账户不属于同一父子账户;所述第一账户和所述第二账户均不具有针对对方的数据的操作权限;
27.所述若针对所述功能测试的返回结果为操作失败,则表示不存在越权访问漏洞,否则,表示存在越权访问漏洞,包括:
28.若针对所述功能测试的返回结果为操作失败,则表示不存在纵向数据越权访问漏洞,否则,表示存在纵向数据越权访问漏洞。
29.本发明实施例的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
30.存储器,用于存放计算机程序;
31.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的越权访问漏洞测试方法。
32.在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的越权访问漏洞测试方法。
33.在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计
算机上运行时,使得计算机执行上述任一所述的越权访问漏洞测试方法。
34.本发明实施例提供的一种越权访问漏洞测试方法,通过获取已经登录的第一账户的功能接口,作为第一测试接口;测试接口包含第一账户的第一登录信息;使用接口测试工具,根据第二账户的第二登录信息修改第一登录信息,得到第二测试接口;使用接口测试工具,通过第二测试接口对测试账户发起功能测试;测试账户为第一账户,或者,测试账户为第二账户;若针对功能测试的返回结果为操作失败,则表示不存在越权访问漏洞,否则,表示存在越权访问漏洞。以此,可以高效的完成越权访问漏洞测试的任务,操作步骤简单、检测效率高、后续维护成本低、节省人力资源,能够实现大规模的进行越权访问漏洞的检测工作。
附图说明
35.下面结合附图对本发明作进一步的说明。
36.图1为本发明实施例提供的一种越权访问漏洞测试方法的流程图;
37.图2为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
39.本发明实施例提供了一种越权访问漏洞测试方法。参见图1,图1为本发明实施例提供的一种越权访问漏洞测试方法的流程图,该方法可以包括以下步骤:
40.s101,获取已经登录的第一账户的功能接口,作为第一测试接口。
41.s102,使用接口测试工具,根据第二账户的第二登录信息修改第一登录信息,得到第二测试接口。
42.s103,使用接口测试工具,通过第二测试接口对测试账户发起功能测试。
43.s104,若针对功能测试的返回结果为操作失败,则表示不存在越权访问漏洞,否则,表示存在越权访问漏洞。
44.测试接口包含第一账户的第一登录信息。
45.测试账户为第一账户,或者,测试账户为第二账户。
46.基于本发明实施例提供的越权访问测试方法,可以高效的完成越权测试任务,操作步骤简单、检测效率高、后续维护成本低、节省人力资源,能够实现大规模的进行越权漏洞的检测工作。
47.一种实现方式中,本发明实施例中的接口测试工具可以为postman、restclient、jmeter、loadrunner、soapui等中的任一一种接口测试工具。将功能接口输入到测试工具,可以使用测试工具通过该功能接口发送功能操作的请求,并接收该请求的返回结果,进而实现对该功能接口的测试。
48.一种实现方式中,账户的功能接口可以包含用于登录该账户的登录信息。例如,登录信息可以为用于登录该账户的账户名称和登录密码。
49.一种实现方式中,可以通过第一账户和第二账户之间的关系确定测试账户为第一账户还是第二账户。
50.在一个实施例中,功能测试对应的数据操作包括增加数据、删除数据、修改数据和查看数据中的一种或多种。
51.一种实现方式中,用户可以通过账户的功能接口,对该账户的数据进行操作,具体为增加数据、删除数据、修改数据和查看数据,每一种操作都对应一个功能接口,也就是说,一个账户可以具有多个功能接口,实现不同的操作。
52.在一个实施例中,步骤s101包括:
53.步骤一,通过全球广域网web浏览器登录第一账户。
54.步骤二,打开web浏览器的开发者工具network,并且开启录制功能。
55.步骤三,获取第一账户的所有可用的功能接口,作为第一测试接口。
56.一种实现方式中,用户可以通过web浏览器登录第一账户,打开web浏览器中f12开发者工具network的录制功能,即可获取到第一账户的所有可用功能接口。
57.在一个实施例中,第一测试接口的接口类型包括字典请求、控制器与动作controller and action、即时编译编程语言javascript、超文本标记语言html和模型请求中的一种或多种。
58.一种实现方式中,不同的接口类型可以实现不同的操作功能。
59.在一个实施例中,步骤s102包括:
60.步骤一,获取第二账户的第二登录信息的第一身份验证证明字段。
61.步骤二,使用接口测试工具,将第一登录信息的第二身份验证证明字段替换为第一身份验证证明字段。
62.一种实现方式中,账户的登录信息可以包含用于身份验证的身份验证证明字段,通过身份验证证明字段可以确定账户的操作权限。
63.在一个实施例中,第一账户和第二账户分别为同一父子账户中的两个子账户,第一账户和第二账户均不具有针对对方的数据的操作权限,则测试账户为第二账户。
64.步骤s104具体为:
65.若针对功能测试的返回结果为操作失败,则表示不存在横向数据越权访问漏洞,否则,表示存在横向数据越权访问漏洞。
66.一种实现方式中,当第一账户和第二账户分别为同一父子账户中的两个子账户,则该两个子账户之间可能存在横向数据越权访问漏洞。通过获取第一账户的功能接口,并将该功能接口的身份验证证明字段修改为第二账户的身份验证证明字段,可以得到新的接口(上述第二测试接口)。若通过第二测试接口不可以对第二账户的数据进行操作,即可确定第二账户不存在横向数据越权访问漏洞。若通过第二测试接口可以对第二账户的数据进行操作,即可确定第二账户存在横向数据越权访问漏洞。使用相同的方法可以测试第一账户是否存在横向数据越权访问漏洞。
67.在一个实施例中,第一账户和第二账户属于同一父子账户,且第一账户为父账户,第二账户为子账户,第一账户具有针对第二账户的数据的操作权限,第二账户不具有针对第一账户的数据的操作权限,则测试账户为第一账户。
68.步骤s104具体为:
69.若针对功能测试的返回结果为操作失败,则表示不存在纵向数据越权访问漏洞,否则,表示存在纵向数据越权访问漏洞。
70.一种实现方式中,第一账户可能存在纵向数据越权访问漏洞。通过获取第一账户的功能接口,并将该功能接口的身份验证证明字段修改为第二账户的身份验证证明字段,可以得到新的接口(上述第二测试接口)。若通过第二测试接口不可以对第一账户的数据进行操作,即可确定第一账户不存在纵向数据越权访问漏洞。
71.在一个实施例中,第一账户和第二账户不属于同一父子账户,第一账户和第二账户均不具有针对对方的数据的操作权限,则测试账户为第二账户。
72.步骤s104具体为:
73.若针对功能测试的返回结果为操作失败,则表示不存在权益越权访问漏洞,否则,表示存在权益越权访问漏洞。
74.一种实现方式中,当第一账户和第二账户不属于同一父子账户,则该两个账户之间可能存在权益越权访问漏洞。通过获取第一账户的功能接口,并将该功能接口的身份验证证明字段修改为第二账户的身份验证证明字段,可以得到新的接口(上述第二测试接口)。若通过第二测试接口不可以对第二账户的数据进行操作,即可确定第二账户不存在权益越权访问漏洞。若通过第二测试接口可以对第二账户的数据进行操作,即可确定第二账户存在权益越权访问漏洞。使用相同的方法可以测试第一账户是否存在权益越权访问漏洞。
75.本发明实施例还提供了一种电子设备,如图2所示,包括处理器201、通信接口202、存储器203和通信总线204,其中,处理器201,通信接口202,存储器203通过通信总线204完成相互间的通信,
76.存储器203,用于存放计算机程序;
77.处理器201,用于执行存储器203上所存放的程序时,实现上述实施例中任一所述的越权访问漏洞测试方法。
78.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
79.通信接口用于上述电子设备与其他设备之间的通信。
80.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
81.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
82.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任
一所述的越权访问漏洞测试方法。
83.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的越权访问漏洞测试方法。
84.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
85.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
86.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
87.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1