CN110535973A - 一种sql注入威胁的检测方法及装置 - Google Patents
一种sql注入威胁的检测方法及装置 Download PDFInfo
- Publication number
- CN110535973A CN110535973A CN201910883633.4A CN201910883633A CN110535973A CN 110535973 A CN110535973 A CN 110535973A CN 201910883633 A CN201910883633 A CN 201910883633A CN 110535973 A CN110535973 A CN 110535973A
- Authority
- CN
- China
- Prior art keywords
- sha1 value
- value
- sha1
- http request
- matching result
- 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
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种sql注入威胁的检测方法及装置。所述方法包括:获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
Description
技术领域
本发明涉及文件处理技术领域,特别是涉及一种sql注入威胁的检测方法及装置。
背景技术
sql注入,就是通过把sql命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。具体来说,它是利用现有应用程序,将恶意的sql命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意sql语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行sql语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到sql注入式攻击。
利用sql注入漏洞,攻击者可以绕过应用程序验证过程、窃取和篡改应用程序后台敏感数据、增加管理员账号、上传和下载非法文件、以及安装木马、僵尸,甚至控制整个数据库服务器。sql注入攻击已经成为当前最为严重的安全攻击事件。
现有技术方案对于解决sql注入的问题,需要编程人员进行编程处理,通常采用在为服务器代码编写时写入预防sql注入的代码进行防御,对编程人员的要求比较高,编程人员需要掌握各种各样的sql注入方式,而且还不能通过编程完全解决sql注入威胁的检测,可能需要修改很多sql文件才能解决问题并且响应速度较慢,不能及时响应可能数据已经泄露。
发明内容
本发明提供了一种sql注入威胁的检测方法及装置,以解决现有技术中对的sql注入威胁的检测复杂且响应较慢的问题。
为了解决上述问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种文件类型的识别方法,包括:
获取请求端向应用服务器发送的超文本传输协议HTTP请求;
计算所述HTTP请求的第一sha1值;
将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;
若所述匹配结果为正确,则向所述请求端返回请求成功的结果。
可选地,所述将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果,包括:
根据计算得到的所述第一sha1值在预设数据库中进行查找,其中,所述预设数据库包括第二sha1值和与所述第二sha1值相对应的匹配结果;
若所述第一sha1值和所述预设数据库中的所述第二sha1值相同,则返回与所述第二sha1值相对应的匹配结果;
将所述与所述第二sha1值相对应的匹配结果确定为与所述第一sha1值相对应的匹配结果。
可选地,所述预设数据库为Redis数据库,采用如下方法建立:
采用Grok插件的正则表达式对所述样本中的HTTP请求进行sql注入风险信息过滤,获得过滤结果;
采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将所述第二sha1值和与所述第二sha1值相对应的匹配结果以Key-Value键值对的方式通过Output插件输出到所述Redis数据库中进行保存。
可选地,所述采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果包括:
若所述样本中的HTTP请求中存在sql注入风险信息,则返回第一匹配结果;
若所述样本中的HTTP请求中不存在sql注入风险信息,则返回第二匹配结果。
可选地,所述获取请求端向应用服务器发送的超文本传输协议HTTP请求,包括:
获取浏览器或外部系统向应用服务器发送的超文本传输协议HTTP请求。
第二方面,本发明实施例提供了一种sql注入威胁的检测装置,包括:
获取模块,用于获取请求端向应用服务器发送的超文本传输协议HTTP请求;
计算模块,用于计算所述HTTP请求的第一sha1值;
匹配模块,用于将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;
返回模块,用于若所述匹配结果为正确,则向所述请求端返回请求成功的结果。
可选地,所述匹配模块用于:
根据计算得到的所述第一sha1值在预设数据库中进行查找,其中,所述预设数据库包括第二sha1值和与所述第二sha1值相对应的匹配结果;
若所述第一sha1值和所述预设数据库中的所述第二sha1值相同,则返回与所述第二sha1值相对应的匹配结果;
将所述与所述第二sha1值相对应的匹配结果确定为与所述第一sha1值相对应的匹配结果。
可选地,所述预设数据库为Redis数据库,所述装置还包括预设数据库建立模块,所述预设数据库建立模块用于:
采用Grok插件的正则表达式对所述样本中的HTTP请求进行sql注入风险信息过滤,获得过滤结果;
采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将所述第二sha1值和与所述第二sha1值相对应的匹配结果以Key-Value键值对的方式通过Output插件输出到所述Redis数据库中进行保存。
可选地,所述预设数据库建立模块用于:
若所述样本中的HTTP请求中存在sql注入风险信息,则返回第一匹配结果;
若所述样本中的HTTP请求中不存在sql注入风险信息,则返回第二匹配结果。
可选地,所述获取模块用于:
获取浏览器或外部系统向应用服务器发送的超文本传输协议HTTP请求。
第三方面,本发明实施例提供了一种终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项的步骤。
与现有技术相比,本发明包括以下优点:
在本发明实施例中,通过获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,说明所述HTTP请求中存在sql注入风险信息,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
附图说明
图1示出了本发明实施例提供的一种sql注入威胁的检测方法的步骤流程图;
图2示出了本发明实施例提供的sql注入威胁的检测系统的结构示意图;
图3示出了本发明又一实施例提供的一种sql注入威胁的检测方法的步骤流程图;
图4示出了本发明实施例提供的一种sql注入威胁的检测装置的结构示意图;
图5示出了本发明实施例提供的终端的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
对本发明实施例涉及到的名词进行如下解释:
Logstash:开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到“存储库”中,Logstash支持各种输入选择,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从日志、指标、Web应用、数据存储以及各种AWS服务采集数据,数据从源传输到存储库的过程中,Logstash过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值,Logstash采用可插拔框架,拥有200多个插件。
Redis:一个key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set,有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
Grok过滤器插件:是Logstash中默认可用的几个插件之一,是Filter插件的一种,可以将非结构化日志数据解析为结构化和可查询的数据。
SHA1:Secure Hash Algorithm,安全哈希算法,主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital SignatureAlgorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。
Ruby:是开源的,在Web上免费提供,但需要遵守开源软件协议,是一种通用的、解释的编程语言,是一种真正的面向对象编程语言,是一种类似于Python和Perl的服务器端脚本语言,Ruby可以用来编写通用网关接口(CGI)脚本,可以被嵌入到超文本标记语言(HTML)。
基于上述的内容,本发明一实施例提供一种sql注入威胁的检测方法,用于对HTTP请求中的sql注入威胁进行检测。本实施例的执行主体为应用服务器。
图1示出了本发明实施例提供的一种sql注入威胁的检测方法的步骤流程图,如图1所示,具体可以包括如下步骤:
S101、获取请求端向应用服务器发送的超文本传输协议HTTP请求;
具体地,请求端可以是浏览器或者外部系统,通过浏览器或者外部系统发送到应用服务器的HTTP请求;
应用服务器对HTTP请求不断监听,可以采集到可以采集到所有需要访问应用服务器的HTTP请求,其中,HTTP请求至少包括URL及日志中的SQL注入的代码;
S102、计算所述HTTP请求的第一sha1值;
具体的,应用服务器采集到HTTP请求后,使用java语言对该请求计算第一sha1值,其中,该第一sha1值可以为字符串。
S103、将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;
S104、若所述匹配结果为正确,则向所述请求端返回请求成功的结果;
具体地,应用服务器根据计算得到的第一sha1值在预设数据库中进行匹配,找到与第一sha1值相对应的匹配结果,并对该匹配结果进行判断。
若匹配结果为正确true,则向请求端返回请求成功的结果,也就是说该HTTP请求中包含有sql注入风险信息,应用服务器对此请求进行拦截,不会给请求端返回响应数据。
若匹配结果为错误false,则向请求端返回请求失败的结果,也就是说该HTTP请求中不包含有sql注入风险信息,应用服务器不对此请求进行拦截,为请求端返回相应的响应数据。
本发明实施例提供的sql注入威胁的检测方法,通过获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,说明所述HTTP请求中存在sql注入风险信息,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
本发明又一实施例对上述实施例提供的方法做进一步补充说明。
在上述实施例的基础上,可选地,所述将第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果,包括:
根据计算得到的所述第一sha1值在预设数据库中进行查找,其中,所述预设数据库包括第二sha1值和与所述第二sha1值相对应的匹配结果;
若所述第一sha1值和所述预设数据库中的所述第二sha1值相同,则返回与所述第二sha1值相对应的匹配结果;
将所述与所述第二sha1值相对应的匹配结果确定为与所述第一sha1值相对应的匹配结果。
可选地,所述预设数据库为Redis数据库,采用如下方法建立:
采用Grok插件的正则表达式对所述样本中的HTTP请求进行sql注入风险信息过滤,获得过滤结果;
采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将所述第二sha1值和与所述第二sha1值相对应的匹配结果以Key-Value键值对的方式通过Output插件输出到所述Redis数据库中进行保存。
具体地,在应用服务器上安装有Logstash服务和Redis数据服务,Logstash中包含有Input插件、Filter插件和Output插件,其中,Filter插件还包括多种插件,本发明实施例中采用的是Grok插件和Ruby插件:
Input插件采集到浏览器发送的HTTP请求,该地址信息中包含sql注入风险信息;
Input插件获取到HTTP请求后,利用Grok插件的正则表达式对该请求中的sql注入风险信息进行过滤,可能获得与sql注入风险信息相同的信息,也可能获取不到该信息,获得过滤结果,并将过滤结果保存在结构化数据中。
采用Ruby插件对获得的所述过滤结果进行判断,若获得的过滤结果中存在sql注入风险信息,则获得正确的匹配结果,即得到true的结果,若获得的过滤结果中不存在sql注入风险信息,则获得错误的匹配结果,即得到false的结果;记录每一个HTTP请求对应的匹配结果,即匹配结果为正确或错误。
具体地,Logstash的Grok过滤通过正则表达式(DELETE、OR、AND1=1)配置的方式实现HTTP请求中可能存在sql注入分析的关键字进行匹配;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将当前请求的第二sha1值和与第二sha1值相对应的匹配结果(true或false)以Key-Value键值对的方式通过Output插件输出到Redis数据库中进行保存需要说明的是,本发明实施例中可采用各种类型的数据库,但为了能更快进行响应,则优选地,由于Redis数据库是直接从内存中进行读取,所以本发明实施例选择Redis数据库进行存储。
可选地,采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果包括:
若所述样本中的HTTP请求中存在sql注入风险信息,则返回第一匹配结果;
若所述样本中的HTTP请求中不存在sql注入风险信息,则返回第二匹配结果。
具体地,作为一种可选地方式,Grok插件判断当前HTTP请求中是否存在DELETE、OR、AND1=1的表达式,若存在,则将匹配到的DELETE、OR、AND1=1保存到结构化数据中。
采用Ruby插件对保存到结构化数据中的内容进行判断,若存在DELETE、OR、AND1=1的表达式,则返回第第一匹配结果,即正确true;
若不存在DELETE、OR、AND1=1的表达式,则返回第第二匹配结果,即错误false,说明该请求中不存在sql注入风险信息。
作为另一种可选地方式,Grok插件对当前HTTP请求中是否存在select、update、and、or、delete、insert、trancate、char、into、subst、ascii、declare、exec、count、master、drop、execute等sql注入风险信息进行匹配,将匹配到的内容保存到结构化数据中;其中,sql注入关键字也就是sql注入风险信息。
采用Ruby插件对保存到结构化数据中的内容进行判断,若存在sql注入风险信息,则返回第一匹配结果,即正确true。
若不存在,则返回第二匹配结果,即错误false,说明该请求中不存在sql注入风险信息。
图2示出了本发明实施例提供的sql注入威胁的检测系统的结构示意图,如图2所示,包括Redis数据库的建立过程和实际的应用过程,其中,Redis数据库的建立过程如下:
应用服务器上的Logstash201的Input插件2011对应用服务器HTTP请求进行监听,可以采集到所有需要访问服务器的HTTP请求;
应用服务器上的Logstash的Filter插件2012通过正则表达式配置的方式对HTTP请求中可能存在sql注入分析的关键字进行匹配,获取匹配结果,并进行SHA1计算;
应用服务器上的Logstash的Output插件2013将结果即(SHA1、匹配结果)输出到Redis数据库202中保存。
实际的应用过程中,应用服务器端203执行如下操作:
获取请求端向应用服务器发送的超文本传输协议HTTP请求;
计算HTTP请求的第一sha1值;
根据计算得到的第一sha1值在预设Redis数据库202中进行匹配,确定与第一sha1值相对应的匹配结果;
判断与第一sha1值相对应的匹配结果;
若匹配结果为正确,则返回HTTP请求请求成功的结果,且HTTP请求中存在sql注入风险信息。
若匹配结果为错误,则返回HTTP请求请求失败的结果,且HTTP请求中不存在sql注入风险信息,客户端可以从应用服务器获取到HTTP请求对应的响应数据。
图3示出了本发明又一实施例提供的一种sql注入威胁的检测方法的步骤流程图,如图3所示,具体地,Redis数据库建立过程如下:
S301、获取浏览器或外部系统的HTTP请求;
S302、Input插件监听HTTP请求,并采集HTTP请求;
用户在本地电脑的浏览器点击一个网站,浏览器就将该网页的http请求发送到应用服务器,且应用服务器上设置有Redis数据存储服务、Logstash服务,应用服务器通过Logstash的Input插件监听端口,并采集浏览器发送的http请求,首先浏览器发送登录系统的HTTP请求,该地址信息中包含sql注入风险信息;
例如:
http://192.168.148.250:8082/approve/login?Name=admin&password=weror1=1;这种URL就是存在sql注入风险的URL,其中,password=weror1=1即为sql注入风险信息。
S303、Filter插件Grok正则匹配实现sql注入关键字的匹配;
应用服务器上的Logstash在Input插件获取到的请求后,利用Grok插件通过正则表达式的配置的方式对HTTP请求中可能存在sql注入分析的关键字进行过滤。
具体的实现过程如下所示:
通过正则匹配到union关键字、sql关键字等信息,将匹配到的数据复写到结构化数据中。
S304、Filter插件Ruby编码判断计算sql注入结果(TRUE/FALSE)以及请求位移标识值(SHA1);
采用Logstash的Ruby插件对获得的过滤结果进行判断,获得所述sql注入风险信息的匹配结果;采用Ruby插件计算样本中的HTTP请求的第二sha1值,该sha1值作为请求的唯一标识值
通过Ruby插件对Grok插件的过滤结果进行判断,若存在关键字,则获得匹配结果为正确,为true,若不存在sql关键字信息字,则获得匹配结果为false,具体步骤如下:
sqlmessage不为空,则表示匹配到sql注入风险。
调用Ruby插件中的sha1计算方法,具体的计算过程就是传递url字符串,调用sha1算法,计算得到当前HTTP对应的字符串的第二SHA1值,
如:
Require digest/sha1
puts Digest::SHA1.hexdigest('admin')
这种方法就能得到admin的sha1值。
并将得到的第二sha1值作为Redis数据库的Key值,匹配结果作为Redis数据库的Value值。
S305、Output插件输出结果;
将当前请求的第二sha1值作为Redis中的Key关键字,将匹配结果作为Value值,进行组装;
S306、Redis数据库以Key-Value键值对存储结果;
Logstash的Output插件将组装结果(第二sha1值、匹配结果)的形式输出到Redis数据库中保存。
在实际应用程序中:
S307、接收HTTP请求;
S308、根据请求唯一值获取请求结果;
应用服务器通过java对获取的HTTP请求计算得到第一sha1值,并将第一sha1值与Redis数据库中的第二sha1值进行匹配,获得匹配结果。
S309、判断结果是否为TRUE;
对匹配结果进行判断,若是,则执行S310;
若否,则执行S311;
S310、返回请求成功结果;匹配成功则表示有sql注入风险。
S311、返回请求错误结果;匹配错误则表示没有sql注入风险。
应用服务器通过java对获取的HTTP请求计算得到第一sha1值与Redis数据库中的第二sha1值进行匹配,匹配成功则表示有sql注入风险,实现对存在sql注入风险的HTTP请求拦截的作用,能快速响应新发现的sql注入问题,通过修改Grok正则表达式的方式实现新问题的匹配。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明另一实施例提供一种sql注入威胁的检测装置,用于执行上述实施例提供的方法。
图4示出了本发明实施例提供的一种sql注入威胁的检测装置的结构示意图,如图4所示,具体可以包括:获取模块401、计算模块402、匹配模块403、返回模块404,其中:
获取模块401用于获取请求端向应用服务器发送的超文本传输协议HTTP请求;
计算模块402用于计算所述HTTP请求的第一sha1值;
匹配模块403用于将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;
返回模块404用于若所述匹配结果为正确,则向所述请求端返回请求成功的结果。
本发明实施例提供的sql注入威胁的检测装置,通过获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;判断与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,说明所述HTTP请求中存在sql注入风险信息,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
本发明又一实施例对上述实施例提供的装置做进一步补充说明。
可选地,所述匹配模块用于:
根据计算得到的所述第一sha1值在预设数据库中进行查找,其中,所述预设数据库包括第二sha1值和与所述第二sha1值相对应的匹配结果;
若所述第一sha1值和所述预设数据库中的所述第二sha1值相同,则返回与所述第二sha1值相对应的匹配结果;
将所述与所述第二sha1值相对应的匹配结果确定为与所述第一sha1值相对应的匹配结果。
可选地,所述预设数据库为Redis数据库,所述装置还包括预设数据库建立模块,所述预设数据库建立模块用于:
采用Grok插件的正则表达式对所述样本中的HTTP请求进行sql注入风险信息过滤,获得过滤结果;
采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将所述第二sha1值和与所述第二sha1值相对应的匹配结果以Key-Value键值对的方式通过Output插件输出到所述Redis数据库中进行保存。
可选地,所述预设数据库建立模块用于:
若所述样本中的HTTP请求中存在sql注入风险信息,则返回第一匹配结果;
若所述样本中的HTTP请求中不存在sql注入风险信息,则返回第二匹配结果。
本发明实施例提供的sql注入威胁的检测装置,通过获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,说明所述HTTP请求中存在sql注入风险信息,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明再一实施例提供一种终端,也就是服务器端,用于执行上述实施例提供的方法。
图5示出了本发明实施例提供的终端的结构示意图,如图5所示,该终端包括:至少一个处理器51和存储器52;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现上述实施例提供的方法。
根据本实施例的终端,通过获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,说明所述HTTP请求中存在sql注入风险信息,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
本发明又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述任一实施例提供的方法。
根据本实施例的计算机可读存储介质,通过获取请求端向应用服务器发送的超文本传输协议HTTP请求;计算所述HTTP请求的第一sha1值;将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;若所述匹配结果为正确,则向所述请求端返回请求成功的结果,说明所述HTTP请求中存在sql注入风险信息,可以对接收到的HTTP请求中是否存在sql注入威胁进行快速检测,响应速度快。
其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端上,使得在计算机或其他可编程终端上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端中还存在另外的相同要素。
以上对本发明所提供的一种sql注入威胁的检测方法和一种sql注入威胁的检测装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种sql注入威胁的检测方法,其特征在于,包括:
获取请求端向应用服务器发送的超文本传输协议HTTP请求;
计算所述HTTP请求的第一sha1值;
将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;
若所述匹配结果为正确,则向所述请求端返回请求成功的结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果,包括:
根据计算得到的所述第一sha1值在预设数据库中进行查找,其中,所述预设数据库包括第二sha1值和与所述第二sha1值相对应的匹配结果;
若所述第一sha1值和所述预设数据库中的所述第二sha1值相同,则返回与所述第二sha1值相对应的匹配结果;
将所述与所述第二sha1值相对应的匹配结果确定为与所述第一sha1值相对应的匹配结果。
3.根据权利要求2所述的方法,其特征在于,所述预设数据库为Redis数据库,采用如下方法建立:
采用Grok插件的正则表达式对样本中的HTTP请求进行sql注入风险信息过滤,获得过滤结果;
采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将所述第二sha1值和与所述第二sha1值相对应的匹配结果以Key-Value键值对的方式通过Output插件输出到所述Redis数据库中进行保存。
4.根据权利要求3所述的方法,其特征在于,所述采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果包括:
若所述样本中的HTTP请求中存在sql注入风险信息,则返回第一匹配结果;
若所述样本中的HTTP请求中不存在sql注入风险信息,则返回第二匹配结果。
5.根据权利要求1所述的方法,其特征在于,所述获取请求端向应用服务器发送的超文本传输协议HTTP请求,包括:
获取浏览器或外部系统向应用服务器发送的超文本传输协议HTTP请求。
6.一种sql注入威胁的检测装置,其特征在于,包括:
获取模块,用于获取请求端向应用服务器发送的超文本传输协议HTTP请求;
计算模块,用于计算所述HTTP请求的第一sha1值;
匹配模块,用于将所述第一sha1值在预设数据库中进行匹配,确定与所述第一sha1值相对应的匹配结果;
返回模块,用于若所述匹配结果为正确,则向所述请求端返回请求成功的结果。
7.根据权利要求6所述的装置,其特征在于,所述匹配模块用于:
根据计算得到的所述第一sha1值在预设数据库中进行查找,其中,所述预设数据库包括第二sha1值和与所述第二sha1值相对应的匹配结果;
若所述第一sha1值和所述预设数据库中的所述第二sha1值相同,则返回与所述第二sha1值相对应的匹配结果;
将所述与所述第二sha1值相对应的匹配结果确定为与所述第一sha1值相对应的匹配结果。
8.根据权利要求6所述的装置,其特征在于,所述预设数据库为Redis数据库,所述装置还包括预设数据库建立模块,所述预设数据库建立模块用于:
采用Grok插件的正则表达式对样本中的HTTP请求进行sql注入风险信息过滤,获得过滤结果;
采用Ruby插件对获得的所述过滤结果进行判断,获得所述sql注入风险信息的匹配结果;
采用Ruby插件计算所述样本中的HTTP请求的第二sha1值;
将所述第二sha1值和与所述第二sha1值相对应的匹配结果以Key-Value键值对的方式通过Output插件输出到所述Redis数据库中进行保存。
9.一种终端,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883633.4A CN110535973A (zh) | 2019-09-18 | 2019-09-18 | 一种sql注入威胁的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883633.4A CN110535973A (zh) | 2019-09-18 | 2019-09-18 | 一种sql注入威胁的检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110535973A true CN110535973A (zh) | 2019-12-03 |
Family
ID=68669102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910883633.4A Pending CN110535973A (zh) | 2019-09-18 | 2019-09-18 | 一种sql注入威胁的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110535973A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309574A (zh) * | 2020-02-17 | 2020-06-19 | 北京百度网讯科技有限公司 | 信息处理方法、装置及设备 |
CN115314255A (zh) * | 2022-07-11 | 2022-11-08 | 深信服科技股份有限公司 | 攻击结果的检测方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267357A (zh) * | 2007-03-13 | 2008-09-17 | 北京启明星辰信息技术有限公司 | 一种sql注入攻击检测方法及系统 |
CN101526947A (zh) * | 2009-04-23 | 2009-09-09 | 山东中创软件商用中间件股份有限公司 | 应用正则表达式防sql注入技术 |
US7620988B1 (en) * | 2003-07-25 | 2009-11-17 | Symantec Corporation | Protocol identification by heuristic content analysis |
CN106407803A (zh) * | 2016-08-30 | 2017-02-15 | 北京奇虎科技有限公司 | Sql注入漏洞的检测方法及装置 |
CN108521392A (zh) * | 2018-01-25 | 2018-09-11 | 华东师范大学 | 一种双向流量的sql注入攻击检测方法 |
CN108881129A (zh) * | 2017-05-16 | 2018-11-23 | 中兴通讯股份有限公司 | 一种高级持续性威胁攻击检测方法及装置 |
-
2019
- 2019-09-18 CN CN201910883633.4A patent/CN110535973A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620988B1 (en) * | 2003-07-25 | 2009-11-17 | Symantec Corporation | Protocol identification by heuristic content analysis |
CN101267357A (zh) * | 2007-03-13 | 2008-09-17 | 北京启明星辰信息技术有限公司 | 一种sql注入攻击检测方法及系统 |
CN101526947A (zh) * | 2009-04-23 | 2009-09-09 | 山东中创软件商用中间件股份有限公司 | 应用正则表达式防sql注入技术 |
CN106407803A (zh) * | 2016-08-30 | 2017-02-15 | 北京奇虎科技有限公司 | Sql注入漏洞的检测方法及装置 |
CN108881129A (zh) * | 2017-05-16 | 2018-11-23 | 中兴通讯股份有限公司 | 一种高级持续性威胁攻击检测方法及装置 |
CN108521392A (zh) * | 2018-01-25 | 2018-09-11 | 华东师范大学 | 一种双向流量的sql注入攻击检测方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309574A (zh) * | 2020-02-17 | 2020-06-19 | 北京百度网讯科技有限公司 | 信息处理方法、装置及设备 |
CN111309574B (zh) * | 2020-02-17 | 2023-09-05 | 北京百度网讯科技有限公司 | 信息处理方法、装置及设备 |
CN115314255A (zh) * | 2022-07-11 | 2022-11-08 | 深信服科技股份有限公司 | 攻击结果的检测方法、装置、计算机设备和存储介质 |
CN115314255B (zh) * | 2022-07-11 | 2023-12-29 | 深信服科技股份有限公司 | 攻击结果的检测方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744802B (zh) | Sql注入攻击的识别方法及装置 | |
CN106357696B (zh) | 一种sql注入攻击检测方法及系统 | |
US9680850B2 (en) | Identifying bots | |
Mohammad et al. | An assessment of features related to phishing websites using an automated technique | |
EP2513800B1 (en) | Methods and systems of detecting and analyzing correlated operations in a common storage | |
Gupta et al. | PHP-sensor: a prototype method to discover workflow violation and XSS vulnerabilities in PHP web applications | |
US8626935B1 (en) | Identifying use of software applications | |
JP7294739B2 (ja) | セキュリティポリシーアナライザサービス及び充足可能性エンジン | |
US10523699B1 (en) | Privilege escalation vulnerability detection using message digest differentiation | |
US9444910B2 (en) | Validation associated with a form | |
CN108156131A (zh) | Webshell检测方法、电子设备和计算机存储介质 | |
JP2006520940A (ja) | インターネット検索エンジンにおける無効クリック検出方法および装置 | |
CN102571846A (zh) | 一种转发http请求的方法及装置 | |
CN111404937B (zh) | 一种服务器漏洞的检测方法和装置 | |
CN101895516A (zh) | 一种跨站脚本攻击源的定位方法及装置 | |
Dong et al. | Defending the weakest link: phishing websites detection by analysing user behaviours | |
US20140173693A1 (en) | Cookie Optimization | |
US7711518B2 (en) | Methods, systems and computer program products for providing system operational status information | |
CN104954345A (zh) | 基于对象分析的攻击识别方法及装置 | |
CN110535973A (zh) | 一种sql注入威胁的检测方法及装置 | |
CN112581129A (zh) | 区块链交易数据治理方法及装置、计算机设备及存储介质 | |
CN109657462B (zh) | 数据检测方法、系统、电子设备和存储介质 | |
CN110581841A (zh) | 一种后端反爬虫方法 | |
Ben Jaballah et al. | A grey-box approach for detecting malicious user interactions in web applications | |
CN106911649A (zh) | 一种检测网络攻击的方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191203 |
|
RJ01 | Rejection of invention patent application after publication |