CN113961926A - 一种越权漏洞检测方法、装置、电子设备及介质 - Google Patents
一种越权漏洞检测方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113961926A CN113961926A CN202111078831.7A CN202111078831A CN113961926A CN 113961926 A CN113961926 A CN 113961926A CN 202111078831 A CN202111078831 A CN 202111078831A CN 113961926 A CN113961926 A CN 113961926A
- Authority
- CN
- China
- Prior art keywords
- user
- database
- interface
- operation request
- probe
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种越权漏洞检测方法、装置、电子设备及介质,其中,根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。本发明通过设置数据库探针,对接口的执行语句进行是否相同的判断,提高越权漏洞检测的准确率。
Description
技术领域
本发明涉及数据安全领域,特别是涉及一种越权漏洞检测方法、装置、电子设备及介质。
背景技术
黑盒扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。现有技术中,黑盒工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型、开发端口、提供的服务等敏感信息。
越权漏洞是我们在测试过程中遇到比较多的漏洞,我们可以这样来理解越权漏洞,一个用户A一般只能够对自己本身的信息进行增删改查,然而由于后台开发人员的疏忽,没有在信息进行增、删、改、查等时候进行用户判断,从而导致用户A可以对其他用户进行增、删、改、查等等操作。
现有技术中,黑盒扫描器只能使用两个不同登录态的账户,重放同一个请求,根据请求的返回是否相同来判断,这种情况下的漏报、误报率非常高。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种越权漏洞检测方法、装置、电子设备及介质,用于解决现有技术中越权检测的准确率低的问题。
为实现上述目的及其他相关目的,本发明提供一种越权漏洞检测方法,包括根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。
在一些实施例中,在令所述数据库探针记录所述第一执行语句后,令所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,根据所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
在一些实施例中,所述数据库探针在记录所述第一执行语句时,同时记录所述接口执行所述第一操作请求的第一接口参数;所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,根据所述第一接口参数以及所述第二用户的所述身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口;所述数据库探针在记录所述第二执行语句时,同时记录所述接口执行所述第二操作请求的第二接口参数;其中,所述第一接口参数与所述第二接口参数相同。
在一些实施例中,预设所述第一数据库表和所述用户表的映射关系;所述对所述第一数据库表与预设的用户表的关联关系进行判断的步骤还包括:根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。
在一些实施例中,当所述数据库探针判断所述第一数据库表与所述用户表不存在所述关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测方法。
在一些实施例中,所述第一操作请求和所述第二操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。
为实现上述目的及其他相关目的,本发明还提供一种越权漏洞检测装置,包括:第一请求发送模块,用以根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;第一记录模块,用以令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;第二请求发送模块,用以根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;第二记录模块,用以令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;漏洞判断模块,用以当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。
在一些实施例中,还包括关系判断模块,用以在所述第一记录模块令所述数据库探针记录所述第一执行语句后,令所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,令所述第二请求发送模块根据所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
在一些实施例中,所述第一记录模块在令所述数据库探针记录所述第一执行语句时,同时记录所述接口执行所述第一操作请求的第一接口参数;所述第二请求发送模块根据所述第一接口参数以及所述第二用户的所述身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口;所述第二记录模块在令所述数据库探针记录所述第二执行语句时,同时记录所述接口执行所述第二操作请求的第二接口参数;其中,所述第一接口参数与所述第二接口参数相同。
在一些实施例中,所述装置还包括预设模块,用以预设所述第一数据库表和所述用户表的映射关系;所述关系判断模块还用以根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。
在一些实施例中,所述关系判断模块还用以在所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测装置的运行。
为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上中任一项所述越权漏洞检测方法。为实现上述目的及其他相关目的,本发明还提供一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如上任一项所述越权漏洞检测方法。
如上所述,本发明提供一种越权漏洞检测方法、装置、电子设备及介质,其中,根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。本发明通过设置数据库探针,对接口的执行语句进行是否相同的判断,提高越权漏洞检测的准确率。
附图说明
图1显示为本发明的越权漏洞检测方法在一具体实施例中的流程示意图。
图2显示为本发明的越权漏洞检测方法在一具体实施例中的流程示意图。
图3显示为本发明的一具体实施例中越权漏洞检测流程示意图。
图4显示为本发明的越权漏洞检测装置在一具体实施例中的组成示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变.下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定.这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一预设阈值可以被称作第二预设阈值,并且类似地,第二预设阈值可以被称作第一预设阈值,而不脱离各种所描述的实施例的范围。第一预设阈值和预设阈值均是在描述一个阈值,但是除非上下文以其他方式明确指出,否则它们不是同一个预设阈值。相似的情况还包括第一音量与第二音量。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加.此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
以下将以具体的实施例对本申请的技术方案进行详细说明。以下几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
现有技术中,黑盒扫描器只能使用两个不同登录态的账户,重放同一个请求,根据请求的返回是否相同来判断是否存在越权漏洞,其中,请求的返回相同时,判断存在越权漏洞。这种越权漏报率和误报率非常高,例如,对于公开的网络资源,任意用户请求的返回都相同,但是扫描器会因为请求返回相同认为是越权漏洞,这种检测结果显然是一种误报。
现有的黑盒扫描器,在一些情况下,也会产生漏报的结果,例如,在普通的黑盒扫描器中,扫描器收集test1和test7两个用户的登录态,即获取test1和test7两个用户的用户ID,使用test1用户登录态发送请求,然后使用test7用户登录态按test1用户发送的请求的参数重放请求。具体的,当test1用户发送取消订单的请求后,后台执行的SQL语句类似:update order_table set status=0where id=143and status=1;
这里SQL语句的意思是当143号订单状态为生效时,即status=1时,更新订单状态为取消,即status=0。
当扫描器使用test7用户的登录态,按test1用户发送的请求的参数重放请求时,如果后台没有对用户权限进行检查,存在越权漏洞,那么后台执行的SQL语句仍然为:update order_table set status=0where id=143and status=1;其中,test1用户发送的请求的参数包括订单号143。
此时因为test1发送取消订单的请求后,status的状态已经置为0,所以语句执行不成功,扫描器使用test7用户的登录态发送订单取消请求的返回和与扫描器使用test1用户的登录态发送订单取消请求的返回不一样,黑盒扫描器会判断不存在越权漏洞,就会导致漏洞没有被发现。
为了解决现有技术中,黑盒扫描器对越权漏洞检测的不准确的问题,本申请提供一种越权漏洞检测方法,具体的参阅如下描述。
请参阅图1,显示为本发明的越权漏洞检测方法在一具体实施例中的流程示意图。
所述越权漏洞检测方法S1包括:
S11:根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;所述身份信息例如包括用户的ID信息。其中,所述第一操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。所述接口可以指软件不同部分之间的交互接口,也可以指人与软件之间的交互界面。
S12:令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;
S13:根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;
S14:令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;
S15:当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。
即方法S1实现在数据库探针中对执行语句的比较,以判断是否存在越权漏洞。其中,所述第一操作请求和所述第二操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。
在一些实施例中,通过扫描器发送所述送第一操作请求至接口,且通过所述扫描器发送所述第二操作请求至接口。所述扫描器为漏洞扫描器,例如包括黑盒扫描器、白盒扫描器以及灰盒扫描器。其中,所述黑盒扫描器用以对暴露的接口进行漏洞检测,白盒扫描器用以对源代码的漏洞进行检测,灰盒扫描器,既可以对源代码的漏洞进行检测,也可以对暴露的接口进行检测。
在一些实施例中,所述数据库探针记录所述接口执行所述第一操作请求的第一执行语句后,令所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,根据所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
在一些实施例中,所述数据库探针在记录所述第一执行语句时,同时记录所述接口执行所述第一操作请求的第一接口参数。
所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,根据所述第一接口参数以及所述第二用户的所述身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
所述数据库探针在记录所述第二执行语句时,同时记录所述接口执行所述第二操作请求的第二接口参数;其中,所述第一接口参数与所述第二接口参数相同。
在一些实施例中,预设所述第一数据库表和所述用户表的映射关系;所述对所述第一数据库表与预设的用户表的关联关系进行判断的步骤还包括:根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。
当所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测方法。
现以漏洞扫描器为黑盒扫描器对所述越权漏洞检测方法进行进一步的说明,具体的参阅图2所示,图2显示为本发明的越权漏洞检测方法在一具体实施例中的流程示意图。在具体应用中,所述漏洞扫描器还可以为白盒扫描器或灰盒扫描器。
具体的,所述越权漏洞检测方法S2包括:
S21:黑盒扫描器根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;所述身份信息例如包括用户的ID信息。其中,所述第一操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。所述接口可以指软件不同部分之间的交互接口,也可以指人与软件之间的交互界面。
S22:数据库探针记录所述接口执行所述第一操作请求的第一执行语句以及第一接口参数;
S23:所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测方法S1。
在一些实施例中,预设所述第一数据库表和所述用户表的映射关系;所述对所述第一数据库表与预设的用户表的关联关系进行判断的步骤还包括:根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。其中,所述映射关系包括外键的关系,具体的,在一些实施例中,所述第一数据库表和所述用户表存在外键的关系时,判断所述第一数据库表与所述用户表存在关联关系。具体的,如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。一张表中可以有多个外键。外键的默认作用有两点:
1、对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败。
2、对父表的作用:对父表的主键字段进行删和改时,如果对应的主键在子表中被引用,操作就会失败。
数据库表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。在具体应用中,所述第一数据库表可为一系列二维数组的集合,用来代表和储存数据对象之间的关系。所述数据库表可为订单表,包含订单数据。
S24:当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,令所述黑盒扫描器根据所述第一接口参数以及第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;即可保证数据库探针获取接口执行所述第二操作请求的第二接口参数时,所述第二接口参数与所述第一接口参数相同。
S25:所述数据库探针记录所述接口执行所述第二操作请求的第二接口参数以及第二执行语句;
S26:当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞,且结束所述越权漏洞检测方法S2。当所述数据库探针判断所述第一执行语句和所述第二执行语句不相同时,判断不存在越权漏洞,且结束所述越权漏洞检测方法S2。
其中,所述第一执行语句和所述第二执行语句为SQL语句,SQL语句就是对数据库进行操作的一种语言,SQL(Structured Query Language,结构化查询语言),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
在本申请中,在对接口执行语句进行判断之前,先对第一数据库表和所述用户表的关系进行判断,当两者不存在预设的映射关系时,判断不存在越权漏洞,例如,对于公共资源的访问,第一数据库表和用户表之间不存在关联关系,亦不执行后续的步骤S24~步骤S26,而判断不存在越权漏洞,即使多个用户对于公共资源的访问,返回结果相同,亦不会判断为越权漏洞,防止越权漏洞的误报。
当所述第一数据库表和所述用户表两者间存在预设的映射关系时,继续对接口的执行语句是否相同进行判断,当接口执行的语句相同时,判断存在越权漏洞,即本申请中,不对接口执行语句的返回信息进行判断,而是对接口的执行语句进行判断。防止对执行的语句相同,而对执行的语句的返回信息不同时的越权漏洞情况,产生漏检的现象。
本申请的越权漏洞检测方法S2可以有效的提高越权漏洞的检测准确率,降低越权检测的误检和漏检的概率。
进一步的参阅图3,显示为本发明的一具体实施例中越权漏洞检测流程示意图。在图3实施例中,以漏洞扫描器为黑盒扫描器,以所述第一操作请求为订单取消请求为例进行说明。
开始时,黑盒扫描器收集用户1和用户2的登录态,即收集包括用户1的ID和用户2的ID在内的信息。如图2所示,本实施例中,用户1为token1,用户2为token2。
然后使用用户1的登录态发送请求,并将接口数据发送给数据库探针。
比如在本实施例中,当用户1发送订单取消请求后,后台执行的SQL语句例如为:update order_table set status=0where id=143and status=1;这里SQL语句的意思是当143号订单状态为生效时,即status=1时,更新订单状态为取消,即status=0。
数据库探针记录执行的语句update order_table set status=0where id=143and status=1;以及此时的第一接口参数内容;第一接口参数内容例如包括订单号143。
数据库探针记录SQL语句后,扫描SQL语句,挖掘出SQL语句对应的数据库表order_table,通过对数据库关系的挖掘,当发现order_table表(第一数据库表)和user表(用户表)存在外键的关系时,可以确定order_table表和user表存在关联关系。
然后数据库探针因为确定了order_table表和user表存在关联关系,所以通知黑盒扫描器重放用户2的请求,根据用户2的登录态和用户1请求时候参数构建请求报文发送请求,即根据用户2的登录态和用户1发送订单取消请求时候的所述第一接口参数构建关于用户2的订单取消请求的报文,并将报文发送至所述接口。
关于用户2的订单取消请求发送后,数据库探针仍然记录到接口和执行到SQL语句为:update order_table set status=0where id=143and status=1;即此时的接口执行语句与用户1发送订单取消请求时,接口的执行语句相同,此时因为用户1和用户2在后台执行了相同的数据库语句,可以确定存在越权漏洞,通知黑盒扫描器可能存在越权漏洞。
即本实施例中,不对执行语句的反馈结果进行判断,而是对执行语句本身进行判断,可以防止,对执行的语句相同,而对执行的语句的返回信息不同时的越权漏洞情况,产生漏检的现象。提高越权漏洞检测的准确率。
参阅图4,显示为本发明的越权漏洞检测装置在一具体实施例中的组成示意图。所述越权漏洞检测装置100,包括:第一请求发送模块101、第一记录模块102、第二请求发送模块103、第二记录模块104以及漏洞判断模块105。
所述第一请求发送模块101,用以根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;所述第一操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。所述接口可以指软件不同部分之间的交互接口,也可以指人与软件之间的交互界面。
所述第一记录模块102,用以令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;
所述第二请求发送模块103,用以根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;
所述第二记录模块104,令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;
所述漏洞判断模块105,用以当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。
在一些实施例中,通过扫描器发所述送第一操作请求至接口,且通过所述扫描器发送第二操作请求至接口。所述扫描器为漏洞扫描器,例如包括黑盒扫描器、白盒扫描器以及灰盒扫描器。其中,所述黑盒扫描器用以对暴露的接口进行漏洞检测,白盒扫描器用以对源代码的漏洞进行检测,灰盒扫描器,既可以对源代码的漏洞进行检测,也可以对暴露的接口进行检测。
在一些实施例中,还包括关系判断模块,用以在所述第一记录模块令所述数据库探针记录所述第一执行语句后,令所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,令所述第二请求发送模块根据所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
具体的,所述第一记录模块102在令所述数据库探针记录所述第一执行语句时,同时记录所述接口执行所述第一操作请求的第一接口参数;所述第二请求发送模块103根据所述第一接口参数以及所述第二用户的所述身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口;所述第二记录模块104在令所述数据库探针记录所述第二执行语句时,同时记录所述接口执行所述第二操作请求的第二接口参数;其中,所述第一接口参数与所述第二接口参数相同。
在一些实施例中,所述装置100还包括预设模块,用以预设所述第一数据库表和所述用户表的映射关系;所述关系判断模块还用以根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在所述关联关系。所述关系判断模块还用以在所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测装置的运行。
以下,以漏洞扫描器为黑盒扫描器为例对所述越权漏洞检测装置100进行进一步的说明。其中,在一些实施例中,所述黑盒扫描器和所述数据库探针可以部署于同一个电子设备中,在另一些实施例中,所述黑盒扫描器和所述数据库探针可以部署于不同的电子设备中。
具体的,所述黑盒扫描器根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;所述身份信息例如包括用户的ID信息。其中,所述第一操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。
所述数据库探针记录所述接口执行所述第一操作请求的第一执行语句以及第一接口参数;
所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测装置100的执行。
在一些实施例中,所述数据库探针预设所述第一数据库表和所述用户表的映射关系;所述对所述第一数据库表与预设的用户表的关联关系进行判断的步骤还包括:根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。其中,所述映射关系包括外键的关系,具体的,在一些实施例中,所述第一数据库表和所述用户表存在外键的关系时,判断所述第一数据库表与所述用户表存在关联关系。
具体的,如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。一张表中可以有多个外键。外键的默认作用有两点:
1、对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败。
2、对父表的作用:对父表的主键字段进行删和改时,如果对应的主键在子表中被引用,操作就会失败。
数据库表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。在具体应用中,所述第一数据库表可为一系列二维数组的集合,用来代表和储存数据对象之间的关系。所述数据库表可为订单表,包含订单数据。
当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,令所述黑盒扫描器根据所述第一接口参数以及第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;即可保证数据库探针获取接口执行所述第二操作请求的第二接口参数时,所述第二接口参数与所述第一接口参数相同。
所述数据库探针记录所述接口执行所述第二操作请求的第二接口参数以及第二执行语句;
当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞,且结束所述越权漏洞检测装置100的执行;当所述数据库探针判断所述第一执行语句和所述第二执行语句不相同时,判断不存在越权漏洞,且结束所述越权漏洞检测装置100。
其中,所述第一执行语句和所述第二执行语句为SQL语句,SQL语句就是对数据库进行操作的一种语言,SQL(Structured Query Language,结构化查询语言),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
在本申请中,在对接口执行语句进行判断之前,先对第一数据库表和所述用户表的关系进行判断,当两者不存在预设的映射关系时,判断不存在越权漏洞,例如,对于公共资源的访问,第一数据库表和用户表之间不存在关联关系,所述数据库探针102亦不执行后续的请求重发以及执行语句比较的步骤,而判断不存在越权漏洞,即使多个用户对于公共资源的访问,返回结果相同,亦不会判断为越权漏洞,防止越权漏洞的误报。
当所述第一数据库表和所述用户表两者间存在预设的映射关系时,所述数据库探针102继续对接口的执行语句是否相同进行判断,当接口执行的语句相同时,判断存在越权漏洞,即本申请中,不对接口执行语句的返回信息进行判断,而是对接口的执行语句进行判断。防止对执行的语句相同,而对执行的语句的返回信息不同时的越权漏洞情况,产生漏检的现象。
本申请的越权漏洞检测装置100可以有效的提高越权漏洞的检测准确率,降低越权检测的误检和漏检的概率。
进一步的参阅图3,显示为本发明的一具体实施例中越权漏洞检测流程示意图。在图3实施例中,以漏洞扫描器为黑盒扫描器,以所述第一操作请求为订单取消请求为例进行说明。
开始时,黑盒扫描器收集用户1和用户2的登录态,即收集包括用户1的ID和用户2的ID在内的信息。如图2所示,本实施例中,用户1为token1,用户2为token2。
然后使用用户1的登录态发送请求,并将接口数据发送给数据库探针。
比如在本实施例中,当用户1发送订单取消请求后,后台执行的SQL语句例如为:update order_table set status=0where id=143and status=1;这里SQL语句的意思是当143号订单状态为生效时,即status=1时,更新订单状态为取消,即status=0。
数据库探针记录执行的语句update order_table set status=0where id=143and status=1;以及此时的第一接口参数内容;第一接口参数内容例如包括订单号143。
数据库探针记录SQL语句后,扫描SQL语句,挖掘出SQL语句对应的数据库表order_table,通过对数据库关系的挖掘,当发现order_table表(第一数据库表)和user表(用户表)存在外键的关系时,可以确定order_table表和user表存在关联关系。
然后数据库探针因为确定了order_table表和user表存在关联关系,所以通知黑盒扫描器重放用户2的请求,根据用户2的登录态和用户1请求时候参数构建请求报文发送请求,即根据用户2的登录态和用户1发送订单取消请求时候的所述第一接口参数构建关于用户2的订单取消请求的报文,并将报文发送至所述接口。
关于用户2的订单取消请求发送后,数据库探针仍然记录到接口和执行到SQL语句为:update order_table set status=0where id=143and status=1;即此时的接口执行语句与用户1发送订单取消请求时,接口的执行语句相同,此时因为用户1和用户2在后台执行了相同的数据库语句,可以确定存在越权漏洞,通知黑盒扫描器可能存在越权漏洞。
即本实施例中,不对执行语句的反馈结果进行判断,而是对执行语句本身进行判断,可以防止,对执行的语句相同,而对执行的语句的返回信息不同时的越权漏洞情况,产生漏检的现象。提高越权漏洞检测的准确率。
本发明一具体实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述越权漏洞检测方法S1,所述越权漏洞检测方法S1参阅图1及关于图1的相关描述。本发明一具体实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述越权漏洞检测方法S2,所述越权漏洞检测方法S2参阅图2及关于图2的相关描述。
本发明的一具体实施例中,还提供一种电子设备,该电子设备包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述越权漏洞检测方法S1,所述越权漏洞检测方法S1参阅图1及关于图1的相关描述。
在另一些实施例中,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述越权漏洞检测方法S2,所述越权漏洞检测方法S2参阅图2及关于图2的相关描述。
所述电子设备例如为包括但不限于台式电脑、手持电脑、平板电脑、移动电话、智能手机、媒体播放器、个人数字助理(PDA)等等电子设备,应当理解,本申请的实施方式中描述的电子设备只是一个应用实例,该设备的组件可以比图示具有更多或更少的组件,或具有不同的组件配置。所绘制图示的各种组件可以用硬件、软件或软硬件的组合来实现,包括一个或多个信号处理和/或专用集成电路。
所述电子设备包括存储器、存储器控制器、一个或多个处理器(CPU)、外设接口、RF电路、音频电路、扬声器、麦克风、输入/输出(I/O)子系统、触摸屏、其他输出或控制设备,以及外部端口。这些组件通过一条或多条通信总线或信号线进行通信。所述电子设备还包括用于为各种组件供电的电源系统。该电源系统可以包括电源管理系统、一个或多个电源(例如电池、交流电(AC))、充电系统、电源故障检测电路、电源转换器或逆变器、电源状态指示器(例如发光二极管(LED)),以及与便携式设备中的电能生成、管理和分布相关联的其他任何组件。
所述电子设备支持各种应用程序,诸如以下各项中的一者或多者:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身支持应用程序、照片管理应用程序、数字相机应用程序、数字视频摄像机应用程序、网页浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
所述存储器可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
所述处理器可操作地与存储器和/或非易失性存储设备耦接。更具体地,处理器可执行在存储器和/或非易失性存储设备中存储的指令以在计算设备中执行操作,诸如生成图像数据和/或将图像数据传输到电子显示器。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个现场可编程逻辑阵列(FPGA)、或它们的任何组合。
综上所述,本发明提供一种越权漏洞检测方法、装置、电子设备及介质,其中,根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。本发明通过设置数据库探针,对接口的执行语句进行是否相同的判断,提高越权漏洞检测的准确率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (13)
1.一种越权漏洞检测方法,其特征在于,包括:
根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;
令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;
根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;
令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;
当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。
2.根据权利要求1所述的越权漏洞检测方法,其特征在于,
在令所述数据库探针记录所述第一执行语句后,令所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;
当所述数据库探针判断所述第一数据库表与所述用户表存在所述关联关系时,根据所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
3.根据权利要求2所述的越权漏洞检测方法,其特征在于,
所述数据库探针在记录所述第一执行语句时,同时记录所述接口执行所述第一操作请求的第一接口参数;
所述数据库探针判断所述第一数据库表与所述用户表存在所述关联关系时,根据所述第一接口参数以及所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口;
所述数据库探针在记录所述第二执行语句时,同时记录所述接口执行所述第二操作请求的第二接口参数;其中,所述第一接口参数与所述第二接口参数相同。
4.根据权利要求2所述的越权漏洞检测方法,其特征在于,预设所述第一数据库表和所述用户表的映射关系;所述对所述第一数据库表与预设的用户表的关联关系进行判断的步骤还包括:根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。
5.根据权利要求2所述的越权漏洞检测方法,其特征在于,当所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测方法。
6.根据权利要求1所述的越权漏洞检测方法,其特征在于,所述第一操作请求和所述第二操作请求包括以下中的至少一种:订单取消请求、订单修改请求、订单查询请求以及网页查询请求。
7.一种越权漏洞检测装置,其特征在于,包括:
第一请求发送模块,用以根据第一用户的身份信息生成关于所述第一用户的第一操作请求,并发送所述第一操作请求至接口;
第一记录模块,用以令数据库探针记录所述接口执行所述第一操作请求的第一执行语句;
第二请求发送模块,用以根据第二用户的身份信息生成关于所述第二用户的第二操作请求,并将所述第二操作请求发送至所述接口;
第二记录模块,用以令所述数据库探针记录所述接口执行所述第二操作请求的第二执行语句;
漏洞判断模块,用以当所述数据库探针判断所述第一执行语句和所述第二执行语句相同时,判断存在越权漏洞。
8.根据权利要求7所述的越权漏洞检测装置,其特征在于,还包括关系判断模块,用以在所述第一记录模块令所述数据库探针记录所述第一执行语句后,令所述数据库探针查询关于所述第一执行语句的第一数据库表,且对所述第一数据库表与预设的用户表的关联关系进行判断;当所述数据库探针判断所述第一数据库表与所述用户表存在关联关系时,令所述第二请求发送模块根据所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口。
9.根据权利要求8所述的越权漏洞检测装置,其特征在于,
所述第一记录模块在令所述数据库探针记录所述第一执行语句时,同时记录所述接口执行所述第一操作请求的第一接口参数;
所述第二请求发送模块根据所述第一接口参数以及所述第二用户的身份信息生成关于所述第二用户的所述第二操作请求,并将所述第二操作请求发送至所述接口;
所述第二记录模块在令所述数据库探针记录所述第二执行语句时,同时记录所述接口执行所述第二操作请求的第二接口参数;其中,所述第一接口参数与所述第二接口参数相同。
10.根据权利要求8所述的越权漏洞检测装置,其特征在于,所述装置还包括预设模块,用以预设所述第一数据库表和所述用户表的映射关系;所述关系判断模块还用以根据所述映射关系对所述第一数据库表与所述用户表的关联关系进行判断;其中,当所述第一数据库表和所述用户表符合所述映射关系时,判断所述第一数据库表与所述用户表存在关联关系。
11.根据权利要求8所述的越权漏洞检测装置,其特征在于,所述关系判断模块还用以在所述数据库探针判断所述第一数据库表与所述用户表不存在关联关系时,判断不存在越权漏洞,且结束所述越权漏洞检测装置的运行。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至6中任一项所述越权漏洞检测方法。
13.一种电子设备,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至6中任一项所述越权漏洞检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111078831.7A CN113961926A (zh) | 2021-09-15 | 2021-09-15 | 一种越权漏洞检测方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111078831.7A CN113961926A (zh) | 2021-09-15 | 2021-09-15 | 一种越权漏洞检测方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961926A true CN113961926A (zh) | 2022-01-21 |
Family
ID=79461477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111078831.7A Pending CN113961926A (zh) | 2021-09-15 | 2021-09-15 | 一种越权漏洞检测方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961926A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115828256A (zh) * | 2022-11-04 | 2023-03-21 | 杭州孝道科技有限公司 | 一种越权与未授权逻辑漏洞检测方法 |
-
2021
- 2021-09-15 CN CN202111078831.7A patent/CN113961926A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115828256A (zh) * | 2022-11-04 | 2023-03-21 | 杭州孝道科技有限公司 | 一种越权与未授权逻辑漏洞检测方法 |
CN115828256B (zh) * | 2022-11-04 | 2023-08-29 | 杭州孝道科技有限公司 | 一种越权与未授权逻辑漏洞检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795257B (zh) | 处理多集群作业记录的方法、装置、设备及存储介质 | |
KR102310649B1 (ko) | 개인 식별 정보를 제거하기 위한 스크러버 | |
RU2358282C2 (ru) | Архитектура и система для обеспечения информированности о местоположении | |
EP2577523B1 (en) | Claim based content reputation service | |
RU2767143C2 (ru) | Управление принятием решений с использованием машинного обучения в случае оповещений, исходящих от систем текущего контроля | |
US10592470B2 (en) | Discovery of calling application for control of file hydration behavior | |
US10509641B2 (en) | Optimizing feature deployment based on usage pattern | |
WO2021189257A1 (zh) | 恶意进程的检测方法、装置、电子设备及存储介质 | |
US8296514B2 (en) | Automated correction of contentious storage virtualization configurations | |
CN111382206A (zh) | 一种数据存储方法及装置 | |
WO2023055469A1 (en) | Dynamic policy adjustment based on resource consumption | |
CN114117530B (zh) | 一种文件泄露检测方法及装置 | |
CN113961926A (zh) | 一种越权漏洞检测方法、装置、电子设备及介质 | |
US20230315741A1 (en) | Federation of data during query time in computing systems | |
US12026141B2 (en) | Data storage system conflict management | |
US20240028720A1 (en) | Secure block cloning on resilient file systems | |
CN111177141A (zh) | 利用MySQL并行复制恢复数据方法、设备及系统 | |
US11995131B2 (en) | Document management platform | |
CN115576978A (zh) | 一种业务处理请求的响应方法、装置、系统及介质 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
US20240289139A1 (en) | System and method for managing management controller embedded devices | |
US20240281453A1 (en) | System and method for using probabilistic data structure to synchronize data between a plurality of datasets | |
US11921859B2 (en) | System and method for managing device security during startup | |
US20230267025A1 (en) | Reproduction of graph data during query evaluation | |
US20210064510A1 (en) | Scalable incremental analysis using caller and callee summaries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |