一种报错型SQL注入的检测方法、代理服务器和存储介质技术

技术编号:17011649 阅读:26 留言:0更新日期:2018-01-11 08:24
本发明专利技术公开了一种报错型SQL注入的检测方法,在代理服务器中执行,该服务器中存储有第一模型库和第二模型库,第一模型检测网络请求是否为报错型SQL注入请求,第二模型检测网络响应是否为报错型SQL注入响应,方法包括:从客户端的网络请求中提取请求参数值,将请求参数值与第一模型库进行第一匹配;若第一匹配不成功,则放行该网络请求;接收网络服务器返回的网络响应,提取其中的响应内容并将该内容与第二模型库进行第二匹配;若第二匹配成功,则对请求参数值建模后添加到第一模型库中;以及从网络响应中删除匹配到的响应内容后放行该网络响应,并将网络请求中的URL与匹配到的响应内容关联存储,作为存在报错型SQL注入漏洞的URL和对应的漏洞泄露信息。

【技术实现步骤摘要】
一种报错型SQL注入的检测方法和代理服务器
本专利技术涉及计算机安全
,尤其涉及一种报错型SQL注入的检测方法和代理服务器。
技术介绍
网络漏洞是存在于计算机网络系统中的、可能对系统中的组成和数据造成损害的一切因素,其是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。从开放式Web应用程序安全项目(OWASP)所公布的2017年十大漏洞列表中可以看出,注入漏洞仍是Web安全最为严重的安全问题,而SQL注入漏洞在这其中占比最大。SQL注入漏洞是一种严重的Web安全漏洞,该漏洞主要是由于程序员在编写程序的时候没有对用户输入的参数进行有效性验证和过滤,导致恶意攻击者可将SQL命令注入到参数中,使得服务器执行这些SQL命令。利用SQL注入获取Web系统信息最为常用的手法是注入报错型语句。目前对于SQL注入漏洞的检测方法中,通常是基于特征的检测方法或基于SQL语法语义的检测方法。然而,这些检测方法并不能解答网站漏洞是否真实存在,以及攻击者利用漏洞获取到了什么信息等网站管理者关心的问题。因此,需要提供一种能够准确检测报错型SQL注入,并明确漏洞是否存在以及漏洞所泄露信息的方法。
技术实现思路
鉴于上述问题,本专利技术提出了一种报错型SQL注入的检测方法和代理服务器,以力图解决或者至少解决上面存在的问题。根据本专利技术的一个方面,提供一种报错型SQL注入的检测方法,在代理服务器中执行,代理服务器中存储有第一模型库和第二模型库,第一模型库中包括多个第一模型,第一模型适于检测网络请求是否为报错型SQL注入请求,第二模型库中包括多个第二模型,第二模型适于检测网络响应是否为报错型SQL注入响应,方法包括:接收客户端发送的网络请求,提取网络请求中的请求参数值,并将请求参数值与第一模型库进行第一匹配;当第一匹配的结果为未匹配到第一模型库中的第一模型时,将该网络请求作为第一类型网络请求放行;接收网络服务器根据第一类型网络请求所返回的网络响应,提取网络响应中的响应内容,并将响应内容与第二模型库进行第二匹配;当第二匹配的结果为匹配到第二模型库中的第二模型时,对请求参数值进行建模得到第一模型,并将该第一模型添加到第一模型库中;以及从网络响应中删除匹配到的响应内容后放行该网络响应,并将该网络响应对应的网络请求中的URL与匹配到的响应内容进行关联存储,作为存在报错型SQL注入漏洞的URL和对应的漏洞泄露信息。可选地,在根据本专利技术的报错型SQL注入的检测方法中,还包括:当第二匹配的结果为未匹配到第二模型库中的第二模型时,放行该网络响应。可选地,在根据本专利技术的报错型SQL注入的检测方法中,还包括:当第一匹配的结果为匹配到第一模型库中的第一模型时,将请求参数值与SQL执行引擎中的预定义语句拼接为SQL语句,执行该SQL语句,得到执行结果;对执行结果进行建模得到第二模型,将该第二模型添加到第二模型库中,并将该网络请求作为第二类型网络请求放行。可选地,在根据本专利技术的报错型SQL注入的检测方法中,还包括;接收网络服务器根据第二类型网络请求所返回的网络响应,提取网络响应中的响应内容,并将响应内容与第二模型库进行第三匹配;当第三匹配的结果为匹配到第二模型库中的第二模型时,从网络响应中删除匹配到的响应内容后放行该网络响应,并将该网络响应对应的网络请求中的URL与匹配到的响应内容进行关联存储,作为存在报错型SQL注入漏洞的URL和对应的漏洞泄露信息。可选地,在根据本专利技术的报错型SQL注入的检测方法中,还包括:当第三匹配结果为未匹配到第二模型库中的第二模型时,从第一模型库中删除在执行第一匹配时所匹配到的第一模型,并放行该网络响应。可选地,在根据本专利技术的报错型SQL注入的检测方法中,还包括:对常用的报错型SQL注入请求中的注入语句进行建模,得到多个第一模型,并将多个第一模型的集合构建为第一模型库;对常用的报错型SQL注入响应对应的报错内容进行建模,得到多个第二模型,并将所述多个第二模型的集合构建为第二模型库。可选地,在根据本专利技术的报错型SQL注入的检测方法中,网络请求为http请求,网络响应为http响应。可选地,在根据本专利技术的报错型SQL注入的检测方法中,第一模型和第二模型为基于正则表达式的模型,所述第一匹配、第二匹配和第三匹配为正则匹配。根据本专利技术的又一个方面,提供一种代理服务器,包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,所述一个或多个程序包括用于执行根据如上所述的报错型SQL注入的检测方法的指令。根据本专利技术的又一个方面,提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由代理服务器执行时,使得该代理服务器执行根据如上所述的报错型SQL注入的检测方法。根据本专利技术的技术方案,代理服务器中预先存储第一模型库和第二模型库,第一模型库中的第一模型适于检测网络请求是否为报错型SQL注入请求,第二模型库中的第二模型适于检测网络响应是否为报错型SQL注入响应。当代理服务器接收到客户端的网络请求时,从该请求中提取请求参数值,并将该参数值与第一模型库匹配。若请求匹配不成功,则继续对该网络响应的响应内容进行匹配,若响应匹配成功,则对请求参数值建模为第一模型后对第一模型库进行更新,此时该请求的URL即为报错型SQL注入漏洞的URL,所匹配的响应内容为对应的漏洞泄露信息。另一方面,若请求匹配成功,则将该请求构造为SQL语句进行执行,并将执行结果建模后对第二模型库进行更新。放行该请求后得到网络响应,若响应匹配成功,则说明该请求的URL为报错型SQL注入漏洞的URL,所匹配的响应内容为对应的漏洞泄露信息。若响应匹配不成功,则将该请求所匹配的第一模型删除。这样,本专利技术能够准确地检测报错型SQL注入,并明确漏洞是否存在以及漏洞所泄露的信息。而且,本专利技术还能对第一模型库和第二模型库进行交叉验证,即根据网络请求对第二模型库更新,以及根据网络响应对第一模型库更新,从而进一步提高两个模型库的准确度。附图说明为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。图1示出了根据本专利技术一个实施例的网络系统100的结构框图;图2示出了根据本专利技术一个实施例的代理服务器200的结构框图;以及图3示出了根据本专利技术一个实施例的报错型SQL注入的检测方法300的流程图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的网络系统100的示意图。如图中所示,网络系统100包括客户端120(如客户端1-n)、代理服务器140和网络服务器16本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/201710865971.html" title="一种报错型SQL注入的检测方法、代理服务器和存储介质原文来自X技术">报错型SQL注入的检测方法、代理服务器和存储介质</a>

【技术保护点】
一种报错型SQL注入的检测方法,在代理服务器中执行,所述代理服务器中存储有第一模型库和第二模型库,所述第一模型库中包括多个第一模型,所述第一模型适于检测网络请求是否为报错型SQL注入请求,所述第二模型库中包括多个第二模型,所述第二模型适于检测网络响应是否为报错型SQL注入响应,所述方法包括:接收客户端发送的网络请求,提取所述网络请求中的请求参数值,并将请求参数值与第一模型库进行第一匹配;当第一匹配的结果为未匹配到第一模型库中的第一模型时,将该网络请求作为第一类型网络请求放行;接收网络服务器根据第一类型网络请求所返回的网络响应,提取所述网络响应中的响应内容,并将响应内容与第二模型库进行第二匹配;当第二匹配的结果为匹配到第二模型库中的第二模型时,对所述请求参数值进行建模得到第一模型,并将该第一模型添加到第一模型库中;以及从网络响应中删除匹配到的响应内容后放行该网络响应,并将该网络响应对应的网络请求中的URL与匹配到的响应内容进行关联存储,作为存在报错型SQL注入漏洞的URL和对应的漏洞泄露信息。

【技术特征摘要】
1.一种报错型SQL注入的检测方法,在代理服务器中执行,所述代理服务器中存储有第一模型库和第二模型库,所述第一模型库中包括多个第一模型,所述第一模型适于检测网络请求是否为报错型SQL注入请求,所述第二模型库中包括多个第二模型,所述第二模型适于检测网络响应是否为报错型SQL注入响应,所述方法包括:接收客户端发送的网络请求,提取所述网络请求中的请求参数值,并将请求参数值与第一模型库进行第一匹配;当第一匹配的结果为未匹配到第一模型库中的第一模型时,将该网络请求作为第一类型网络请求放行;接收网络服务器根据第一类型网络请求所返回的网络响应,提取所述网络响应中的响应内容,并将响应内容与第二模型库进行第二匹配;当第二匹配的结果为匹配到第二模型库中的第二模型时,对所述请求参数值进行建模得到第一模型,并将该第一模型添加到第一模型库中;以及从网络响应中删除匹配到的响应内容后放行该网络响应,并将该网络响应对应的网络请求中的URL与匹配到的响应内容进行关联存储,作为存在报错型SQL注入漏洞的URL和对应的漏洞泄露信息。2.如权利要求1所述的方法,其中,还包括:当第二匹配的结果为未匹配到第二模型库中的第二模型时,放行该网络响应。3.如权利要求1所述的方法,其中,还包括:当第一匹配的结果为匹配到第一模型库中的第一模型时,将所述请求参数值与SQL执行引擎中的预定义语句拼接为SQL语句,执行该SQL语句,得到执行结果;对执行结果进行建模得到第二模型,将该第二模型添加到第二模型库中,并将该网络请求作为第二类型网络请求放行。4.如权利要求3所述的方法,其中,还包括...

【专利技术属性】
技术研发人员:郭宝军
申请(专利权)人:北京知道创宇信息技术有限公司
类型:发明
国别省市:北京,11

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

1