CN106650454A - 一种sql注入攻击检测方法和装置 - Google Patents

一种sql注入攻击检测方法和装置 Download PDF

Info

Publication number
CN106650454A
CN106650454A CN201710002192.3A CN201710002192A CN106650454A CN 106650454 A CN106650454 A CN 106650454A CN 201710002192 A CN201710002192 A CN 201710002192A CN 106650454 A CN106650454 A CN 106650454A
Authority
CN
China
Prior art keywords
request
detected
current
http
mark
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
Application number
CN201710002192.3A
Other languages
English (en)
Inventor
张忠伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710002192.3A priority Critical patent/CN106650454A/zh
Publication of CN106650454A publication Critical patent/CN106650454A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种SQL注入攻击检测方法和装置,其中,该方法获取当前组中的至少一个HTTP请求,根据每个待检测HTTP请求的URL和请求正文,生成每个待检测HTTP请求对应的请求标识,针对每个请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。该方法利用URL和请求正文对HTTP请求进行筛选,可以区分URL相同、请求正文不同的HTTP请求,防止HTTP请求由于URL相同被漏测,进而提高数据库的安全性。

Description

一种SQL注入攻击检测方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种SQL注入攻击检测方法和装置。
背景技术
SQL(Structured Query Language,结构化查询语言)注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。SQL注入的存在,对数据库中数据的安全造成威胁。为了应对SQL注入,管理者一般采用第三方工具进行SQL注入攻击检测,例如,SQLmap工具。但是,对于同一个URL(UniformResource Locator,统一资源定位符)存在多个参数时,当发送多个请求时,现有的检测工具会将相同的URL过滤掉,造成漏测,进而造成数据库的安全性较低。
发明内容
本发明实施例提供了一种SQL注入攻击检测方法和装置,能够降低SQL注入攻击的漏测率。
一方面,本发明实施例提供了一种SQL注入攻击检测方法,包括:
S1:获取当前组中的至少一个待检测HTTP(HyperText Transfer Protocol,超文本传输协议)请求,每个所述待检测HTTP请求,包括:URL和请求正文;
S2:根据每个所述待检测HTTP请求的URL和请求正文,生成每个所述待检测HTTP请求对应的请求标识,针对每个所述请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。
优选地,
在所述S1之后,在所述S2之前,进一步包括:
设置所述当前组对应的请求标识列表,所述请求标识列表,用于存储请求标识;
所述S2,包括:
针对每个所述待检测HTTP请求,根据当前待检测HTTP请求的URL和请求正文,生成所述当前待检测HTTP请求对应的当前请求标识;判断所述请求标识列表中是否存在与所述当前请求标识相同的请求标识,如果是,结束当前流程,否则,将所述当前请求标识添加到所述请求标识中,并对所述当前待检测HTTP请求进行SQL注入攻击检测。
优选地,
所述根据当前待检测HTTP请求的URL和请求正文,生成所述当前待检测HTTP请求对应的当前请求标识,包括:
确定当前待检测HTTP请求的请求正文中包含的每一个参数的参数名称;
将所述每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识;
将所述子请求标识与所述当前待检测HTTP请求的URL进行合并,生成所述当前待检测HTTP请求的当前请求标识。
优选地,
进一步包括:预先设置至少一个SQL注入关键字;
所述对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测,包括:
判断所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求中,是否存在任意一个所述SQL注入关键字,如果是,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求存在SQL注入攻击,否则,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求不存在SQL注入攻击。
优选地,
进一步包括:
预先设置至少一个无效请求扩展名;
在所述S1之前,进一步包括:
获取外部发来的至少一个待过滤HTTP请求,每个所述待过滤HTTP请求,包括:URL和请求正文;
针对每个所述待过滤HTTP请求,确定当前待过滤HTTP请求的URL中的当前扩展名,判断所述当前扩展名是否与任意一个所述无效请求扩展名相同,如果是,则所述当前待过滤HTTP请求为无效请求,结束当前流程,否则,将所述当前待过滤HTTP请求作为所述待检测HTTP请求,添加到所述当前组中,执行S1。
另一方面,本发明实施例提供了一种SQL注入攻击检测装置,包括:
第一获取单元,用于获取当前组中的至少一个待检测HTTP请求,每个所述待检测HTTP请求,包括:URL和请求正文;
第一处理单元,用于根据所述第一获取单元获取的每个所述待检测HTTP请求的URL和请求正文,生成每个所述待检测HTTP请求对应的请求标识,针对每个所述请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。
优选地,
进一步包括:第一设置单元,用于设置所述当前组对应的请求标识列表,所述请求标识列表,用于存储请求标识;
所述第一处理单元,用于针对每个所述待检测HTTP请求,根据当前待检测HTTP请求的URL和请求正文,生成所述当前待检测HTTP请求对应的当前请求标识;判断所述第一设置单元设置的所述请求标识列表中是否存在与所述当前请求标识相同的请求标识,如果是,结束当前流程,否则,将所述当前请求标识添加到所述请求标识中,并对所述当前待检测HTTP请求进行SQL注入攻击检测。
优选地,
所述第一处理单元,进一步用于确定当前待检测HTTP请求的请求正文中包含的每一个参数的参数名称;将所述每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识;将所述子请求标识与所述当前待检测HTTP请求的URL进行合并,生成所述当前待检测HTTP请求的当前请求标识。
优选地,
进一步包括:第二设置单元,用于设置至少一个SQL注入关键字;
所述第一处理单元,用于判断所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求中,是否存在任意一个所述第二设置单元设置的所述SQL注入关键字,如果是,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求存在SQL注入攻击,否则,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求不存在SQL注入攻击。
优选地,
进一步包括:第三设置单元,用于设置至少一个无效请求扩展名;
第二获取单元,用于获取外部发来的至少一个待过滤HTTP请求,每个所述待过滤HTTP请求,包括:URL和请求正文;
第二处理单元,用于针对所述第二获取单元获取的每个所述待过滤HTTP请求,确定当前待过滤HTTP请求的URL中的当前扩展名,判断所述当前扩展名是否与任意一个所述第三设置单元设置的所述无效请求扩展名相同,如果是,则所述当前待过滤HTTP请求为无效请求,结束当前流程,否则,将所述当前待过滤HTTP请求作为所述待检测HTTP请求,添加到所述当前组中,触发所述第一获取单元。
本发明实施例提供了一种SQL注入攻击检测方法和装置,其中,该方法获取当前组中的至少一个HTTP请求,根据每个待检测HTTP请求的URL和请求正文,生成每个待检测HTTP请求对应的请求标识,针对每个请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。该方法利用URL和请求正文对HTTP请求进行筛选,可以区分URL相同、请求正文不同的HTTP请求,防止HTTP请求由于URL相同被漏测,进而提高数据库的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种SQL注入攻击检测方法流程图;
图2是本发明一个实施例提供的另一种SQL注入攻击检测方法流程图;
图3是本发明一个实施例提供的一种SQL注入攻击检测装置结构示意图;
图4是本发明一个实施例提供的另一种SQL注入攻击检测装置结构示意图;
图5是本发明一个实施例提供的又一种SQL注入攻击检测装置结构示意图;
图6是本发明一个实施例提供的再一种SQL注入攻击检测装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种SQL注入攻击检测方法,该方法可以包括以下步骤:
步骤101:获取当前组中的至少一个待检测HTTP请求,每个待检测HTTP请求,包括:URL和请求正文;
步骤102:根据每个待检测HTTP请求的URL和请求正文,生成每个待检测HTTP请求对应的请求标识,针对每个请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。
在图1所示的实施例中,该方法获取当前组中的至少一个HTTP请求,根据每个待检测HTTP请求的URL和请求正文,生成每个待检测HTTP请求对应的请求标识,针对每个请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。该方法利用URL和请求正文对HTTP请求进行筛选,可以区分URL相同、请求正文不同的HTTP请求,防止HTTP请求由于URL相同被漏测,进而提高数据库的安全性。
在本发明的一个实施例中,为了筛选出重复的待检测HTTP请求,该方法还包括:设置当前组对应的请求标识列表,请求标识列表,用于存储请求标识。步骤102还包括:针对每个待检测HTTP请求,根据当前待检测HTTP请求的URL和请求正文,生成当前待检测HTTP请求对应的当前请求标识;判断请求标识列表中是否存在与当前请求标识相同的请求标识,如果是,结束当前流程,否则,将当前请求标识添加到请求标识中,并对当前待检测HTTP请求进行SQL注入攻击检测。
对于不同的待检测HTTP请求,可能生成相同的请求标识,对于相同的请求标志对应的多个待检测HTTP请求,只需对其中的一个待检测HTTP请求进行SQL注入攻击检测。
HTTP请求主要包括:请求方法、URL、协议/版本;请求头;请求正文。其中请求方法主要根据实际配置操作内容确定,如获取规则表操作,一般为GET,添加、删除、修改规则一般为POST;URL中主要由IP、端口、根据实际配置操作确定的相对路径组成。请求头包含许多有关的客户端环境和请求正文的有用信息。请求正文中可以包含客户提交的参数信息。利用参数信息和URL,可以生成请求标志。
在本发明的一个实施例中,为了获得待检测HTTP请求对应的请求标识,根据当前待检测HTTP请求的URL和请求正文,生成当前待检测HTTP请求对应的当前请求标识,包括:确定当前待检测HTTP请求的请求正文中包含的每一个参数的参数名称;将每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识;将子请求标识与当前待检测HTTP请求的URL进行合并,生成当前待检测HTTP请求的当前请求标识。
例如,“GET/sample.jsp HTTP/1.1”,“GET”代表请求方法,“/sample.jsp”表示URL,“HTTP/1.1代表协议和协议的版本。
例如,username=jinqiao&password=1234,其中,username和password为参数名称,jinqiao和password为参数值。
预设的顺序可以为参数名称首字母由前到后的顺序,例如,a、b、c、d……。也可以按照首字母由后到前的顺序,例如,z、y、x……。该顺序并不固定,只需要遵循一定的规则。本实施例中,以首字母由前到后的顺序,生成子请求标识为passwordusername,将该子请求标识与URL“/sample.jsp”合并为“/sample.jsppasswordusername”,即为当前请求标识。该合并方式可以为“URL子请求标识”,也可以为“子请求标识URL”。
在本发明的一个实施例中,为了对待检测HTTP请求进行SQL注入攻击检测,该方法还包括:预先设置至少一个SQL注入关键字;对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测,包括:判断当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求中,是否存在任意一个SQL注入关键字,如果是,则认定当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求存在SQL注入攻击,否则,则认定当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求不存在SQL注入攻击。
SQL注入攻击检测的方法多种多样,本实施例仅提供其中一种,即利用SQL注入关键字。SQL注入关键字的数量和类型并不固定。例如,预先设置一个SQL注入关键字“1=1”,判断待检测HTTP请求中是否存在“1=1”,如果存在,则待检测HTTP请求存在SQL注入攻击,否则,待检测HTTP请求不存在SQL注入攻击。再例如,预先设置两个SQL注入关键字“1=1”、“1=2”,判断待检测HTTP请求中是否存在“1=1”和“1=2”中任意一个,如果存在则待检测HTTP请求存在SQL注入攻击,否则,待检测HTTP请求不存在SQL注入攻击。
在本发明的一个实施例中,为了过滤掉无效的HTTP请求,提高SQL注入攻击检测的效率,该方法还包括:预先设置至少一个无效请求扩展名;在步骤101之前,还包括:获取外部发来的至少一个待过滤HTTP请求,每个待过滤HTTP请求,包括:URL和请求正文;
针对每个待过滤HTTP请求,确定当前待过滤HTTP请求的URL中的当前扩展名,判断当前扩展名是否与任意一个无效请求扩展名相同,如果是,则当前待过滤HTTP请求为无效请求,结束当前流程,否则,将当前待过滤HTTP请求作为待检测HTTP请求,添加到当前组中,执行步骤101。
该无效请求扩展名可以根据实际需求进行设置,例如,JavaScript脚本,图片,文本等。当前待过滤HTTP请求中存在无效请求扩展名中,则为无效请求,否则,将当前待过滤HTTP请求添加到包含待检测HTTP请求的当前组中。
如图2所示,本发明实施例以当前组中存在四个待过滤HTTP请求为例,对SQL注入攻击检测方法进行详细地说明,该方法包括:
步骤201:预先设置一个SQL注入关键字,一个无效请求扩展名。
SQL注入关键字,用于判断待检测HTTP请求是否存在SQL注入攻击;无效请求扩展名,用于过滤掉无效的待过滤HTTP请求。
在本实施例中,SQL注入关键字为“1=1”;无效请求扩展名为“jsp”。
步骤202:获取外部发来的四个待过滤HTTP请求,每个待过滤HTTP请求,包括:URL和请求正文。
接收外部发来的四个待过滤HTTP请求,包括:
待过滤HTTP请求A:
URL:“/index.php”,
请求正文:username=aa&password=1234;
待过滤HTTP请求B:
URL:“/index.jsp”,
请求正文:username=aa&age=12;
待过滤HTTP请求C:
URL:“/index.php”,
请求正文:username=aa&age=201=1;
待过滤HTTP请求D:
URL:“/index.php”,
请求正文:username=aa&password=12;
步骤203:针对每个待过滤HTTP请求,确定待过滤HTTP请求的URL中的当前扩展名,判断当前扩展名是否与无效请求扩展名相同,如果是,执行步骤204,否则,执行步骤205。
针对待过滤HTTP请求A,当前扩展名为“php”,与无效请求扩展名“jsp”不同,执行步骤205;
针对待过滤HTTP请求B,当前扩展名为“jsp”,与无效请求扩展名“jsp”相同,执行步骤204;
针对待过滤HTTP请求C,当前扩展名为“php”,与无效请求扩展名“jsp”不同,执行步骤205;
针对待过滤HTTP请求D,当前扩展名为“php”,与无效请求扩展名“jsp”不同,执行步骤205。
步骤204:待过滤HTTP请求为无效请求,结束当前流程。
待过滤HTTP请求B为无效请求,结束当前流程。
步骤205:将待过滤HTTP请求作为待检测HTTP请求,添加到当前组中,执行步骤206。
将待过滤HTTP请求A、C、D作为待检测HTTP请求,添加到当前组中,执行步骤206。
步骤206:获取当前组中的待检测HTTP请求,待检测HTTP请求,包括:URL和请求正文。
获取当前组中的待检测HTTP请求A、C、D。
步骤207:设置当前组对应的请求标识列表,请求标识列表,用于存储请求标识。
设置当前组对应的请求标识列表,用于存储请求标识。
步骤208:针对每个待检测HTTP请求,确定待检测HTTP请求的请求正文中包含的每一个参数的参数名称。
针对待检测HTTP请求A、D,请求正文中包含两个参数,参数名称分别为“username”、“password”;
针对待检测HTTP请求C,请求正文中包含两个参数,参数名称分别为“username”、“age”。
步骤209:将每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识。
将参数名称按照首字母的顺序进行排列,针对待检测HTTP请求A、D,生成子请求标识“passwordusername”;针对待检测HTTP请求C,生成子请求标识“ageusername”
步骤210:将子请求标识与待检测HTTP请求的URL进行合并,生成待检测HTTP请求的当前请求标识。
针对待检测HTTP请求A、D,将子请求标识“passwordusername”与URL“/index.php”合并,其中,URL在前,则当前请求标识为“/index.phppasswordusername”。
针对待检测HTTP请求C,当前请求标识为“/index.phpageusername”
步骤211:判断请求标识列表中是否存在与当前请求标识相同的请求标识,如果是,执行步骤212,否则,执行步骤213。
针对待检测HTTP请求A、C和D,分别进行判断,例如,先对待检测HTTP请求A对应的当前请求标识“/index.phppasswordusername”进行判断,请求标识列表中此时为空,不存在与当前请求标识相同的请求标识,执行步骤213;
针对待检测HTTP请求C对应的当前请求标识“/index.phpageusername”,请求标识列表中不存在与当前请求标识相同的请求标识,执行步骤213;
针对待检测HTTP请求D对应的当前请求标识“/index.phppasswordusername”,请求标识列表中已存在与当前请求标识相同的请求标识,执行步骤212。
步骤212:结束当前流程。
步骤213:将当前请求标识添加到请求标识列表中。
将“/index.phppasswordusername”添加到请求标识列表中;将“/index.phpageusername”添加到请求标识列表中,执行步骤214。
步骤214:判断待检测HTTP请求中是否存在SQL注入关键字,如果是,执行步骤215,否则,执行步骤216。
待检测HTTP请求A中不存在SQL注入关键字“1=1”,执行步骤216。待检测HTTP请求C中存在SQL注入关键字“1=1”,执行步骤215。
步骤215:认定待检测HTTP请求存在SQL注入攻击。
当前待检测HTTP请求C存在SQL注入攻击。
步骤216:认定待检测HTTP请求不存在SQL注入攻击。
当前待检测HTTP请求A不存在SQL注入攻击。
如图3所示,本发明实施例提供了一种SQL注入攻击检测装置,包括:
第一获取单元301,用于获取当前组中的至少一个待检测HTTP请求,每个待检测HTTP请求,包括:URL和请求正文;
第一处理单元302,用于根据第一获取单元301获取的每个待检测HTTP请求的URL和请求正文,生成每个待检测HTTP请求对应的请求标识,针对每个请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。
在本发明的一个实施例中,如图4所示,第一设置单元303,用于设置当前组对应的请求标识列表,请求标识列表,用于存储请求标识;
第一处理单元302,用于针对每个待检测HTTP请求,根据当前待检测HTTP请求的URL和请求正文,生成当前待检测HTTP请求对应的当前请求标识;判断第一设置单元303设置的请求标识列表中是否存在与当前请求标识相同的请求标识,如果是,结束当前流程,否则,将当前请求标识添加到请求标识中,并对当前待检测HTTP请求进行SQL注入攻击检测。
在本发明的一个实施例中,第一处理单元302,进一步用于确定当前待检测HTTP请求的请求正文中包含的每一个参数的参数名称;将每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识;将子请求标识与当前待检测HTTP请求的URL进行合并,生成当前待检测HTTP请求的当前请求标识。
在本发明的一个实施例中,如图5所示,该SQL注入攻击检测装置,还包括:第二设置单元304,用于设置至少一个SQL注入关键字;
第一处理单元302,用于判断当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求中,是否存在任意一个第二设置单元304设置的SQL注入关键字,如果是,则认定当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求存在SQL注入攻击,否则,则认定当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求不存在SQL注入攻击。
在本发明的一个实施例中,如图6所示,该SQL注入攻击检测装置,还包括:第三设置单元305,用于设置至少一个无效请求扩展名;
第二获取单元306,用于获取外部发来的至少一个待过滤HTTP请求,每个待过滤HTTP请求,包括:URL和请求正文;
第二处理单元307,用于针对第二获取单元获取的每个待过滤HTTP请求,确定当前待过滤HTTP请求的URL中的当前扩展名,判断当前扩展名是否与任意一个第三设置单元设置的无效请求扩展名相同,如果是,则当前待过滤HTTP请求为无效请求,结束当前流程,否则,将当前待过滤HTTP请求作为待检测HTTP请求,添加到当前组中,触发第一获取单元。
综上,本发明各个实施例至少具有如下效果:
1、在本发明实施例中,该方法获取当前组中的至少一个HTTP请求,根据每个待检测HTTP请求的URL和请求正文,生成每个待检测HTTP请求对应的请求标识,针对每个请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。该方法利用URL和请求正文对HTTP请求进行筛选,可以区分URL相同、请求正文不同的HTTP请求,防止HTTP请求由于URL相同被漏测,进而提高数据库的安全性。
2、在本发明实施例中,提供了一种根据URL和请求正文的参数名称,生成请求标识的方法。通过该请求标识可以对待检测HTTP请求进行筛选,过滤掉重复的待检测HTTP请求,并且防止漏测情况的发生。
3、在本发明实施例中,提供了一种SQL注入攻击检测的方法,通过判断待检测HTTP请求中是否存在预设的SQL注入关键字,确定待检测HTTP请求是否存在SQL注入攻击,该方法操作简单,检测效率高。
4、在本发明实施例中,通过设置无效请求扩展名,对待过滤HTTP请求进行过滤,剔除无效的待过滤HTTP请求,确定待检测HTTP请求,该方法可以提高SQL注入攻击检测的效率。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种结构化查询语言SQL注入攻击检测方法,其特征在于,包括:
S1:获取当前组中的至少一个待检测超文本传输协议HTTP请求,每个所述待检测HTTP请求,包括:统一资源定位符URL和请求正文;
S2:根据每个所述待检测HTTP请求的URL和请求正文,生成每个所述待检测HTTP请求对应的请求标识,针对每个所述请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。
2.根据权利要求1所述的方法,其特征在于,
在所述S1之后,在所述S2之前,进一步包括:
设置所述当前组对应的请求标识列表,所述请求标识列表,用于存储请求标识;
所述S2,包括:
针对每个所述待检测HTTP请求,根据当前待检测HTTP请求的URL和请求正文,生成所述当前待检测HTTP请求对应的当前请求标识;判断所述请求标识列表中是否存在与所述当前请求标识相同的请求标识,如果是,结束当前流程,否则,将所述当前请求标识添加到所述请求标识中,并对所述当前待检测HTTP请求进行SQL注入攻击检测。
3.根据权利要求2所述的方法,其特征在于,
所述根据当前待检测HTTP请求的URL和请求正文,生成所述当前待检测HTTP请求对应的当前请求标识,包括:
确定当前待检测HTTP请求的请求正文中包含的每一个参数的参数名称;
将所述每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识;
将所述子请求标识与所述当前待检测HTTP请求的URL进行合并,生成所述当前待检测HTTP请求的当前请求标识。
4.根据权利要求1所述的方法,其特征在于,
进一步包括:预先设置至少一个SQL注入关键字;
所述对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测,包括:
判断所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求中,是否存在任意一个所述SQL注入关键字,如果是,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求存在SQL注入攻击,否则,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求不存在SQL注入攻击。
5.根据权利要求1-4中任一所述的方法,其特征在于,
进一步包括:
预先设置至少一个无效请求扩展名;
在所述S1之前,进一步包括:
获取外部发来的至少一个待过滤HTTP请求,每个所述待过滤HTTP请求,包括:URL和请求正文;
针对每个所述待过滤HTTP请求,确定当前待过滤HTTP请求的URL中的当前扩展名,判断所述当前扩展名是否与任意一个所述无效请求扩展名相同,如果是,则所述当前待过滤HTTP请求为无效请求,结束当前流程,否则,将所述当前待过滤HTTP请求作为所述待检测HTTP请求,添加到所述当前组中,执行S1。
6.一种SQL注入攻击检测装置,其特征在于,包括:
第一获取单元,用于获取当前组中的至少一个待检测HTTP请求,每个所述待检测HTTP请求,包括:URL和请求正文;
第一处理单元,用于根据所述第一获取单元获取的每个所述待检测HTTP请求的URL和请求正文,生成每个所述待检测HTTP请求对应的请求标识,针对每个所述请求标识,对当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求,进行SQL注入攻击检测。
7.根据权利要求6所述的SQL注入攻击检测装置,其特征在于,
进一步包括:第一设置单元,用于设置所述当前组对应的请求标识列表,所述请求标识列表,用于存储请求标识;
所述第一处理单元,用于针对每个所述待检测HTTP请求,根据当前待检测HTTP请求的URL和请求正文,生成所述当前待检测HTTP请求对应的当前请求标识;判断所述第一设置单元设置的所述请求标识列表中是否存在与所述当前请求标识相同的请求标识,如果是,结束当前流程,否则,将所述当前请求标识添加到所述请求标识中,并对所述当前待检测HTTP请求进行SQL注入攻击检测。
8.根据权利要求7所述的SQL注入攻击检测装置,其特征在于,
所述第一处理单元,进一步用于确定当前待检测HTTP请求的请求正文中包含的每一个参数的参数名称;将所述每一个参数的参数名称,按照预设的排序规则进行排序,生成子请求标识;将所述子请求标识与所述当前待检测HTTP请求的URL进行合并,生成所述当前待检测HTTP请求的当前请求标识。
9.根据权利要求6所述的SQL注入攻击检测装置,其特征在于,
进一步包括:第二设置单元,用于设置至少一个SQL注入关键字;
所述第一处理单元,用于判断所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求中,是否存在任意一个所述第二设置单元设置的所述SQL注入关键字,如果是,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求存在SQL注入攻击,否则,则认定所述当前请求标识对应的请求标识相同的待检测HTTP请求中的一个待检测HTTP请求不存在SQL注入攻击。
10.根据权利要求6-9中任一所述的SQL注入攻击检测装置,其特征在于,
进一步包括:第三设置单元,用于设置至少一个无效请求扩展名;
第二获取单元,用于获取外部发来的至少一个待过滤HTTP请求,每个所述待过滤HTTP请求,包括:URL和请求正文;
第二处理单元,用于针对所述第二获取单元获取的每个所述待过滤HTTP请求,确定当前待过滤HTTP请求的URL中的当前扩展名,判断所述当前扩展名是否与任意一个所述第三设置单元设置的所述无效请求扩展名相同,如果是,则所述当前待过滤HTTP请求为无效请求,结束当前流程,否则,将所述当前待过滤HTTP请求作为所述待检测HTTP请求,添加到所述当前组中,触发所述第一获取单元。
CN201710002192.3A 2017-01-03 2017-01-03 一种sql注入攻击检测方法和装置 Pending CN106650454A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710002192.3A CN106650454A (zh) 2017-01-03 2017-01-03 一种sql注入攻击检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710002192.3A CN106650454A (zh) 2017-01-03 2017-01-03 一种sql注入攻击检测方法和装置

