CN115828256A - 一种越权与未授权逻辑漏洞检测方法 - Google Patents
一种越权与未授权逻辑漏洞检测方法 Download PDFInfo
- Publication number
- CN115828256A CN115828256A CN202211376356.6A CN202211376356A CN115828256A CN 115828256 A CN115828256 A CN 115828256A CN 202211376356 A CN202211376356 A CN 202211376356A CN 115828256 A CN115828256 A CN 115828256A
- Authority
- CN
- China
- Prior art keywords
- unauthorized
- sql statement
- parameters
- program
- exists
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种越权与未授权逻辑漏洞检测方法,应用于计算机设备中,其中方法包括:获取请求包中身份认证参数;判断请求调用链中是否执行sql语句;若无,则不存在越权漏洞;否则,判断所述身份认证参数是否有进入鉴权函数处理;若未进入所述鉴权函数处理,则存在越权漏洞;否则,获取本次请求执行所述sql语句,并对所述sql语句进行语义分析;随后判断用户给定标识参数是否存在于所述sql语句字段中,若不存在,则不存在越权漏洞;否则,判断所述用户给定标识值是否为用户可控参数;若为所述用户可控参数,则存在越权漏洞;否则,不存在。本申请具有的技术效果是:既能检测越权漏洞,又能检测未授权逻辑漏洞,且减少对服务器资源消耗。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种越权与未授权逻辑漏洞检测方法。
背景技术
随着科技的发展,越权漏洞也在日益增加,越权漏洞是发生在网站和APP功能里的,比如用户登录,操作,提现,修改个人资料,如果存在越权漏洞,就可以修改数据包,利用其它手机号获取短信,来重置任意手机号的账户密码;而未授权漏洞则是普通用户操作的权限,可以经过漏洞而变成管理员的权限,或者是可以操作其它人账号的权限。
目前的技术中,对于越权或未授权逻辑漏洞检测方式需要主动发包进行数据重放,需要对同一接口发起多个请求,这在一定程度上会导致脏数据的产生并且使服务器处理更多不必要的请求,或者将用户请求导致执行的所有sql语句存入数据库,后续再对这些sql语句先进行读取再解析,程序运行的时间越长,存入数据库的数据以及通过学习算法得到的数据会越来越多,且都只能检测越权而无法检测未授权逻辑漏洞。
针对上述相关技术,发明人认为由于上述技术不能同时进行越权检测和未授权逻辑漏洞检测,且检测时需要重放数据包和有脏数据,或不停在数据库中存入、读取sql语句,导致在单方面检测时耗时耗力,长此以往会对用户服务器造成较高的资源消耗。
发明内容
为了同时进行越权与未授权逻辑漏洞检测,且检测时不需要重放数据包和另外存储sql语句,减少对服务器资源消耗,本申请提供一种越权与未授权逻辑漏洞检测方法、装置、设备及存储介质。
第一方面,本申请提供了一种越权与未授权逻辑漏洞检测方法,采用如下的技术方案:
一种越权与未授权逻辑漏洞检测方法,应用于计算机设备中,所述方法包括:
计算机设备获取外部参数;判断所述外部参数中是否存在请求包中身份认证参数;若所述外部参数中存在请求包中身份认证参数,则判断当前请求调用链中是否存在执行sql语句;若所述当前请求调用链未存在执行sql语句,则不存在漏洞;否则,判断所述身份认证参数是否有进入鉴权函数处理;若所述身份认证参数没有进入所述鉴权函数处理,则存在越权漏洞;否则,获取本次请求执行所述sql语句,并对所述sql语句进行语义分析,并判断用户给定标识参数是否存在于所述sql语句中;若所述用户给定标识参数不存在于所述sql语句字段中,则不存在越权漏洞;否则,判断用户给定标识值是否为用户可控参数;若所述用户给定标识值为所述用户可控参数,则存在越权漏洞;否则,不存在越权漏洞。
通过采用上述技术方案,常规测试越权与未授权漏洞时通常都是修改身份认证参数、用户标识以期从请求响应包的反馈中来判断是否存在漏洞,而本检测方法是针对这类测试的本质,对导致越权与未授权漏洞的三要素:sql执行、鉴权以及用户可控参数进行了实时监控,通过对程序内部处理请求的逻辑进行判断来达到漏洞检测的效果,这使得检测时不需要持续保存很多检测过程中产生的数据,比如sql语句。本检测方法涉及多方面的判断和筛选,全方位进行排查问题,在进行一系列的判断和筛选后,逐步确定是否存在越权漏洞,保证了最终结果的准确性,并且同时进行越权与未授权逻辑漏洞检测,且检测时不需要重放数据包和另外存储sql语句,减少对服务器资源消耗,为后续排查问题提供参考。
可选的,在判断计算机设备是否获取请求包中身份认证参数之后还包括:
若所述外部参数中未存在请求包中身份认证参数;判断所述当前请求调用链中是否存在执行sql语句;若所述当前请求调用链未存在执行所述sql语句,则不存在漏洞;若所述当前请求调用链存在执行所述sql语句,则获取所述执行sql语句,并判断所述外部参数是否存在所述sql语句;若所述外部参数存在于所述sql语句中,且语句功能包括增加、删除、修改的功能,则存在未授权漏洞;若所述外部参数未存在于所述sql语句中或存在于所述sql语句但功能仅为查询功能,则不存在漏洞。
通过采用上述技术方案,当获取不到对应身份认证参数时,也能进行相关问题的检测,通过对应的判断和筛选,逐步确认是否存在未授权漏洞,提高最终结果的准确性,为后续排查问题提供参考。
可选的,所述获取请求包中身份认证参数之前还包括:
通过java插桩,在目标程序中对关键方法进行hook,所述hook包括:插桩修改代码的字节码及在程序源码之外添加额外的执行逻辑、sql语句执行方法、用户指定的程序鉴权函数。
通过采用上述技术方案,通过java插桩,在目标程序中对关键方法进行hook,通过修改代码的字节码可以识别待检测程序中身份认证参数、用户标识参数及鉴权函数,从而达到对同一请求程序内部存在越权/未授权问题的判断。
可选的,所述判断当前请求调用链中是否存在执行sql语句包括:
交互式应用程序安全测试系统IAST获取程序执行调用链,利用java插桩对程序内部执行流程和调用链进行监控。
通过采用上述技术方案,程序可通过实现该接口对java加载类的过程进行监控,能对加载的类进行字节码修改,达到在不修改源码的情况下对实际运行的程序进行代码加强,即新增代码逻辑的效果。
可选的,所述用户可控参数包括:
统一资源定位器url中的参数、请求体中的参数、请求头等或者为程序内部经过传播后得到的参数。
通过采用上述技术方案,通过对用户可控参数做限定,使得在判断过程中能够准确识别对应参数,然后判断出是否存在越权漏洞,保证了结果的准确性,为排查问题提供参考。
可选的,所述java插桩包括:
预留instrumentation接口,目标程序通过instrumentation接口对java加载类过程进行监控,对所述java加载类进行字节码修改,在不修改源码为前提对实际运行程序进行代码加强。
通过采用上述技术方案,针对单一接口请求,可通过程序内部执行代码的逻辑以及一些特定参数所处的位置、敏感方法调用以及外部可控点位置对越权/未授权漏洞进行判断,这能极大减少主动越权漏洞检测中产生的脏数据与服务器性能消耗。在用户点击接口覆盖率高以及参数配置准确的情况下,能静默的对越权/未授权漏洞有一个较好的检测效果,可以有效增加安全测试人员对越权/未授权逻辑漏洞的测试效率。
可选的,所述在目标程序中对关键方法hook还包括:
所述目标程序获取外部参数,对所述外部参数进行hook和漏洞检测。
通过采用上述技术方案,对从外部获取参数的方法进行了hook,这使得检测可以直接过滤掉静态页面,无任何传递参数行为的页面。
第二方面,本申请提供了一种越权与未授权逻辑漏洞检测装置,采用如下技术方案:
所述装置包括:获取模块、插入模块以及判断模块,所述获取模块用于获取请求包中身份认证参数;所述插入模块用于将字节码插入程序,进行修改程序以实现hook;所述判断模块用于判断是否存在越权漏洞和未授权漏洞。
通过采用上述技术方案,各个模块间相互关联,又各司其职,通过层层筛选,逐个排查,保证了结果的全面性、准确性,并且同时进行越权与未授权逻辑漏洞检测,且检测时不需要重放数据包和另外存储sql语句,减少对服务器资源消耗,为后续排查问题提供参考。
第三方面,本申请提供一种电子设备,采用如下技术方案:
一种电子设备,包括处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如上述任意一种越权与未授权逻辑漏洞检测方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:
存储有能够被处理器加载并执行如上述任一种越权与未授权逻辑漏洞检测方法的计算机程序。
综上所述,本申请包括以下至少一种有益技术效果:
1.检测方法涉及多方面的判断和筛选,全方位进行排查问题,在进行一系列的判断和筛选后,逐步确定是否存在越权漏洞,保证了最终结果的准确性,为后续排查问题提供参考;
2.既能检测越权漏洞,又能检测未授权逻辑漏洞。
附图说明
图1是本申请实施例的一种越权与未授权逻辑漏洞检测方法的流程示意图;
图2是本申请实施例的一种越权与未授权逻辑漏洞检测装置结构示意图;
图3是本申请实施例提供的一种电子设备的结构示意图。
附图标记:1、获取模块;2、插入模块;3、判断模块。
具体实施方式
以下结合附图对本申请做进一步详细说明。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。在对本发明实施例进行介绍之前,首先对本发明实施例中涉及的一些名词进行定义和说明。
越权漏洞:越权漏洞是发生在网站,APP功能里的,比如用户登录,操作,提现,修改个人资料,发送私信,上传图片,撤单,下单,充值,找回密码等等,那么可以简单的理解为,绕过授权对一些需要验证当前身份,权限的功能进行访问并操作,举例来讲:在网站APP里的找回密码功能,正常是按照手机号来进行找回密码,那么如果存在越权漏洞,就可以修改数据包,利用其它手机号获取短信,来重置任意手机号的账户密码。
未授权漏洞:未授权漏洞与越权漏洞最大的区别就是越权需要登录,未授权不需要登录,比如,一个网站正常的管理后台通常是需要登录才能访问的,如果存在未授权漏洞,那么任何人皆可直接访问管理后台,可以调用后台的敏感功能。
sql语句:结构化查询语言(StructuredQueryLanguage)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询。更新和管理关系数据库系统。
插桩:插桩实现通过两个阶段,动态hook和污点传播,动态hook阶段,越靠近底层,拿到的应用数据越详尽,数据量也越大,技术难度也越高;以Java为例,最常见的hook层是JVM层,通过JVMTI接口对字节码,在类被加载之前对类进行拦截,通过插入监听字节码,进行修改以实现hook(具体hook的参数可以通过分析不通框架提前定义好,也可以通过API调用链做全量hook)。污点传播分析技术是信息流分析技术的一种实践方法,该技术通过对系统中敏感数据进行标记继而跟踪标记数据在程序中的传播检测系统安全。
IAST:交互式应用程序安全测试系统,其主要是利用java的插桩机制实现,可以达到对程序内部执行流程、调用链进行监控、检测的效果。
图1为一个实施例中一种越权与未授权逻辑漏洞检测方法的流程图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行;除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行;并且图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请实施例公开了一种越权与未授权逻辑漏洞检测方法,如图1所示,该方法包括步骤S101-S108。
步骤S101,计算机设备是否获取请求包中身份认证参数。
具体来说,一般有两种情况,一种为直接获取身份认证参数,一种为无法获取身份认证参数,用户设定了身份认证参数为:cookie中的JESSIONID,当程序要获取cookie时会调类似getCookies的方法,因为iast对获取cookie的方法进了hook,这使得iast也可以拿到cookie的内容,对cookie进行筛选即可得知请求包中是否存在身份认证参数,随后开始进行判断是否越权和未授权逻辑漏洞。
步骤S102,请求调用链是否有执行sql语句。
在一个示例中,iast在程序内部跟踪请求就是通过hook各种方法达到的,请求进入程序会使得程序内部调用一系列方法,因为iast对方法法进行了hook,这就使得每一步执行iast都能监测到;对是否执行sql语句的判断也同理,hook执行sql语句的方法,当调用该方法时会自动触发iast的代码逻辑,也可通过java提供的getStackTrace法来获取调用栈,调用栈中包含了从第一个方法开始到执行获取调用栈方法这个过程中的所有调用方法,再判断这个调用栈中是否有执行sql语句的法。若分析出没有执行sql语句,则判断为不存在漏洞,若执行了sql语句,则继续判断,进行下一个步骤。
步骤S103,身份认证参数是否进入鉴权函数处理。
在一个示例中,在请求调用链中没有执行sql语句的前提下,再判断身份认证参数是否进入鉴权函数处理。同样,用户设定鉴权函数,iast对该函数进行hook,若请求调用链中执行了sql语句,则iast就继续跟踪发现请求调用链中是否进入鉴权函数处理,身份认证参数经过了鉴权函数,若没有进入鉴权函数处理,则存在越权漏洞,若进鉴权函数处理则继续判断,进入下一个步骤。上述hook、判断参数、跟踪请求皆为iast本身能力,属于公知部分,对参数的具体逻辑判断属于本次越权的核心。
步骤S104,对sql语句进行语义分析。
在一个示例中,当身份认证参数进入鉴权函数处理,则获取本次请求执行的sql语句,并对sql语句进行语义分析。
步骤S105,用户标识参数是否存在于sql语句字段中。
在一个示例中,针对步骤S104的结果,与现有的sql语义分析类似,对拿到的sql语句、sql关键词进行分析,识别出标识参数在sql语句中所处的位置,标识参数通常需要在where语句的作用范围内。若用户标识参数不存在于sql语句字段中,则判定为不存在漏洞;若存在,则执行下一个步骤。
步骤S106,用户标识参数是否为外部可控。
在一个示例中,在步骤S105的前提下,用户给定标识参数不存在于sql语句字段中,则iast对请求调用链中执行的sql语句进行语义分析,发现用户设定表示参数userid进到sql语句中,iast进一步判断,进入sql语句中的userid为外部可控,iast自身会维护一个污点列表,污点列表中的变量即是外部可控的,污染源点即为请求包中用户可控参数的部分,比如请求参数、header,这些污染源点会在程序内部进行传播,使得污染的参数,即该参数的值与污染源点的值有关,或其值来自于污染源点,污染源点能控制其值成为一个新的污点,并记录至污点列表。若用户标识参数是外部程序可控的,则存在越权漏洞,反之不存在。
在步骤S101的前提下,若计算机设备未获取到请求包中身份认证参数则直接转为步骤S107。
步骤是S107,请求调用链是否有执行sql语句。
在一个示例中,检测方法同步骤S1O2,若调用链未执行sql语句,则不存在漏洞;若调用链执行sql语句,则进行下一个步骤。
步骤S108,判断外部可控参数是否存在于增删改sql语句。
在一个示例中,检测步骤同S106,在步骤S106的基础上,先判断外部可控参数是否进入该sql语句,进而判断外部可控参数是否对sql语句进行了增加、修改和删除。若外部可控参数进入了sql语句且存在增加、修改和删除中的任意一项,则存在未授权漏洞;若外部可控参数未进入sql语句或进行了但功能仅为查询,则不存在漏洞。
用户可控参数包括统一资源定位器url中的参数、请求体中的参数、请求头或者为程序内部经过传播后得到的参数。
在一个示例中,用户可以通过自己定义,选择固定参数为用户可控参数,用户可控参数可以为统一资源定位器url中的参数、请求体中的参数、请求头或者为程序内部经过传播后得到的参数。
基于上述方法,本申请实施例还公开一种越权与未授权逻辑漏洞检测装置。
如图2所示,该装置包括获取模块1、插入模块2以及判断模块3;其中,获取模块1用于获取请求包中身份认证参数;插入模块2用于插入字节码,进行修改以实现hook;判断模块3用于判断是否存在越权漏洞和未授权漏洞。
在一个示例中,通过获取模块1获取到的程序段或sql语句,通过插入模块2进行插入,插入模块2可以为java插桩,java的插桩机制是对程序内部执行流程、调用链进行监控、检测,然后通过判断模块3进行判断,然后根据判断结果得出是否存在漏洞、是否存在越权漏洞和是否存在未授权漏洞。
需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置和方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,执行上述实施例中一个或多个所述方法。
下边以图3为例,对本申请示例中的电子设备结构示意图进行详细说明。
如图3所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(DigitalSignalProcessing,DSP)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、可编程逻辑阵列(ProgrammableLogicArray,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(CentralProcessingUnit,CPU)、图像处理器(GraphicsProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(RandomAccessMemory,RAM),也可以包括只读存储器(Read-OnlyMemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备的节电应用程序。
在图3所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的设备的节电应用程序,并具体执行上述实施例中的一个或多个所述方法
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLEGateArray,FPGA)、集成电路(IntegratedCircuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种越权与未授权逻辑漏洞检测方法,其特征在于,应用于计算机设备中,所述方法包括:
计算机设备获取外部参数;
判断所述外部参数中是否存在请求包中身份认证参数;
若所述外部参数中存在请求包中身份认证参数,
则判断当前请求调用链中是否存在执行sql语句;
若所述当前请求调用链未存在执行sql语句,则不存在漏洞;
否则,判断所述身份认证参数是否有进入鉴权函数处理;
若所述身份认证参数没有进入所述鉴权函数处理,则存在越权漏洞;
否则,获取本次请求执行所述sql语句,并对所述sql语句进行语义分析,并判断用户给定标识参数是否存在于所述sql语句中;
若所述用户给定标识参数不存在于所述sql语句中,则不存在越权漏洞;否则,判断用户给定标识值是否为用户可控参数;
若所述用户给定标识值为所述用户可控参数,则存在越权漏洞;否则,不存在越权漏洞。
2.根据权利要求1所述的方法,其特征在于,在判断计算机设备是否获取请求包中身份认证参数之后还包括:
若所述外部参数中未存在请求包中身份认证参数;
判断所述当前请求调用链中是否存在执行sql语句;
若所述当前请求调用链未存在执行所述sql语句,则不存在漏洞;
若所述当前请求调用链存在执行所述sql语句,则获取所述执行sql语句,并判断所述外部参数是否存在于所述sql语句;
若所述外部参数存在于所述sql语句中,且语句功能包括增加、删除、修改的功能,则存在未授权漏洞;
若所述外部参数未存在于所述sql语句中或存在于所述sql语句但功能仅为查询功能,则不存在漏洞。
3.根据权利要求1所述的方法,其特征在于,在所述获取请求包中身份认证参数之前还包括:
通过java插桩,在目标程序中对关键方法进行hook,所述hook包括:插桩修改代码的字节码及在程序源码之外添加额外的执行逻辑、sql语句执行方法、用户指定的程序鉴权函数。
4.根据权利要求1所述的方法,其特征在于,所述判断当前请求调用链中是否存在执行sql语句包括:
交互式应用程序安全测试系统IAST获取程序执行所述当前调用链,利用java插桩机制对程序内部执行流程和所述当前调用链进行监控。
5.根据权利要求1所述的方法,其特征在于,所述用户可控参数包括:
统一资源定位器url中的参数、请求体中的参数、请求头或者为程序内部经过传播后得到的参数。
6.根据权利要求3所述的方法,其特征在于,所述java插桩包括:
预留instrumentation接口,目标程序通过instrumentation接口对java加载类的过程进行监控,对所述java加载类进行字节码修改。
7.根据权利要求3所述的方法,其特征在于,所述在目标程序中对关键方法进行hook还包括:
所述目标程序获取外部参数,对所述外部参数进行hook和漏洞检测。
8.一种越权与未授权逻辑漏洞检测装置,其特征在于,所述装置包括获取模块(1)、插入模块(2)以及判断模块(3);其中,
所述获取模块(1)用于获取请求包中身份认证参数;
所述插入模块(2)用于将字节码插入程序,进行修改程序以实现hook;
所述判断模块(3)用于判断是否存在越权漏洞和未授权漏洞。
9.一种电子设备,其特征在于,包括处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如上述权利要求1至7所述的任一种设备的节电方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211376356.6A CN115828256B (zh) | 2022-11-04 | 2022-11-04 | 一种越权与未授权逻辑漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211376356.6A CN115828256B (zh) | 2022-11-04 | 2022-11-04 | 一种越权与未授权逻辑漏洞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115828256A true CN115828256A (zh) | 2023-03-21 |
CN115828256B CN115828256B (zh) | 2023-08-29 |
Family
ID=85526620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211376356.6A Active CN115828256B (zh) | 2022-11-04 | 2022-11-04 | 一种越权与未授权逻辑漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828256B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116346488A (zh) * | 2023-04-13 | 2023-06-27 | 贝壳找房(北京)科技有限公司 | 一种越权访问的检测方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200311268A1 (en) * | 2019-03-29 | 2020-10-01 | Acronis International Gmbh | Methods and systems for performing a dynamic analysis of applications for protecting devices from malwares |
CN113779585A (zh) * | 2021-01-04 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 越权漏洞检测方法和装置 |
CN113961926A (zh) * | 2021-09-15 | 2022-01-21 | 上海钧正网络科技有限公司 | 一种越权漏洞检测方法、装置、电子设备及介质 |
CN114969766A (zh) * | 2022-07-29 | 2022-08-30 | 杭州孝道科技有限公司 | 账号锁定绕过逻辑漏洞检测方法、系统以及存储介质 |
-
2022
- 2022-11-04 CN CN202211376356.6A patent/CN115828256B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200311268A1 (en) * | 2019-03-29 | 2020-10-01 | Acronis International Gmbh | Methods and systems for performing a dynamic analysis of applications for protecting devices from malwares |
CN113779585A (zh) * | 2021-01-04 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 越权漏洞检测方法和装置 |
CN113961926A (zh) * | 2021-09-15 | 2022-01-21 | 上海钧正网络科技有限公司 | 一种越权漏洞检测方法、装置、电子设备及介质 |
CN114969766A (zh) * | 2022-07-29 | 2022-08-30 | 杭州孝道科技有限公司 | 账号锁定绕过逻辑漏洞检测方法、系统以及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116346488A (zh) * | 2023-04-13 | 2023-06-27 | 贝壳找房(北京)科技有限公司 | 一种越权访问的检测方法、装置及存储介质 |
CN116346488B (zh) * | 2023-04-13 | 2024-05-17 | 贝壳找房(北京)科技有限公司 | 一种越权访问的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115828256B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11924230B2 (en) | Individual device response options from the monitoring of multiple devices | |
CN110413908B (zh) | 基于网站内容对统一资源定位符进行分类的方法和装置 | |
US9753796B2 (en) | Distributed monitoring, evaluation, and response for multiple devices | |
CN105956474B (zh) | Android平台软件异常行为检测系统 | |
US10834115B2 (en) | Methods and systems for providing security for page framing | |
US9015844B1 (en) | Techniques for web application vulnerability scanning | |
CN111651757A (zh) | 攻击行为的监测方法、装置、设备及存储介质 | |
JP2015511047A (ja) | マルウェアを検出するコンピューティングデバイス | |
WO2019144548A1 (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
CN109783316B (zh) | 系统安全日志篡改行为的识别方法及装置、存储介质、计算机设备 | |
CN114024764A (zh) | 数据库异常访问的监控方法、监控系统、设备和存储介质 | |
CN116340943A (zh) | 应用程序保护方法、装置、设备、存储介质和程序产品 | |
CN108073499A (zh) | 应用程序的测试方法及装置 | |
CN115828256B (zh) | 一种越权与未授权逻辑漏洞检测方法 | |
US20210176273A1 (en) | Detecting compromised web pages in a runtime environment | |
CN114244808B (zh) | 基于非客户端模式被动检查离线非法外联方法和装置 | |
Alidoosti et al. | Evaluating the web‐application resiliency to business‐layer DoS attacks | |
CN113486335B (zh) | 一种基于rasp零规则的jni恶意攻击检测方法及装置 | |
CN111241547A (zh) | 一种越权漏洞的检测方法、装置及系统 | |
CN115051867A (zh) | 一种非法外联行为的检测方法、装置、电子设备及介质 | |
CN114285664A (zh) | 异常用户识别方法、系统、设备及介质 | |
CN112632534A (zh) | 一种恶意行为检测方法及装置 | |
Liu et al. | Understanding digital forensic characteristics of smart speaker ecosystems | |
CN115398431A (zh) | 用户信息违规获取检测方法及相关设备 | |
US20230101198A1 (en) | Computer-implemented systems and methods for application identification and authentication |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |