越权漏洞检测方法和装置与流程

文档序号:16147100发布日期:2018-12-05 16:39阅读:157来源:国知局
本发明涉及计算机
技术领域
,尤其涉及越权漏洞检测方法和装置。
背景技术
越权漏洞是web应用程序中一种常见的安全漏洞,是指由于程序员疏忽,没有对某个操作所需的权限或用户进行严格的限制,导致本应没有操作权限的用户可正常进行操作,其威胁在于一个用户即可控制全站用户数据,即攻击者使用一个合法账户,即可对存在越权缺陷漏洞的其他账户数据进行非法的操作,例如查询、插入、删除、修改等常规数据库命令。越权漏洞属于业务逻辑漏洞的一种,无法通过外部网络应用防火墙(webapplicationfirewall,waf)进行防御加固,且常涉及用户隐私数据,一旦被发现,对于系统的影响会很大。目前检测越权漏洞一般是通过手工的方式进行越权漏洞检测,通过人工登录一个账号并修改账号id,根据不同的账号id返回请求进行对比分析从而判断是否存在越权漏洞,检测的效率低,且存在误判的情况。技术实现要素:本发明提供越权漏洞检测方法和装置,解决通过手工的方式进行越权漏洞检测所存在的效率低以及误判的问题。第一方面,提供一种越权漏洞检测方法,包括:通过第一账号触发待检测的系统的多个业务逻辑;分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,所述第一业务流量包括第一业务请求和所述第一业务请求对应的第一返回数据,所述第一业务请求中的身份识别参数为所述第一账号对应的身份识别参数;分别将所述各个业务逻辑对应的第一业务请求中的身份识别参数修改为第二账号对应的身份识别参数,并分别获取修改身份识别参数后的各个第一业务请求对应的第二返回数据;分别确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度;如果所述各个第一业务请求中存在第二业务请求,则确定所述第二业务请求对应的业务逻辑存在越权漏洞,其中,所述第二业务请求对应的第一返回数据与第二返回数据的相似度大于第一相似阈值。本发明实施例中,分别以第一账号和第二账号的身份去发起在第一账号的权限范围内的请求以分别得到第一返回数据和第二返回数据,当第一返回数据和第二返回数据的相似度较高时,说明以第二账号的身份获取到了第一账号的权限范围内的数据,即以第二账号的身份获取到了不在第二账号的权限范围内的数据,从而确定该请求所对应的业务逻辑存在越权漏洞,无需人工操作和人工比对,提高了越权漏洞检测的检测效率。结合第一方面,在一种可能的实现方式中,所述分别确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度包括:分别确定所述各个第一业务请求对应的第一simhash值和第二simhash值,所述第一simhash值为所述第一返回数据的simhash值,所述第二simhash值为所述第二返回数据的simhash值;分别确定所述各个第一业务请求对应的第一simhash值和第二simhash值之间的汉明距离;分别根据所述各个第一业务请求对应的第一simhash值和第二simhash值之间的汉明距离确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度。simhash算法是用于比对数据相似性的算法,通过确定第一返回数据对应的simhash值和第二返回数据对应的第二simhash值的汉明距离,可确定第一返回数据和第二返回数据的相似度。结合第一方面,在一种可能的实现方式中,所述确定所述第二业务请求对应的业务逻辑存在越权漏洞之后,还包括:通过第二账号触发所述待检测的系统的多个业务逻辑;分别获取通过所述第二账号触发的多个业务逻辑中的各个业务逻辑对应的第二业务流量,所述第二业务流量包括第三业务请求和所述第三业务请求对应的第三返回数据,所述第三业务请求中的身份识别参数为所述第二账号对应的身份识别参数;确定第四业务请求,所述第四业务请求为所述第二业务请求中与所述第三业务请求相同的业务请求;确定所述第四业务请求对应的第一返回数据与第三返回数据的相似度;如果所述第四业务请求中存在第五业务请求,则确定所述第二业务请求中的除所述第五业务请求之外的业务请求对应的业务逻辑存在越权漏洞,所述第五业务请求对应的第一返回数据与第三返回数据的相似度大于第二相似阈值。通过以第一账号的身份和第二账号的身份去发起在其各自对应的权限范围内的请求以分别得到第一返回数据和第三返回数据,当第一返回数据和第三返回数据的相似度较高时,说明该请求对应的数据为所有账号均能获取到的数据,即所有账号均能访问的公共页面对应的数据,由于这部分数据是公共页面对应的数据,因此这部分请求所对应的业务逻辑没有越权漏洞,因此,可以在之前确定的有越权漏洞的业务逻辑中排除掉这部分业务逻辑,降低误报几率。结合第一方面,在一种可能的实现方式中,所述分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量包括:分别拦截触发所述各个业务逻辑后所述待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求;将所述多个业务请求中存在身份识别参数的业务请求确定为第一业务请求,并保存所述第一业务请求;对所述第一业务请求进行放行,并拦截所述系统后台根据所述第一业务请求返回的数据,作为所述第一业务请求对应的第一返回数据;保存所述第一返回数据。通过代理的方式,可以获取到触发的各个业务逻辑所对应的业务流量。结合第一方面,在一种可能的实现方式中,所述分别拦截触发各个业务逻辑后所述待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求之后还包括:如果所述多个业务请求中存在第六业务请求,则确定所述第六业务请求对应的业务逻辑不存在越权漏洞,所述第六业务请求为不存在身份识别参数的业务请求。由于越权漏洞是指没有对请求的权限进行限制而可能存在漏洞,对于不存在身份识别参数的业务请求来说,其原本就不需要对请求的权限进行判断,即不可能存在越权漏洞,直接确定不存在身份识别参数的业务请求对应的逻辑不存在越权漏洞,可省去对这一业务请求的检测,提高检测效率。结合第一方面,在一种可能的实现方式中,所述分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量包括:通过网络爬虫爬取的方式分别获取所述业务逻辑中的各个业务逻辑对应的第一业务流量。通过网络爬虫爬取的方式,可以爬取到触发的各个业务逻辑所对应的业务流量。结合第一方面,在一种可能的实现方式,所述身份识别参数包括cookie信息、session信息、用户账户标识或订单标识。第二方面,提供一种越权漏洞检测装置,包括:第一触发模块,用于通过第一账号触发待检测的系统的多个业务逻辑;第一流量获取模块,用于分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,所述第一业务流量包括第一业务请求和所述第一业务请求对应的第一返回数据,所述第一业务请求中的身份识别参数为所述第一账号对应的身份识别参数;参数修改模块,用于分别将所述各个业务逻辑对应的第一业务请求中的身份识别参数修改为第二账号对应的身份识别参数,所述第一流量获取模块还用于分别获取修改身份识别参数后的各个第一业务请求对应的第二返回数据;相似度确定模块,用于分别确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度;漏洞确定模块,用于如果所述各个第一业务请求中存在第二业务请求,则确定所述第二业务请求对应的业务逻辑存在越权漏洞,其中,所述第二业务请求对应的第一返回数据与第二返回数据的相似度大于第一相似阈值。第三方面,提供另一种越权漏洞检测装置,包括处理器、存储器以及输入输出接口,所述处理器、存储器和输入输出接口相互连接,其中,所述输入输出接口用于输入输出数据,所述存储器用于存储越权漏洞检测装置执行上述方法的应用程序代码,所述处理器被配置用于执行上述第一方面的方法。第四方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。本发明实施例中,通过对待检测的系统的各个业务逻辑所对应的流量进行检测并比较,提高了越权漏洞检测的检测效率以及减少了误报率。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种越权漏洞检测方法的流程示意图;图2是本发明实施例提供的另一种越权漏洞检测方法的流程示意图;图3是本发明实施例提供的通过流量代理的方式获取通过目标账号触发的多个业务逻辑中的各个业务逻辑对应的目标业务流量的流程示意图;图4是本发明实施例提供的通过网络爬虫爬取的方式获取通过目标账号触发的多个业务逻辑中的各个业务逻辑对应的目标业务流量的流程示意图;图5是本发明实施例提供的计算目标业务请求对应的两个返回数据的相似度的方法的流程示意图;图6是本发明实施例提供的一种越权漏洞检测装置的组成结构示意图;图7是本发明实施例提供的另一种越权漏洞检测装置的组成结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。首先参见图1,图1是本发明实施例提供的一种越权漏洞检测方法的流程示意图,如图所示,所述方法包括:s101,通过第一账号触发待检测的系统的多个业务逻辑。这里,第一账号为该待检测的系统上的用户账号,通过该第一账号可登录该待检测的系统,登录该待检测的系统后,则可触发该待检测的系统上的业务逻辑。其中,该待检测系统可以是网站系统,也可以是app系统。例如,该待检测的系统为平安e行销网站,则第一账号可以是各个业务员的用户账号;又如,该待检测的系统为“平安银行”app,则第一账号可以是该app的各个用户的用户名。这里,触发待检测系统的多个业务逻辑是指登录待检测的系统后,触发该待检测的系统的多个业务功能,该待检测的系统的多个业务功能可以是该待检测的系统的全部业务功能。本发明实施例中,可以有两种方式触发待检测的系统的多个业务逻辑:1)可以通过第一账号依次触发待检测的系统的多个业务逻辑,在触发一个业务逻辑之后再触发下一个业务逻辑。这种方式既可以适用于该待检测的系统为网站系统的情况,也可以适用于该待检测的系统为app系统的情况。2)可以通过第一账号并行触发待检测的系统的多个业务逻辑。这种方式可适用于该待检测的系统为网站系统的情况。本发明实施例中,在通过第一账号依次触发待检测的系统的多个业务逻辑的情况下,可以按照以下两种触发逻辑依次触发该待检测的系统的多个业务逻辑:1)根据待检测的系统的业务功能的划分情况依次触发待检测的系统的多个业务逻辑,其中,系统的业务功能是指系统提供的各个相对独立的服务所对应的功能模块。在根据待检测的系统的业务功能的划分情况依次触发待检测的系统的多个业务逻辑时,可以在触发完一个业务功能下的所有业务子功能之后,在触发下一个业务功能。举例来进行说明,例如,待检测的系统分别为用户提供“转账”、“理财”、“缴费”、“保险”等多个业务功能,在依次触发这几个业务功能时,可以在触发转账功能下的所有子功能(如转给个人用户、转给企业用户等)之后,再触发理财功能下的所有子功能,以此类推。2)根据业务逻辑对应的数据库操作的分类依次触发待检测的系统的多个业务逻辑。业务逻辑对应的数据库操作共有“增加”、“删除”、“查询”、“修改”四个类别,根据业务逻辑对应的数据库操作的分类依次触发待检测的系统的多个业务逻辑时,可以在触发完一类数据库操作对应的业务逻辑之后,再触发下一个类数据库操作对应的业务逻辑。举例来进行说明,例如,待检测的系统分别为用户提供“订单”功能模块和“用户信息”功能模块,“订单”功能模块下分别包括“增加订单”、“查看订单”、“修改订单”以及“删除订单”四个子功能,“用户信息”功能下分别包括“增加用户信息”、“查看用户信息”、“修改用户信息”以及“删除用户信息”四个子功能。在根据业务逻辑对应的数据库操作的分类依次触发待检测的系统的多个业务逻辑时,可以先触发查询类数据库操作对应的业务逻辑,即先触发“查看订单”和“查看用户信息”,再触发修改类数据库操作对应的业务逻辑,即再触发“修改订单”和“修改用户信息”,以此类推。在触发待检测的系统的多个业务逻辑之后,该待检测的系统对应的系统前台(如运行在电脑上的浏览器、运行在终端设备上的app等)向该待检测的系统对应的系统后台(如服务器)提交各个业务逻辑对应的业务请求。s102,分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,所述第一业务流量包括第一业务请求和所述第一业务请求对应的第一返回数据,所述第一业务请求中的身份识别参数为所述第一账号对应的身份识别参数。这里,第一业务请求是指以第一账号的身份触发待检测的系统的某个业务逻辑时,该待检测的系统对应的系统前台向该待检测的系统对应的系统后台提交的该业务逻辑对应的业务请求;第一返回数据是指待检测的系统对应的系统后台在验证第一账号的身份通过的情况下根据以第一账号的身份提交的业务请求所返回的数据,通俗来讲,第一返回数据可以理解为以第一账号的身份去执行在第一账号的权限范围内可以执行的操作所得到的数据。身份识别参数用于表明该第一业务请求的发起者的身份,身份识别参数可以为cookie信息、session信息、用户账户标识或订单标识中的至少一种信息。其中,用户账户标识可以有多种体现形式,例如为user_id,employer_id,student_id,teacher_id,等等,不限于这里的描述。用户账户标识的具体体现形式可以与待检测的系统面向的人群有关。例如,待检测的系统面向的人群是所有用户,则用户账户标识可以为user_id,如,待检测的系统面向的人群是教师和学生,则用户账户标识可以为student_id,teacher_id。在一种可能的实现方式中,不同类型的业务请求,可对应不同的身份识别参数。例如,该业务请求为触发订单查询功能后该待检测的系统对应的系统前台向该待检测的系统对应的系统后台提交的业务请求,则该业务请求中的身份识别参数可以为订单标识;该业务请求触发用户信息查询功能后该待检测的系统对应的系统前台向该待检测的系统对应的系统后台(如服务器)提交的业务请求,则该业务请求中的身份识别参数可以为用户账户标识。在另一种可能的实现方式中,不同类型的业务请求,也可对应相同的身份识别参数,例如,所有的业务请求中的身份识别参数均为cookie信息。具体实现中,可以通过流量代理的方式或网络爬虫爬取的方式获取通过第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,具体逻辑可参见图3-图4对应的实施例的描述,此处不做过多描述。s103,分别将所述各个业务逻辑对应的第一业务请求中的身份识别参数修改为第二账号对应的身份识别参数,并分别获取修改身份识别参数后的第一业务请求对应的第二返回数据。这里,第二返回数据是指待检测的系统对应的系统后台在验证第一账号的身份通过的情况下根据以第二账号的身份提交的业务请求所返回的数据,通俗来讲,第二返回数据可以理解为以第二账号的身份去执行在第一账号的权限范围内可以执行的操作所得到的数据。具体实现中,可以通过流量代理的方式或网络爬虫爬取的方式获取修改身份识别参数后的第一业务请求对应的第二返回数据,具体逻辑可参考图3-图4对应的实施例的描述,此处不做过多描述。s104,分别确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度。具体实现中,可通过文本相似度算法计算各个第一业务请求对应的第一返回数据和第二返回数据之间的相似度,文本相似度算法可以为杰卡德相似系数算法,也可以为余弦相似度算法,也可以为simhash算法,本发明实施例不做限制。本发明实施例以文本相似度算法为simhash算法为例介绍计算第一业务请求对应的第一返回数据和第二返回数据之间的相似度。具体逻辑可参考图5对应的实施例的描述,此处不做过多描述。s105,如果所述各个第一业务请求中存在第二业务请求,则确定所述第二业务请求对应的业务逻辑存在越权漏洞,其中,所述第二业务请求对应的第一返回数据与第二返回数据的相似度大于第一相似阈值。这里,第一相似阈值可以为一个接近于1或等于1的百分比或分数,例如可以设置为95%、98%、31/32,等等。第二业务请求对应的第一返回数据和第二返回数据的相似度大于第一相似阈值,说明以第二账号的身份去执行第一账号的权限范围内执行的操作所得到的数据与以第一账号的身份去执行第一账号的权限范围内可以执行的操作所得到数据相似度较高,即第二账号的身份获取到了第一账号才能获取到的数据,发生了越权,则可确定第二业务请求对应的业务逻辑存在越权漏洞。举例进行说明,例如,通过第一账号触发了“用户信息查询”这一功能对应的业务逻辑,获取到的第一返回数据如表1所示:姓名xxx身份证号码500111234567890000电话号码12345678900表1中的数据为第一账号对应的用户的用户信息。获取到的第二返回数据也如表1所示,则第一返回数据和第二返回数据的相似度为100%,大于第一相阈值,说明第二账号对应的用户也可以获取到第一账号对应的用户的用户信息,即发生了越权,则确定“用户信息查询”这一功能对应的业务逻辑存在越权漏洞。本发明实施例中,分别以第一账号和第二账号的身份去发起在第一账号的权限范围内所能发起的请求以分别得到第一返回数据和第二返回数据,当第一返回数据和第二返回数据的相似度较高时,说明以第二账号的身份获取到了第一账号的权限范围内的数据,即以第二账号的身份获取到了不在第二账号的权限范围内的数据,从而确定该请求所对应的业务逻辑存在越权漏洞,无需人工操作和人工比对,提高了越权漏洞检测的检测效率。参加图2,图2是本发明实施例提供的另一种越权漏洞检测方法的流程示意图,如图所示,所述方法包括:s201,通过第一账号触发待检测的系统的多个业务逻辑。s202,分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,所述第一业务流量包括第一业务请求和所述第一业务请求对应的第一返回数据,所述第一业务请求中的身份识别参数为所述第一账号对应的身份识别参数。s203,分别将所述各个业务逻辑对应的第一业务请求中的身份识别参数修改为第二账号对应的身份识别参数,并分别获取修改身份识别参数后的第一业务请求对应的第二返回数据。s204,分别确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度。步骤s201~s204的具体实现方式可参考图1对应的实施例中步骤s101~s104的描述,此处不再赘述。s205,在所述第一业务请求中确定第二业务请求,所述第二业务请求对应的第一返回数据和第二返回数据的相似度大于第一相似阈值。例如,第一业务请求有100个,分别为业务请求1~业务请求100,其中,业务请求1~业务请求10对应的第一返回数据和第二返回数据的相似度均大于第一相似阈值,则确定业务请求1~业务请求10为第二业务请求。s206,通过第二账号触发所述待检测的系统的多个业务逻辑。这里,第二账号同样也为该待检测的系统上的用户账号,通过第二账号可登录该待检测的系统,登录该待检测的系统后,可触发该待检测的系统。通过第二账号触发该待检测的系统的多个业务逻辑的方式相同,具体可参考步骤s101中通过第一账号触发待检测的系统的多个业务逻辑的描述,此处不再赘述。s207,分别获取通过所述第二账号触发的多个业务逻辑中的各个业务逻辑对应的第二业务流量,所述第二业务流量包括第三业务请求和第三返回数据,所述第三业务请求中的身份识别参数为所述第二账号对应的身份识别参数。这里,第三业务请求是指以第二账号的身份触发待检测的系统的某个业务逻辑时,该待检测的系统对应的系统前台向该待检测系统对应的系统后台提交的该业务逻辑对应的业务请求;第三返回数据是指待检测的系统对应的系统后台在验证第二账号的身份通过的情况下根据以第二账号的身份提交的业务请求所返回的数据,通俗来说,第三返回数据可以理解为以第二账号的身份去执行在第二账号的权限范围内可以执行的操作所得到的数据。分别获取通过所述第二账号触发的多个业务逻辑中的各个业务逻辑对应的第二业务流量的具体实现方式可参考步骤s102中分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量的描述,此处不再赘述。s208,确定第四业务请求,所述第四业务请求为所述第二业务请求中与所述第三业务请求相同的业务请求。这里,第四业务请求是指第二业务请求与第三业务请求的交集。例如,通过步骤s204确定的第二业务请求包括业务请求1~业务请求10,通过步骤s206获取到的第三业务请求包括业务请求1~业务请求5,业务请求10~业务请求50,则可确定业务请求1~业务请求5以及业务请求10为第四业务请求。s209,确定所述第四业务请求对应的第一返回数据和第三返回数据的相似度。具体实现中,可通过文本相似度算法计算第四业务请求对应的第一返回数据和第三返回数据之间的相似度。文本相似度算法可以为杰卡德相似系数算法,也可以为余弦相似度算法,也可以为simhash算法,本发明实施例不做限制。其中,通过simhash算法计算第四业务请求对应的第一返回数据和第三返回数据之间的相似度的具体过程可参考图5对应的实施例的描述,此处不做过多描述。s210,在所述第四业务请求中确定第五业务请求,所述第五业务请求对应的第一返回数据和第三返回数据的相似度大于第二相似阈值。例如,第四业务请求为定业务请求1~业务请求5以及业务请求10,其中,业务请求3~业务请求5对应的第一返回数据和第三返回数据的相似度大于第二相似阈值,则将业务请求3~业务请求5确定为第五业务请求。这里,第二相似阈值可以为一个接近于1或等于1的百分比或分数,例如可以设置为99%、97%、64/65,等等。第二相似阈值可以与第一相似阈值相同,也可以与第一相似阈值不同。第五业务请求对应的第一返回数据和第三返回数据的相似度大于第二相似阈值,说明以第一账号的身份去执行第一账号的权限范围内可以执行的操作所得到的数据与以第二账号的身份去执行第二账号的权限范围可以执行的操作所得到的数据相同,即第五业务请求是所有账号均可以提交的,第五业务请求对应的数据是所有的账号均可以获取到的数据,第五业务请求对应的数据是公共页面对应的数据,不存在越权。举例来进行说明,例如,分别通过第一账号和第二账号去触发显示“平安银行”app的“理财”功能的首页这一业务逻辑,在以第一账号触发和以第二账号触发这一业务逻辑时,由于“平安银行”app的“理财”功能的首页是所有的账号均可以访问的,则“平安银行”app对应的后台返回的第一返回数据和第三返回数据均为“平安银行”app的“理财”功能的首页对应的页面数据,第一返回数据和第三返回数据的相似度大于第一相似阈值。由于“平安银行”app的“理财”功能的首页公共页面,因此,显示“平安银行”app的“理财”功能的首页这一业务逻辑不存在越权漏洞。s211,确定所述第二业务请求中除所述第五业务请求之外的业务请求对应的业务逻辑存在越权漏洞。举例来说,例如,通过步骤s204确定的第二业务请求为业务请求1~业务请求10,通过步骤s209确定的第五业务请求为业务请求3~业务请求5,则可以确定业务请求1~业务请求2以及业务请求6~业务请求10存在越权漏洞。本发明实施例中,在通过分别以第一账号和第二账号的身份去发起在第一账号的权限范围内所能发起的请求以分别得到第一返回数据和第二返回数据,并确定第一返回数据和第二返回数据确定可能存在越权漏洞的第二业务请求之后,通过在第二业务请求中排除公共页面对应的业务请求,确定排除公共页面对应的业务请求后的第二业务请求对应的业务逻辑存在越权漏洞,降低越权漏洞误报的几率。参见图3,图3是本发明实施例提供的通过流量代理的方式获取通过目标账号触发的多个业务逻辑中的各个业务逻辑对应的目标业务流量的流程示意图,如图所示,该流程包括:s301,分别拦截触发各个业务逻辑后待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求。本发明实施例中,如果目标账号为第一账号,则该多个业务请求为通过第一账号触发各个业务逻辑后待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求;如果目标账号为第二账号,则该多个业务请求为通过第二账号触发各个业务逻辑后待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求。在一种可能的实现方式中,可以通过在该待检测的系统对应的系统前台设置代理服务器,将该代理服务器的地址设置为本机回环地址(127.0.0.0)并将端口设置为目标端口(如80端口),然后通过抓包工具(如burpsuit、wireshark等)监听本地的目标端口从而拦截触发各个业务逻辑后待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求。s302,将所述多个业务请求中存在目标身份识别参数的业务请求确定为目标业务请求,并保存所述目标业务请求。本发明实施例中,如果目标账号为第一账号,则该目标业务请求为第一业务请求,该目标身份识别参数为第一账号对应的身份识别参数;如果目标账号为第二账号,则该目标业务请求为第二业务请求,该目标身份识别参数为第二账号对应的身份识别参数。身份识别参数的定义可参考前述图1对应的实施例中步骤s102的描述,此处不再赘述。可选地,在该目标账号为第一账号的情况下,如果该多个业务请求中存在第六业务请求,则确定第六业务请求对应的业务逻辑不存在越权漏洞,其中,第六业务请求为该多个业务请求中的不存在身份识别参数的业务请求。由于越权漏洞是指没有对请求的权限进行限制而可能存在漏洞,对于不存在身份识别参数的业务请求来说,其原本就不需要对请求的权限进行判断,即不可能存在越权漏洞,直接确定不存在身份识别参数的业务请求对应的逻辑不存在越权漏洞可省去对这一业务请求的检测,提高检测效率。s303,对所述目标业务请求进行放行,并拦截所述系统后台根据所述目标业务请求返回的数据,作为所述目标业务请求对应的第一目标返回数据,保存第一目标返回数据。这里,对目标业务请求进行放行是指将目标业务请求发送给该系统后台。本发明实施例中,如果目标账号为第一账号,则该第一目标返回数据为第一返回数据;如果目标账号为第二账号,则该第一目标返回数据为第三返回数据。可选地,在保存到该第一目标返回数据之后,还可以将该第一目标返回数据发送给所述待检测的系统对应的系统前台。可选地,在该目标账号为第一账号的情况下,该流程还可以包括:s304,对修改身份识别参数后的目标业务请求进行重放,并拦截所述系统后台根据重放的目标业务请求返回的数据,作为所述目标业务请求对应的第二目标返回数据,保存第二目标返回数据。在目标账号为第一账号的情况下,目标身份识别参数为第一账号对应的身份识别参数,修改身份识别参数后的目标业务请求中的身份识别参数为第二账号对应的身份识别参数。对修改身份识别参数之后的目标业务请求进行重放是指将步骤s302中保存的目标业务请求中的身份识别参数进行修改,将第一账号对应的身份识别参数修改为第二账号对应的身份识别参数,然后重新将目标业务请求发送给该系统后台。本发明实施例中,第二目标返回数据可以为上述实施例中的第二返回数据。本发明实施例中,通过截取触发各个业务逻辑后待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求,并对多个业务请求中的目标业务请求进行放行以及拦截系统后台返回的数据,实现了通过代理的方式获取各个业务逻辑对应的流量数据。参见图4,图4是本发明实施例提供的通过网络爬虫爬取的方式获取通过目标账号触发的多个业务逻辑中的各个业务逻辑对应的目标业务流量的流程示意图,在这种方式中,触发待检测的系统的多个业务逻辑这一操作由网络爬虫完成,如图所示,该流程包括:s401,确定触发的多个业务逻辑对应的多个业务请求。本发明实施例中,如果目标账号为第一账号,则该多个业务请求为通过第一账号触发的多个业务逻辑对应的多个业务请求;如果目标账号为第二账号,则该多个业务请求为通过第二账号触发的多个业务逻辑对应的多个业务请求。s402,将所述多个业务请求中存在目标身份识别参数的业务请求确定为目标业务请求,并保存所述目标业务请求。本发明实施例中,如果目标账号为第一账号,则该目标业务请求为第一业务请求,该目标身份识别参数为第一账号对应的身份识别参数;如果目标账号为第二账号,则该目标业务请求为第二业务请求,该目标身份识别参数为第二账号对应的身份识别参数。s403,将所述目标业务请求发送给所述待检测的系统对应的系统后台。s404,接收所述系统后台根据所述目标业务请求返回的数据,作为所述目标业务请求对应的第一目标返回数据,保存第一目标返回数据。本发明实施例中,如果目标账号为第一账号,则该第一目标返回数据为第一返回数据;如果目标账号为第二账号,则该第一目标返回数据为第三返回数据。可选地,该目标账号为第一账号的情况下,该流程还可以包括:s405,将修改身份识别参数后的目标业务请求发送给所述系统后台。在目标账号为第一账号的情况下,目标身份识别参数为第一账号对应的身份识别参数,修改身份识别参数后的目标业务请求中的身份识别参数为第二账号对应的身份识别参数。s406,接收所述系统后台根据修改身份识别参数之后的目标业务请求返回的数据,作为所述目标业务请求对应的第二目标返回数据,保存第二目标返回数据。本发明实施例中,第二目标返回数据可以为上述实施例中的第二返回数据。本发明实施例中,通过网络爬虫保存多个业务逻辑对应的多个请求中的目标业务请求并向待检测的系统对应的系统后台发送这些目标业务请求,从而可以获取到这些目标业务请求对应的返回数据,实现了对各个业务逻辑对应的流量数据的获取。参见图5,图5是本发明实施例提供的计算目标业务请求对应两个返回数据的相似度的方法的流程示意图,如图所示,该流程可包括:s501,确定第一目标返回数据对应的第一目标simhash值和第二目标返回数据对应的第二目标simhash值。这里,第一目标simhash值为基于simhash算法对第一目标返回数据进行计算得到的二进制字符串,第二目标simhash值为基于simhash算法对第二目标返回数据进行计算得到的二进制字符串。本发明实施例中,如果目标业务请求为第一业务请求,则第一目标返回数据为第一返回数据,第一目标simhash值为第一simhash值,第二目标返回数据为第二返回数据,第二目标simhash值为第二simhash值;如果目标业务请求为第四业务请求,则第一目标返回数据为第一返回数据,第一目标simhash值为第一simhash值,第二目标返回数据为第三返回数据,第二目标simhash值为第三simhash值。s502,确定第一目标simhash值和第二目标simhash值之间的汉明距离。汉明距离指两个二进制字符串对应位不同的数据,具体实现中,可以对第一目标simhash值和第二目标simhash值进行异或运算得到异或运算值,确定异或运算值中1的个数,即为第一目标simhash值和第二目标simhash值之间的汉明距离。举例来进行说明,例如,第一目标simhash值为0111010101和第二目标simhash值0101010100,将二者得到进行异或运算得到的异或运算值为0010000001,则确定第一目标simhash值和第二目标simhash值之间的汉明距离为2。s503,如果第一目标simhash值和第二目标simhash值之间的汉明距离小于预设汉明距离阈值,则确定第一目标返回数据和第二目标返回数据的相似度大于目标相似阈值。这里,预设汉明距离阈值可以为一个较小的值,例如为1,2,3,等等。本发明实施例中,如果目标业务请求为第一业务请求,则目标相似阈值可以设置为第一相似阈值;如果目标业务请求为第四业务请求,则目标相似阈值可以设置为第二相似阈值。本发明实施例中,通过确定一个业务请求对应的两个返回数据对应的simhash值的汉明距离,可确定这个请求对应的两个返回数据的相似度,简单方便。上面介绍了发明实施例的方法,下面介绍发明实施例的装置。参见图6,图6是本发明实施例提供的一种越权漏洞检测装置的组成结构示意图,如图所示,所述装置60包括:第一触发模块601,用于通过第一账号触发待检测的系统的多个业务逻辑;第一流量获取模块602,用于分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,所述第一业务流量包括第一业务请求和所述第一业务请求对应的第一返回数据,所述第一业务请求中的身份识别参数为所述第一账号对应的身份识别参数;参数修改模块603,用于分别将所述各个业务逻辑对应的第一业务请求中的身份识别参数修改为第二账号对应的身份识别参数,所述第一流量获取模块还用于分别获取修改身份识别参数后的第一业务请求对应的第二返回数据;相似度确定模块604,用于分别确定所述各个第一业务请求对应的第一返回数据与所述第二返回数据的相似度;漏洞确定模块605,用于如果所述各个第一业务请求中存在第二业务请求,则确定所述第二业务请求对应的业务逻辑存在越权漏洞,其中,所述第二业务请求对应的第一返回数据与第二返回数据的相似度大于第一相似阈值。在一种可能的设计中,所述相似度确定模块604具体用于:确定所述各个第一业务请求对应的第一simhash值和第二simhash值,所述第一simhash值为所述第一返回数据的simhash值,所述第二simhash值为所述第二返回数据的simhash值;确定所述各个第一业务请求对应的第一simhash值和第二simhash值之间的汉明距离;分别根据所述各个第一业务请求对应的第一simhash值和第二simhash值之间的汉明距离确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度。在一种可能的设计中,所述装置60还包括:第二触发模块606,用于通过第二账号触发所述待检测的系统的多个业务逻辑;第二流量获取模块607,用于分别获取通过所述第二账号触发的多个业务逻辑中的各个业务逻辑对应的第二业务流量,所述第二业务流量包括第三业务请求和所述第三业务请求对应的第三返回数据,所述第三业务请求中的身份识别参数为所述第二账号对应的身份识别参数;业务请求确定模块608,用于确定第四业务请求,所述第四业务请求为所述第二业务请求中与所述第三业务请求相同的业务请求;所述相似度确定模块604还用于确定所述第四业务请求对应的第一返回数据与第三返回数据的相似度;所述漏洞确定模块605还用于如果所述第四业务请求中存在第五业务请求,则确定所述第二业务请求中的除所述第五业务请求之外的业务请求对应的业务逻辑存在越权漏洞,所述第五业务请求对应的第一返回数据与第三返回数据的相似度大于第二相似阈值。在一种可能的设计中,所述第一流量获取模块602具体用于:分别拦截触发所述各个业务逻辑后所述待检测的系统对应的系统前台向所述待检测的系统对应的系统后台发起的多个业务请求;将所述多个业务请求中存在身份识别参数的业务请求确定为第一业务请求,并保存所述第一业务请求;对所述第一业务请求进行放行,并拦截所述系统后台根据所述第一业务请求返回的数据,作为所述第一业务请求对应的第一返回数据;保存所述第一返回数据。在一种可能的设计中,所述第一流量获取模块602具体还用于:如果所述多个业务请求中存在第六业务请求,则确定所述第六业务请求对应的业务逻辑不存在越权漏洞,所述第六业务请求为不存在身份识别参数的业务请求。在一种可能的设计中,所述第一流量获取模块602具体用于:通过网络爬虫分别获取所述业务逻辑中的各个业务逻辑对应的第一业务流量。在一种可能的设计中,所述身份识别参数包括cookie信息、session信息、用户账户标识或订单标识。需要说明的是,图6对应的实施例中未提及的内容可参见方法实施例的描述,这里不再赘述。本发明实施例中,越权漏洞检测装置分别以第一账号和第二账号的身份去发起在第一账号的权限范围内所能发起的请求以分别得到第一返回数据和第二返回数据,当第一返回数据和第二返回数据的相似度较高时,说明以第二账号的身份获取到了第一账号的权限范围内的数据,即以第二账号的身份获取到了不在第二账号的权限范围内的数据,从而确定该请求所对应的业务逻辑存在越权漏洞,无需人工操作和人工比对,提高了越权漏洞检测的检测效率;在确定可能第二业务请求之后,通过在第二业务请求中排除公共页面对应的业务请求,确定排除公共页面对应的业务请求后的第二业务请求对应的业务逻辑存在越权漏洞,降低越权漏洞误报的几率。参见图7,图7是本发明实施例提供的另一种越权漏洞检测装置的组成结构示意图,如图所示,该装置70包括处理器701、存储器702以及输入输出接口703。处理器701连接到存储器702和输入输出接口703,例如处理器701可以通过总线连接到存储器702和输入输出接口703。处理器701被配置为支持所述越权漏洞检测装置执行图1-图5所述的越权漏洞检测方法中相应的功能。该处理器701可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。存储器702存储器用于存储程序代码等。存储器702可以包括易失性存储器(volatilememory,vm),例如随机存取存储器(randomaccessmemory,ram);存储器702也可以包括非易失性存储器(non-volatilememory,nvm),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器702还可以包括上述种类的存储器的组合。本发明实施例中,存储器702用于存储越权漏洞检测程序。所述输入输出接口703用于输入或输出数据,具体实现中,该输入输出接口可包括显示屏、键盘或鼠标等部件。处理器701可以调用所述程序代码以执行以下操作:通过第一账号触发待检测的系统的多个业务逻辑;分别获取通过所述第一账号触发的多个业务逻辑中的各个业务逻辑对应的第一业务流量,所述第一业务流量包括第一业务请求和所述第一业务请求对应的第一返回数据,所述第一业务请求中的身份识别参数为所述第一账号对应的身份识别参数;分别将所述各个业务逻辑对应的第一业务请求中的身份识别参数修改为第二账号对应的身份识别参数,并分别获取修改身份识别参数后的各个第一业务请求对应的第二返回数据;分别确定所述各个第一业务请求对应的第一返回数据与第二返回数据的相似度;如果所述各个第一业务请求中存在第二业务请求,则确定所述第二业务请求对应的业务逻辑存在越权漏洞,其中,所述第二业务请求对应的第一返回数据与第二返回数据的相似度大于第一相似阈值。需要说明的是,各个操作的实现还可以对应参照图1-图5所示的方法实施例的相应描述;所述处理器701还可以与输入输出接口703配合执行上述方法实施例中的其他操作。本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法,所述计算机可以为上述提到的越权漏洞检测装置的一部分。例如为上述的处理器701。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1