Publications (1)

Publication Number Publication Date
CN106650454A true CN106650454A (zh) 2017-05-10

Family

ID=58839086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710002192.3A Pending CN106650454A (zh) 2017-01-03 2017-01-03 一种sql注入攻击检测方法和装置

Country Status (1)

Country Link
CN (1) CN106650454A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203718A (zh) * 2017-06-15 2017-09-26 深信服科技股份有限公司 一种sql命令注入的检测方法及系统
CN109347821A (zh) * 2018-10-16 2019-02-15 翟红鹰 客户端访问服务器的方法、终端及计算机可读存储介质
CN112291201A (zh) * 2020-09-30 2021-01-29 北京五八信息技术有限公司 业务请求的传输方法及装置、电子设备
CN113254942A (zh) * 2021-05-24 2021-08-13 浙江网商银行股份有限公司 数据处理方法、系统及装置
CN115314255A (zh) * 2022-07-11 2022-11-08 深信服科技股份有限公司 攻击结果的检测方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425937A (zh) * 2007-11-02 2009-05-06 北京启明星辰信息技术有限公司 一种适于高速局域网环境的sql注入攻击检测系统
CN103559444A (zh) * 2013-11-05 2014-02-05 星云融创(北京)信息技术有限公司 一种sql注入检测方法及装置
CN106067876A (zh) * 2016-05-27 2016-11-02 成都广达新网科技股份有限公司 一种基于模式匹配的http请求报文识别方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425937A (zh) * 2007-11-02 2009-05-06 北京启明星辰信息技术有限公司 一种适于高速局域网环境的sql注入攻击检测系统
CN103559444A (zh) * 2013-11-05 2014-02-05 星云融创(北京)信息技术有限公司 一种sql注入检测方法及装置
CN106067876A (zh) * 2016-05-27 2016-11-02 成都广达新网科技股份有限公司 一种基于模式匹配的http请求报文识别方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203718A (zh) * 2017-06-15 2017-09-26 深信服科技股份有限公司 一种sql命令注入的检测方法及系统
CN107203718B (zh) * 2017-06-15 2021-05-04 深信服科技股份有限公司 一种sql命令注入的检测方法及系统
CN109347821A (zh) * 2018-10-16 2019-02-15 翟红鹰 客户端访问服务器的方法、终端及计算机可读存储介质
CN112291201A (zh) * 2020-09-30 2021-01-29 北京五八信息技术有限公司 业务请求的传输方法及装置、电子设备
CN112291201B (zh) * 2020-09-30 2023-06-20 北京五八信息技术有限公司 业务请求的传输方法及装置、电子设备
CN113254942A (zh) * 2021-05-24 2021-08-13 浙江网商银行股份有限公司 数据处理方法、系统及装置
CN115314255A (zh) * 2022-07-11 2022-11-08 深信服科技股份有限公司 攻击结果的检测方法、装置、计算机设备和存储介质
CN115314255B (zh) * 2022-07-11 2023-12-29 深信服科技股份有限公司 攻击结果的检测方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN106650454A (zh) 一种sql注入攻击检测方法和装置
CN105046150B (zh) 防止sql注入的方法及系统
US9436730B2 (en) Methods and systems for validating input data
CN109768992A (zh) 网页恶意扫描处理方法及装置、终端设备、可读存储介质
Yeole et al. Analysis of different technique for detection of SQL injection
CN112989348B (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN105160252A (zh) 一种结构化查询语言注入攻击的检测方法及装置
CN106302862B (zh) 一种dns递归服务器的收集方法和系统
CN116842531B (zh) 基于代码疫苗的漏洞实时验证方法、装置、设备及介质
CN107800686A (zh) 一种钓鱼网站识别方法和装置
Lv et al. Adaptive random testing for XSS vulnerability
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
Shyni et al. Phishing detection in websites using parse tree validation
Yan et al. Detection method of the second-order SQL injection in Web applications
Subramani et al. PhishInPatterns: measuring elicited user interactions at scale on phishing websites
CN106250761A (zh) 一种识别web自动化工具的设备、装置及方法
CN107392027A (zh) 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN107786529A (zh) 网站的检测方法、装置及系统
CN106911649A (zh) 一种检测网络攻击的方法和装置
Zhang et al. Research on SQL injection vulnerabilities and its detection methods
WO2016173327A1 (zh) 用于检测网站攻击的方法和设备
KR102258956B1 (ko) 관계형 데이터베이스를 관리하기 위한 언어인 SQL(Structured Query Language)이 사용되는 환경에서 공격을 탐지하기 위한 방법 및 이를 사용한 서버
Wang et al. A model-based behavioral fuzzing approach for network service
Ablahd et al. Using flask for SQLIA detection and protection
Min et al. The Detection and Defense Mechanism for SQL Injection Attack Based on Web Application

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: 20170510

RJ01 Rejection of invention patent application after publication