CN103780614B - 一种基于模拟攻击扩展的sql注入漏洞挖掘方法 - Google Patents
一种基于模拟攻击扩展的sql注入漏洞挖掘方法 Download PDFInfo
- Publication number
- CN103780614B CN103780614B CN201410026383.XA CN201410026383A CN103780614B CN 103780614 B CN103780614 B CN 103780614B CN 201410026383 A CN201410026383 A CN 201410026383A CN 103780614 B CN103780614 B CN 103780614B
- Authority
- CN
- China
- Prior art keywords
- case
- sql
- extension
- simulated strike
- leak
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于模拟攻击扩展的SQL注入漏洞挖掘方法,该方法通过扩展SQL注入的模拟攻击用例,用于挖掘服务器端的编码漏洞以及防SQL注入的安全验证机制本身所存在的漏洞;本发明对设备要求简单,服务器漏洞的检出率高,同时在不同类型的服务器应用和不同级别的安全机制扫描中表现出良好的稳定性。
Description
技术领域
本发明涉及信息安全和网页架构领域,尤其涉及一种基于模拟攻击扩展的SQL注入漏洞扫描方法。
背景技术
随着Web应用越来越广泛,SQL 注入攻击是黑客对数据库进行攻击的常用手段之一,当前已经成为网络安全的最大问题之一,而现有的安全检测工具对日新月异的Web攻击手段和层出不穷的安全漏洞束手无策。SQL 注入攻击(SQL injection)是目前主流的Web攻击方法之一。Web应用的 SQL 注入攻击产生原因主要是以下三方面:(1) Web 服务器程序不安全。如果 WEB 服务器自身存在缓冲溢出等漏洞,那么整个 Web 站点就没有任何安全性可言。(2) Web 应用程序包含漏洞。如果网站编程人员经验不足,未对网页提交参数进行过滤和限制,以致可以向数据库中提交未授权的 SQL 语句,则整个 Web 数据库中存放的用户口令、密码等受保护信息都可以被攻击者得到。(3) 数据库配置不够安全。当 Web 系统中配置数据库时,如果用户权限设置不合理或 Web 站点的逻辑自身存在漏洞,很可能导致攻击者利用 Web 权限随意读写未授权的数据。
SQL 注入漏洞检测的基本原理是采用模拟攻击方式,构造特殊的SQL 语句对目标 Web 站点的URL 地址进行注入测试,然后根据返回的网页内容确定是否存在注入漏洞。例如,若在URL 地址后附加SQL 语句“and 1=1”测试语句执行后返回正常网页,而附加“”或“and 1=2”测试语句执行后返回包含数据库错误信息的网页或者其他与正常时相异的网页,则判定该 Web 页面存在 SQL 注入漏洞。由于SQL注入漏洞具有极为严重危害性,在实际应用中大部分的网站都会制订自我防御的安全代码机制,安全代码机制主要是对用户输入数据的有效性校验。SQL注入代码的安全验证机制可以过滤掉一些典型的针对数据库的注入攻击,但并不代当前的安全机制可以覆盖所有的攻击方式。现实中开发人员和安全人员为了实现Web应用系统的安全,尽可能得使扫描能够覆盖可能存在并造成严重后果的漏洞。为了实现通过模拟攻击的方式对Web网站进行漏洞检测,并挖掘出这些漏洞,就必须解决一个根本问题: 对可能出现的攻击手段进行覆盖。
因此,通过对攻击手段覆盖问题进行类似于顶点覆盖问题的近似求解,获得对攻击手段覆盖问题的最优解决方案成了亟需解决的问题。
发明内容
为了提高网站服务器应用中SQL注入漏洞的检出率,本发明提供了一种基于模拟攻击扩展的SQL注入漏洞扫描方法。
本发明的目的是通过以下技术方案来实现的:一种基于模拟攻击扩展的SQL注入漏洞扫描方法,包括以下步骤:
(1)维护一个漏洞测试的模拟攻击用例集合,集合中的每个元素为一个SQL注入攻击用例;
(2)利用网络爬虫抓取网页,分析抓取网页是否可以存在注入点;
(3)若网页存在注入点,则转步骤(4),否则转步骤(2);
(4)使用模拟攻击用例集合中的用例进行注入测试,分析注入测试的服务器返回结果,若结果显示注入成功,则转步骤(5),若注入不成功,则转步骤(6);
(5)服务器端存在此类型的漏洞,并且在相应位置没有部署安全验证机制,检测系统将此信息生成报告反馈给安全工作者;
(6)应用扩展规则对原用例进行变形,在已有的模拟攻击用例集合基础上得到一个扩展的模拟攻击用例集合,集合中的每个元素为一个扩展后SQL注入攻击用例;
(7)使用扩展的模拟攻击用例集合中的用例进行注入测试,分析注入测试的服务器返回结果,若结果显示注入成功,则转步骤(8),若注入不成功,则继转步骤(9);
(8)服务器端存在此类型的漏洞,虽然目标系统已在相应位置部署了安全验证机制,但缺乏对此种类型攻击的过滤,此信息将生成报告反馈给安全工作者;
(9)根据漏洞扫描的情况,评估当前网页的安全状态,提供安全修补的解决方案;
(10)步骤(4)和(7)中的注入测试完成,漏洞挖掘结束。
本发明的有益效果是,本发明利通过扩展模拟攻击集实现了一种高效的服务器端SQL注入漏洞扫描方法。该方法通过模拟黑客绕过安全验证机制的方法,扩展了原有SQL注入用例,实现了对可能出现攻击手段的更全面覆盖;本发明对设备要求简单,服务器漏洞的检出率高,同时在不同类型的服务器应用和不同级别的安全机制扫描中表现出良好的稳定性。
附图说明
图1是基于模拟攻击扩展的SQL注入漏洞扫描方法的流程图。
具体实施方式
本发明提供一种基于模拟攻击扩展的、更加全面的服务器编码漏洞扫描解决方案。该方案在SQL注入漏洞扫描过程中维护一个初始的模拟攻击用例集,集合中的每个元素为一个SQL注入攻击用例,集合中可以包含SQL注入子集及该子集中的注入用例。当对一个存在注入点的网页进行漏洞扫描时,根据网页的注入点遍历模拟攻击用例集进行注入测试,若注入成功则说明服务器存在SQL注入漏洞,并且没有部署安全验证机制,若注入失败则根据自动扩展规则对原有模拟攻击用例进行扩展,再进行注入测试,若扩展用例注入成功则说明服务器存在漏洞,而且安全机制也存在相应的不足,若注入失败则说明当前注入点不存在漏洞或漏洞暂时无法被利用。最后,系统生成结果反馈给开发者,并提出相应的安全验证机制建议。
下面结合附图详细描述本发明。
如图1所示,基于模拟攻击扩展的SQL注入漏洞扫描方法包括如下步骤:
(1)维护一个漏洞测试的模拟攻击用例集合,集合中的每个元素为一个模拟SQL注入攻击的用例。
(2)利用网络爬虫抓取网页,分析抓取网页是否可以存在注入点。网络爬虫是一个自动提取网页的程序,通常从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到系统抽取的上限或者完成所有URL的抽取为止。
网络爬虫作为利用http协议和URL来遍历网页信息的软件程序,可以全自动地发起任何类型的GET请求,也可以通过POST请求实现网页信息内容的自动发布,通过自动爬虫就可以实现目标网页的抓取。针对某一具体网站而言,通过爬虫程序,可以获取此网站中的所有URL链接以及Web网页的详细信息,再对Web页面进行处理。可注入检测的过程,简单来说,可以描述为在URL 地址后附加“and 1=1”测试语句执行后返回正常网页,而附加“”或“and 1=2”测试语句执行后返回包含数据库错误信息的网页或者其他与正常时相异的网页,则判定该 Web 页面存在 SQL 注入漏洞,若都相同,则判定不存在。
(3)若网页存在注入点,则转步骤(4),否则转步骤(2)。
(4)使用模拟攻击用例集合中的用例进行注入测试,分析注入测试的服务器返回结果,若结果显示注入成功,则转步骤(5),若注入不成功,则转步骤(6)。类似于可注入检测过程,SQL注入测试将测试语句换成了模拟攻击集中的用例。通过对目标 Web 站点的URL 地址使用一定的技术手段进行注入测试,然后根据返回的网页内容确定是否存在注入漏洞。若测试语句执行后返回包含注入结果的网页或者其他泄露数据库信息的网页,则判定该 Web 页面存在 SQL 注入漏洞,若返回错误或者无注入结果,则判定不存在相应漏洞。
(5)服务器端存在此类型的漏洞,并且在相应位置没有部署安全验证机制,检测系统将此信息生成报告反馈给安全工作者。
(6)应用扩展规则对原用例进行变形,在已有的模拟攻击用例集合基础上得到一个扩展的模拟攻击用例集合,集合中的每个元素为一个扩展后SQL注入攻击用例。本发明定义了以下的转换规则:
使用大小写扩展:通过扩展攻击字符串中的字符大小来避开过滤,因为数据库使用不区分大小写的方式处理SQL关键字。
使用SQL注释:使用内联注释序列创建SQL代码段。
使用URL编码:URL编码是一种多功能技术,可以通过它来战胜多种类型的输入过滤。URL编码的最基本表示方式是使用问题字符的十六进制ASCII编码来替换代码,并在ASCII编码前加%。
使用动态的查询执行:许多数据库都允许通过向执行查询的数据库函数传递一个包含SQL查询的字符串来动态执行SQL查询。攻击者使用字符串操作函数将过滤器允许的输入转换成一个包含所需查询的字符串。
使用空字节:空字节之所以能起作用,是因为原生代码和托管代码分别采用不同的方法来处理空字节。在原生代码中,根据字符串起始位置到出现第一个空字节的位置来确定字符串长度。而在托管代码中,字符串对象包含一个字符数组和一条单独的字符串长度记录。
嵌套剥离后的表达式:有些审查过滤器会先从用户输入中剥离特定的字符或表达式,然后再按照常用的方式处理剩下的数据。如果被剥离的表达式中包含两个或多个字符,则不会递归应用过滤器。
(7)使用扩展的模拟攻击用例集合中的用例进行注入测试,分析注入测试的服务器返回结果,若结果显示注入成功,则转步骤(8),若注入不成功,则继转步骤(9)。使用扩展的模拟攻击的SQL注入测试将使用扩展模拟攻击集里的用例。若测试语句执行后返回包含注入结果的网页或者其他泄露数据库信息的网页,则判定该 Web 页面存在 SQL 注入漏洞并且易受此类扩展用例的攻击,若返回错误或者无注入结果,则判定不存在相应漏洞。
(8)服务器端存在此类型的漏洞,虽然目标系统已在相应位置部署了安全验证机制,但缺乏对此种类型攻击的过滤,此信息将生成报告反馈给安全工作者。
(9)根据漏洞扫描的情况,评估当前网页的安全状态,基本安全状态可以归结为三类:Security Holes(该项攻击成功并且会造成极大的安全风险)、Security Warnings(该项攻击成功,但是不会对安全造成大的影响)和Security Notes(软件通过扫描发现了系统相关信息)。而依据风险因素可以分解为以下不同等级:Critical(已经威胁到远端主机的安全)、Serious(该漏洞泄漏的信息可以被黑客利用进行攻击)、High(黑客可以在远端主机获取shell,或者执行任意命令)、Medium(该安全漏洞可以导致用户权限扩大)、Low:(从该漏洞获取的信息可以被黑客利用,但是不会立刻造成严重威胁)和None(系统不存在隐患)。根据漏洞测试的结果,还可以为用户提供相关的安全修补方案,安全修补方案包括部署相应的防火墙、提供黑名单验证、提示系统功能漏洞和弱口令设置等等;
(10)步骤(4)和(7)中的注入测试完成,漏洞挖掘结束。
Claims (1)
1.一种基于模拟攻击扩展的SQL注入漏洞挖掘方法,其特征在于,包括如下步骤:
(1)维护一个漏洞测试的模拟攻击用例集合,集合中的每个元素为一个SQL注入攻击用例;
(2)利用网络爬虫抓取网页,分析抓取网页是否可以存在注入点;
(3)若网页存在注入点,则转步骤(4),否则转步骤(2);
(4)使用模拟攻击用例集合中的用例进行注入测试,分析注入测试的服务器返回结果,若结果显示注入成功,则转步骤(5),若注入不成功,则转步骤(6);
(5)服务器端存在此类型的漏洞,并且在相应位置没有部署安全验证机制,检测系统将此信息生成报告反馈给安全工作者;
(6)应用扩展规则对原用例进行变形,在已有的模拟攻击用例集合基础上得到一个扩展的模拟攻击用例集合,集合中的每个元素为一个扩展后SQL注入攻击用例;
(7)使用扩展的模拟攻击用例集合中的用例进行注入测试,分析注入测试的服务器返回结果,若结果显示注入成功,则转步骤(8),若注入不成功,则继转步骤(9);
(8)服务器端存在此类型的漏洞,虽然目标系统已在相应位置部署了安全验证机制,但缺乏对此种类型攻击的过滤,此信息将生成报告反馈给安全工作者;
(9)根据漏洞扫描的情况,评估当前网页的安全状态,提供安全修补的解决方案;
(10)步骤(4)和(7)中的注入测试完成,漏洞挖掘结束;
所述步骤(6)中,所述基于模拟攻击扩展的SQL注入漏洞挖掘方法,其特征在于,所述扩展的规则如下:
使用大小写扩展:通过扩展攻击字符串中的字符大小来避开过滤,因为数据库使用不区分大小写的方式处理SQL关键字;
使用SQL注释:使用内联注释序列创建SQL代码段;
使用URL编码:URL编码是一种多功能技术,可以通过它来战胜多种类型的输入过滤,URL编码的最基本表示方式是使用问题字符的十六进制ASCII编码来替换代码,并在ASCII编码前加%;
使用动态的查询执行:许多数据库都允许通过向执行查询的数据库函数传递一个包含SQL查询的字符串来动态执行SQL查询,攻击者使用字符串操作函数将过滤器允许的输入转换成一个包含所需查询的字符串;
使用空字节:空字节之所以能起作用,是因为原生代码和托管代码分别采用不同的方法来处理空字节,在原生代码中,根据字符串起始位置到出现第一个空字节的位置来确定字符串长度,而在托管代码中,字符串对象包含一个字符数组和一条单独的字符串长度记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410026383.XA CN103780614B (zh) | 2014-01-21 | 2014-01-21 | 一种基于模拟攻击扩展的sql注入漏洞挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410026383.XA CN103780614B (zh) | 2014-01-21 | 2014-01-21 | 一种基于模拟攻击扩展的sql注入漏洞挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780614A CN103780614A (zh) | 2014-05-07 |
CN103780614B true CN103780614B (zh) | 2016-12-07 |
Family
ID=50572444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410026383.XA Active CN103780614B (zh) | 2014-01-21 | 2014-01-21 | 一种基于模拟攻击扩展的sql注入漏洞挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780614B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778413B (zh) * | 2015-04-15 | 2018-04-03 | 南京大学 | 一种基于模拟攻击的软件漏洞检测方法 |
CN105636050A (zh) * | 2015-08-28 | 2016-06-01 | 宇龙计算机通信科技(深圳)有限公司 | 防止误连接wifi网络的方法及系统、终端和服务器 |
CN106411906A (zh) * | 2016-10-10 | 2017-02-15 | 合肥红珊瑚软件服务有限公司 | 一种sql注入漏洞定位检测方法 |
CN106845237A (zh) * | 2017-01-23 | 2017-06-13 | 北京安华金和科技有限公司 | 一种基于sql语句的sql注入风险评估方法 |
CN107294969A (zh) * | 2017-06-22 | 2017-10-24 | 电子科技大学 | 一种基于sdn的sql注入攻击检测方法及系统 |
CN107908965A (zh) * | 2017-11-14 | 2018-04-13 | 北京知道创宇信息技术有限公司 | 疑似sql注入类型的检测方法及装置 |
CN109067853B (zh) * | 2018-07-16 | 2021-07-30 | 郑州云海信息技术有限公司 | 一种Web动态网页源码自动化尝试获取方法 |
CN111488287B (zh) * | 2020-04-16 | 2023-05-16 | 南开大学 | 注入漏洞测试用例的生成方法、装置、介质及电子设备 |
CN112182583B (zh) * | 2020-09-27 | 2022-10-14 | 国网山东省电力公司电力科学研究院 | 一种基于web应用的文件上传漏洞检测方法及系统 |
CN113259392B (zh) * | 2021-06-28 | 2021-11-02 | 四块科技(深圳)有限公司 | 一种网络安全攻防方法、装置及存储介质 |
CN116916321B (zh) * | 2023-09-12 | 2023-12-15 | 中国电子信息产业集团有限公司第六研究所 | 一种卫星网络体系的防御方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101312393A (zh) * | 2007-05-24 | 2008-11-26 | 北京启明星辰信息技术有限公司 | 一种sql注入漏洞检测方法及系统 |
CN102082659A (zh) * | 2009-12-01 | 2011-06-01 | 厦门市美亚柏科信息股份有限公司 | 一种面向网络安全评估的漏洞扫描系统及其处理方法 |
CN102739652A (zh) * | 2012-06-07 | 2012-10-17 | 中国电子科技集团公司第三十研究所 | 网络抗攻击性能评估指标体系构建方法及装置 |
CN202652255U (zh) * | 2012-05-25 | 2013-01-02 | 中国电力科学研究院 | 一种sql注入安全防护系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2423517A1 (en) * | 2003-03-26 | 2004-09-26 | Timothy G. Deboer | Extensible mechanism for executing server side code |
-
2014
- 2014-01-21 CN CN201410026383.XA patent/CN103780614B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101312393A (zh) * | 2007-05-24 | 2008-11-26 | 北京启明星辰信息技术有限公司 | 一种sql注入漏洞检测方法及系统 |
CN102082659A (zh) * | 2009-12-01 | 2011-06-01 | 厦门市美亚柏科信息股份有限公司 | 一种面向网络安全评估的漏洞扫描系统及其处理方法 |
CN202652255U (zh) * | 2012-05-25 | 2013-01-02 | 中国电力科学研究院 | 一种sql注入安全防护系统 |
CN102739652A (zh) * | 2012-06-07 | 2012-10-17 | 中国电子科技集团公司第三十研究所 | 网络抗攻击性能评估指标体系构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103780614A (zh) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103780614B (zh) | 一种基于模拟攻击扩展的sql注入漏洞挖掘方法 | |
Lee et al. | A novel method for SQL injection attack detection based on removing SQL query attribute values | |
US8225402B1 (en) | Anomaly-based detection of SQL injection attacks | |
Sadeghian et al. | A taxonomy of SQL injection detection and prevention techniques | |
CN101356535B (zh) | 一种检测和防止java脚本程序中不安全行为的方法和装置 | |
CN112685737A (zh) | 一种app的检测方法、装置、设备及存储介质 | |
CN101699815B (zh) | 一种网络攻击自动执行/展现的系统及方法 | |
CN106131071A (zh) | 一种Web异常检测方法和装置 | |
CN102467633A (zh) | 一种安全浏览网页的方法及其系统 | |
CN113496033B (zh) | 访问行为识别方法和装置及存储介质 | |
CN104065645A (zh) | 用于防护web漏洞的方法和设备 | |
CN104166680B (zh) | 一种基于开源库与文本挖掘的并行漏洞挖掘方法 | |
Cimitile et al. | Formal methods meet mobile code obfuscation identification of code reordering technique | |
CN103679053B (zh) | 一种网页篡改的检测方法及装置 | |
CN108521392B (zh) | 一种双向流量的sql注入攻击检测方法 | |
CN103150511A (zh) | 一种安全防护系统 | |
CN108804921A (zh) | 一种PowerShell代码的去混淆方法及装置 | |
CN103428219B (zh) | 一种基于网页模板匹配的web漏洞扫描方法 | |
CN103220277B (zh) | 监控跨站脚本攻击的方法、装置及系统 | |
GB2521640A (en) | Payload Generation | |
CN112016096A (zh) | 一种xss漏洞的审计方法、装置 | |
CN115168847A (zh) | 应用补丁生成方法、装置、计算机设备及可读存储介质 | |
CN114928462A (zh) | 一种基于用户行为识别的Web安全防护方法 | |
Dhivya et al. | Evaluation of web security mechanisms using vulnerability & Sql attack injection | |
CN108512859A (zh) | 一种Web应用安全漏洞挖掘方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |