注入漏洞检测方法及装置制造方法及图纸

技术编号:19186712 阅读:23 留言:0更新日期:2018-10-17 02:20
本发明专利技术涉及了一种注入漏洞检测方法及装置,所述注入漏洞检测方法包括:接收应用程序根据携带探测标记的参数发起的网页访问请求,所述网页访问请求指示所述应用程序请求访问的网页;响应所述网页访问请求,根据携带探测标记的参数对业务数据库进行注入式查询;监控所述业务数据库的查询过程,获取查询过程中生成的已执行数据库语句;对包含所述探测标记的已执行数据库语句进行语法分析,得到用于指示所述网页是否存在注入漏洞的检测结果。采用本发明专利技术所提供的注入漏洞检测方法及装置解决了现有技术中注入漏洞检测效率低下的问题。

Injection vulnerability detection method and device

The present invention relates to an injection vulnerability detection method and device. The injection vulnerability detection method includes: receiving a web page access request initiated by an application program according to a parameter carrying a detection mark, the web page access request instructing the web page requested by the application program, and responding to the web page access request and carrying the web page access request. The parameters of the probe tag perform an injection query on the business database, monitor the query process of the business database, obtain the executed database statements generated during the query process, and parse the executed database statements containing the probe tag to obtain a syntax to indicate whether the Web page has injection vulnerabilities. Test results. The injection vulnerability detection method and the device provided by the invention solve the problem of low efficiency of injection vulnerability detection in the prior art.

【技术实现步骤摘要】
注入漏洞检测方法及装置
本专利技术涉及计算机
,尤其涉及一种注入漏洞检测方法及装置。
技术介绍
随着计算机技术的发展,终端中安装的应用程序能够为用户提供的线下服务越来越丰富,且随着用户需求的多元化,应用程序也会需要将一些服务部署在业务服务器中,使得应用程序通过网页访问请求的发起,而请求对业务服务器中部署的业务数据库进行查询,进而获得业务服务器返回的网页资源,以便于用户享受应用程序借由此网页资源所提供的线上服务。对于业务数据库所进行的查询而言,可以是无参数的非注入式查询,也可以是含参数的注入式查询。如果业务服务器针对含参数的注入式查询未进行参数校验,则攻击者有机会通过参数注入导致业务服务器返回错误的网页资源,进而导致应用程序根据错误的网页资源所提供的线上服务出错。目前,针对参数注入的注入漏洞检测方法主要包括:页面相似度、时间延迟、报错信息和联合查询等方法。然而,上述方法虽然能够准确地检测注入漏洞,但是需要向业务服务器发起上千次甚至更多次的网页访问请求,不仅会耗费大量的时间,并占用大量的传输带宽,而且还会造成业务服务器过高的任务处理压力。由上可知,现有的注入漏洞检测方法仍存在检测效率低下的问题。
技术实现思路
为了解决上述技术问题,本专利技术的一个目的在于提供一种注入漏洞检测方法及装置。其中,本专利技术所采用的技术方案为:一种注入漏洞检测方法,包括:接收应用程序根据携带探测标记的参数发起的网页访问请求,所述网页访问请求指示所述应用程序请求访问的网页;响应所述网页访问请求,根据携带探测标记的参数对业务数据库进行注入式查询;监控所述业务数据库的查询过程,获取查询过程中生成的已执行数据库语句;对包含所述探测标记的已执行数据库语句进行语法分析,得到用于指示所述网页是否存在注入漏洞的检测结果。一种注入漏洞检测装置,包括:请求接收模块,用于接收应用程序根据携带探测标记的参数发起的网页访问请求,所述网页访问请求指示所述应用程序请求访问的网页;请求响应模块,用于响应所述网页访问请求,根据携带探测标记的参数对业务数据库进行注入式查询;查询监控模块,用于监控所述业务数据库的查询过程,获取查询过程中生成的已执行数据库语句;语法分析模块,用于对包含所述探测标记的已执行数据库语句进行语法分析,得到用于指示所述网页是否存在注入漏洞的检测结果。一种注入漏洞检测装置,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的注入漏洞检测方法。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的注入漏洞检测方法。在上述技术方案中,通过接收应用程序根据携带探测标记的参数而发起的网页访问请求,进而通过此网页访问请求的响应,根据携带探测标记的参数对业务数据库进行注入式查询,并获取业务数据库查询过程中生成的已执行数据库语句,以通过对包含探测标记的已执行数据库语句进行语法分析,得到用于指示网页访问请求所指示的网页是否存在注入漏洞检测的检测结果。也就是说,利用注入漏洞是因参数注入导致的特性,将携带探测标记的参数注入,进而通过对包含此探测标记的已执行数据库语句进行语法分析来判断网页是否存在注入漏洞,使得仅需要向业务服务器发起极少次数的网页访问请求即可准确地检测注入漏洞,避免大量时间的耗费以及大量传输带宽的占用,以此解决了现有技术中注入漏洞检测效率低下的问题,从而有效地降低了业务服务器过高的任务处理压力。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并于说明书一起用于解释本专利技术的原理。图1是根据本专利技术所涉及的实施环境的示意图。图2是根据一示例性实施例示出的一种服务器的硬件结构框图。图3是根据一示例性实施例示出的一种注入漏洞检测方法的流程图。图4是图3对应实施例中步骤330在一个实施例的流程图。图5是图3对应实施例中步骤350在一个实施例的流程图。图6是图3对应实施例中步骤370在一个实施例的流程图。图7是图6对应实施例中步骤373在一个实施例的流程图。图8是图6对应实施例中步骤375在一个实施例的流程图。图9是一应用场景中一种注入漏洞检测方法的具体实现架构示意图。图10是一应用场景中一种注入漏洞检测方法的具体实现时序图。图11是根据一示例性实施例示出的一种注入漏洞检测装置的框图。图12是图11对应实施例中请求响应模块在一个实施例的框图。图13是图11对应实施例中查询监控模块在一个实施例的框图。图14是图11对应实施例中语法分析模块在一个实施例的框图。图15是图14对应实施例中目标确定单元在一个实施例的框图。图16是图14对应实施例中漏洞检测单元在一个实施例的框图。通过上述附图,已示出本专利技术明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本专利技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本专利技术的概念。具体实施方式这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。如前所述,注入漏洞是因参数注入导致的,即在对业务数据库的查询过程中,随着参数被注入业务数据库,可能造成查询过程中生成的已执行数据库语句不满足语法规则。举例来说,当应用程序请求访问的网页不存在注入漏洞时,针对含参数的注入式查询,查询过程中生成的已执行数据库语句,例如,SQL=select*fromxxxwhereartist=‘test’,或者,SQL=select*fromxxxwhereartist=‘\’test’,其中,SQL表示已执行数据库语句,artist表示被注入的参数,test表示此参数的参数值。简言之,对于已执行数据库语句而言,当参数值为字符串时,单引号字符“’”会成对出现,而其余单引号字符“’”则会通过添加转义字符“\”进行转义,来区别成对出现的单引号字符“’”,此时,已执行数据库语句满足语法规则。假设应用程序请求访问的网页存在注入漏洞,则业务数据库查询过程中,转义字符“\”无法添加,导致已执行数据库语句除了成对出现的单引号字符“’”,将出现未进行转义的多余的单引号字符“’”,使得已执行数据库语句无法满足语法规则,进而造成业务服务器返回错误的网页资源,最终导致应用程序根据错误的网页资源所提供的线上服务出错。基于此,目前针对参数注入的注入漏洞检测方法主要包括:页面相似度、时间延迟、报错信息和联合查询等方法。具体地,(1)页面相似度方法,分别将满足语法规则的数据库语句(例如1=1)和不满足语法规则的数据库语句(例如1=2)传递至参数,并通过包含此参数的网页访问请求将此参数注入业务数据库,以此接收业务服务器返回的正确网页资源和错误网页资源。通过比对根据错误网页资源显示的网页与原始网页之间的第一相似度,以及比对根据错误网页资源显示的网页与正确网页资源显示的网页之间的第二相似度,通过比较第一相似度和第二相似度本文档来自技高网...

【技术保护点】
1.一种注入漏洞检测方法,其特征在于,包括:接收应用程序根据携带探测标记的参数发起的网页访问请求,所述网页访问请求指示所述应用程序请求访问的网页;响应所述网页访问请求,根据携带探测标记的参数对业务数据库进行注入式查询;监控所述业务数据库的查询过程,获取查询过程中生成的已执行数据库语句;对包含所述探测标记的已执行数据库语句进行语法分析,得到用于指示所述网页是否存在注入漏洞的检测结果。

【技术特征摘要】
1.一种注入漏洞检测方法,其特征在于,包括:接收应用程序根据携带探测标记的参数发起的网页访问请求,所述网页访问请求指示所述应用程序请求访问的网页;响应所述网页访问请求,根据携带探测标记的参数对业务数据库进行注入式查询;监控所述业务数据库的查询过程,获取查询过程中生成的已执行数据库语句;对包含所述探测标记的已执行数据库语句进行语法分析,得到用于指示所述网页是否存在注入漏洞的检测结果。2.如权利要求1所述的方法,其特征在于,所述响应所述网页访问请求,根据携带探测标记的参数对业务数据库进行注入式查询,包括:从所述网页访问请求中提取得到携带所述探测标记的参数;将携带所述探测标记的参数注入所述业务数据库,通过注入的参数进行所述业务数据库的查询。3.如权利要求1所述的方法,其特征在于,所述监控所述业务数据库的查询过程,获取查询过程中生成的已执行数据库语句,包括:对所述业务数据库的查询过程进行监控,生成描述所述查询过程的行为日志;从所述行为日志中提取得到所述已执行数据库语句。4.如权利要求1所述的方法,其特征在于,所述对包含所述探测标记的已执行数据库语句进行语法分析,得到用于指示所述网页是否存在注入漏洞的检测结果,包括:根据所述探测标记进行所述已执行数据库语句的过滤,得到包含所述探测标记的已执行数据库语句;由包含所述探测标记的已执行数据库语句中获得目标数据库语句;在所述目标数据库语句中检测所述探测标记是否存在于指定字符串之外,得到所述检测结果,所述检测结果指示了所述网页是否存在注入漏洞。5.如权利要求4所述的方法,其特征在于,所述由包含所述探测标记的已执行数据库语句中获得目标数据库语句,包括:对包含所述探测标记的已执行数据库语句进行起始语句位置查找;在包含所述探测标记的已执行数据库语句中确定所述探测标记的语句位置;将所述起始语句位置与所述探测标记的语句位置之间的字符串作为所述目标数据库语句。6.如权利要求4所述的方法,其特征在于,所述在所述目标数据库语句中检测所述探测标记是否存在于指定字符串之外,得到所述检测结果,包括:对所述目标数据库语句中指定字符串以及所述指定字符串相关联的字符串进行数量统计;根据数量统计结果判断所述目标数据库语句是否满足语法规则;如果为否,则所述检测结果指示所述网页存在注入漏洞。7.一种注入漏洞检测装置,其特征在于,包括:请求接收模块,用于接收应用程序根据携带探测标记的参数发起的网页访问请求,所述网页访问请求指示所述应用程序请求访问的网页...

【专利技术属性】
技术研发人员:牛保龙杨勇胡珀刘志颖李相垚易楠陈剑洪旭升苗军
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1