数据库防火墙如何防范SQL注入行为信息技术

SQL注入是当前针对数据库安全进行外部攻击的一种常见手段。现有主流应用大多基于B/S架构开发,SQL注入的攻击方式正是利用web层和通讯层的缺陷对数据库进行外部恶意攻击。将SQL命令巧妙的插入通讯的交互过程中,如:Web表单的递交、域名输入、页面请求等。通过硬性植入的查询语句攻击数据库,以期利用服务器自身缺陷执行恶意的SQL命令,从而入侵数据库。因此通过SQL注入攻击方式产生的安全事件也在增多,对系统的危害性极大。

通过SQL注入可以远程获取并利用应用里的数据,并且获取未经hashed加密的用户秘钥以及信用卡信息,甚至有以管理员身份登陆进这些应用的可能。下面通过一组常见的SQL注入攻击方式,进行说明:

首先,我们假设数据库中有JOB表,模拟进行攻击,查询表中数据量。

然后,应用中调用恶意的攻击性url向JOB表植入SQL语句:

那么,攻击时等效的SQL语句如下:

如果SQL注入的假设错误,web页面如图一:

图一

如果SQL注入的假设成功,web界面如图二:

图二

攻击说明:如果SQL注入的假设成功,即证明了数据库中该表的表名是jobs,从而我们也就可以对该表进行增删改操作,从而对数据库安全造成极其严重的危害。

SQL注入的8种攻击行为

安全界有句名言“未知攻,焉知防”,想要预防SQL注入,需要进一步剖析SQL注入都有哪些常见攻击方式。

1.猜测数据库名,备份数据库

2.猜解字段名称

3.遍历系统的目录结构,分析结构并发现WEB虚拟目录,植入木马

4.查询当前用户的数据库权限

5.设置新的数据库帐户提权得到数据库管理员账户权限

6.利用存储过程获取操作系统管理员账户

7.客户端脚本攻击:通过正常的输入提交方式将恶意脚本提交到数据库中,当其他用户浏览此内容时就会受到恶意脚本的攻击。

8.客户端脚本攻击:通过SQL注入方式将恶意脚本提交到数据库中,直接使用SQL语法UPDATE数据库,并将注入SQL经过“HEX编码”,然后通过exec执行“动态”SQL的特性运行脚本。

综上可知,SQL注入对数据库的攻击方式日趋繁多,危害也日益严重,因此如何做好SQL注入的防护工作也就变成考量数据库安全产品的一道标杆。

SQL注入的5种防护方式

常规的SQL注入防护方式,包括以下几个方面

1.通过正则表达校验用户输入

2.通过参数化存储过程进行数据查询存取

3.参数化SQL语句

4.为数据库添加新架构

5.利用LINQtoSQL查询

针对以上SQL5种注入防护方式,可以在一定程度上避免SQL注入对数据库所带来的入侵危害,但这些操作同步会使数据库操作复杂化,在一定程度上提高了企业运维成本,同时降低数据库操作性能。因此,一种专门针对数据库防护类产品——数据库防火墙诞生,可以针对SQL注入攻击行为进行主动有效的防护。

二、数据库防火墙如何防御SQL注入

数据库防火墙作为专业的数据库安全防护工具,而针对SQL注入等数据库攻击行为的防护能力如何,是衡量一款数据库防火墙产品优略的关键要素。

目前国内数据库安全的专业厂商安华金和,自主研发推出数据库防火墙(DBFirewall)产品基于对数据库协议的精准解析,对SQL注入行为的分析更加精确,极大程度上避免了对SQL注入攻击行为的漏防与误防。

SQL注入的概念来自于Web系统,数据库防火墙在防止SQL注入时,针对已经形成且即将到达数据库的完整SQL,监测是否有非法的操作,并有效阻止针对于数据库的非法入侵行为。

图三:DBFirewallSQL注入攻击防护引擎

DBFirewall对于SQL注入行为的识别,可以分为以下三种:

1.通过发送意外数据来触发异常,利用获取数据的GET操作,变更信息的POST操作,结合数据库异常信息,从而判断注入是否发生。

例如:

’es如果以上两句的执行结果相同,则可能存在SQL注入。

2.利用应用程序试探。

如果应用程序没有对数据库服务器返回的错误信息进行处理,那么数据库的错误信息将直接反馈到前台,通过这些错误信息,不但可以识别出SQL注入的漏洞所在,甚至可能逐步探测出数据库表信息。

通过上述几种方式可以初步判断SQL注入行为的产生,但是为了提高准确性,安华金和数据库防火墙具有独特的设计流程,通过构建一条有效的SQL语句,帮助用户确认SQL注入行为:

1)SQL语句中区分数值类型和字符串类型

2)验证注入SQL代码时,是否是通过注释剩下的查询来成功结束该语句。

可以检测服务器响应来确定注入

安华金和数据库防火墙基于对SQL注入的各种攻击行为,进行有针对性的数据库防护,从而形成更加完备的防护体系。下面列举几种常见的SQL注入攻击行为做分析说明,并具体描述一下DBFirewall是如何进行防护的。

1)SQL注入识别数据库

攻击方法一:通过获取数据库异常信息,数据库版本信息的方式进行SQL注入攻击

防御方法:利用DBFW的配置错误替换规则,对常见的错误信息进行替换

攻击方法二:获取版本信息

SELECTbannerFROMv$version或

SELECTbannerFROMv$versionWHERErownum=1

防控方法:采用风险评估中的系统表控制规则,或者通过访问控制权限中,对不同的用户控制对系统表的访问权限。

2)利用UNION语句提取数据

如果应用返回第一个(原始)查询得到的数据,那么通过在第一个查询后面注入一个UNION运算符,并添加另外艺哥任意查询,便可以读取到数据库用户访问过的任何一张表。

攻击方法:多次使用各种数据类型替换null,直到系统不再报错为止,例如

如果测试成功,可以替换为:

获得系统信息

防控方法:开启DBFW的风险评估union评测,以及系统表的评测

3)利用条件语句

对于oracle来说,可以使用sleep,或者UTL_HTTP、HTTPURITYPE向一个死的IP地址发送一个HTTP请求来实现相同的效果。如果指定一个不存在监听者的IP地址,那么下列查询将一直等待连接知道超时:

防控方法:开启风险评估里的暴力破解函数。

攻击方法二:基于字符串转换

对于传入参数是字符串的,可以用char函数转化其中一个字符,根基返回的结果可以实现SQL注入。

防控方法:将char作为暴力破解函数。

4)提权行为

在Oracle中,通过Web应用的SQL注入来提升权限非常困难。大多数权限提升方法均需要PL/SQL注入,而这种注入很少见。如果找到一种PL/SQL注入漏洞,可以通过注入PL/SQL代码来提升权限或在数据库服务器上启动操作。

不需要PL/SQL注入的例子是:使用在Oracle的mod_plSQL组件中发现的一个漏洞。

防控方法:使用访问控制或者风险评估,加入用户权限控制或高危操作

除了上述几种常见的SQL注入行为之外,DBFW内置可防护的SQL注入攻击行为还包括:窃取hash口令、利用操作系统攻击等。并且可以根据:风险级别、告警通知、SQL命令、命令特征、风险函数、表达式、类型、操作人、操作等几项元素自定义SQL注入防护规则。

THE END
1.SQL注入漏洞批量检查工具SQLMC(SQL注入大规模检查器)是一款用于扫描域中是否存在SQL注入漏洞的工具。它会抓取给定的URL直至指定深度,检查每个链接是否存在SQL注入漏洞,并报告其发现的结果。 工具特征 扫描域名中是否存在SQL注入漏洞爬取给定的URL直到指定深度检查每个链接的所有GET参数是否存在SQL注入漏洞报告漏洞以及服务器信息和深度 http://www.360doc.com/content/24/1218/19/77981587_1142310547.shtml
2.SQL注入MicrosoftLearn威胁和漏洞缓解(数据库引擎) 使用英语阅读 保存 添加到集合 添加到计划 通过 Facebookx.com 共享LinkedIn电子邮件 打印 项目 2012/04/01 本文内容 验证所有输入 在代码中检查 SQL 注入 请参阅 SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行https://msdn.microsoft.com/zh-cn/library/ms161953.aspx
3.判断注入点的方法5.观察HTTP头信息:HTTP头信息中可能包含参数信息,可以通过修改参数来检测是否存在注入漏洞。 以上是几种常用的判断注入点的方法,通过综合运用可以更加快速准确地找到注入点,提高攻击的成功率。同时,为了避免注入攻击,我们也需要在系统开发时加强防御措施,规范输入参数,使用参数化查询等方式防止注入攻击的发生。?https://wenku.baidu.com/view/4180dd2f28160b4e767f5acfa1c7aa00b42a9d13.html
4.检测SQL注入的方法有哪些问答检测SQL 注入的方法主要包括以下几种: 输入验证:对用户提供的数据进行验证,确保其符合预期的格式和类型。例如,只允许数字输入到需要数字的字段中,或者使用正则表达式来匹配合法的输入模式。 参数化查询:使用参数化查询可以将用户提供的数据与 SQL 语句的结构分开,从而防止攻击者通过注入恶意代码来改变 SQL 语句的结构。https://www.yisu.com/ask/99066343.html
5.SQL注入检测工具及方法,黑客零基础入门SQL注入检测是通过各种手段来识别和验证应用程序是否容易受到SQL注入攻击的方法。 SQL注入原理 SQL注入(SQL Injection)是一种利用应用程序对用户输入的不当处理而导致的安全漏洞。攻击者通过在输入中注入恶意的SQL代码,成功执行数据库查询,甚至执行未经授权的数据库操作。SQL注入的原理可以通过以下几个步骤来理解: https://blog.csdn.net/kailiaq_1/article/details/135066418
6.检查sql注入工具类javasql注入检测爆数据库 爆表 爆字段 爆数据 提示 以下均使用如下靶场: SQL手工注入漏洞测试(Sql Server数据库) 判断注入点 与mysql注入一致 ?id=2 and 1=2 1. 判断数据库类型 and exists (select * from sysobjects)--返回正常为mssql and exists (select count(*) from sysobjects)--有时上面那个语句不行就试试这个https://blog.51cto.com/u_16213580/8711201
7.防范注入式攻击11篇(全文)1. SQL注入攻击检测方法。 SQL注入攻击检测分为入侵前的检测和入侵后的检测, 入侵前检测可以手工测试也可以通过软件检测, 入侵后检测主要是针对日志的检测。 (1) 数据库检查。使用HDSI、NBSI和Domain等SQL注入攻击软件工具进行SQL注入攻击后, 都会在数据库中生成一些临时表。通过查看数据库中最近新建表的结构和内容,https://www.99xueshu.com/w/ikeyeyy47maw.html
8.SQL注入的检测方式有几种?常用方法介绍!常用方法介绍! SQL注入攻击是黑客对数据库进行攻击的常用手段之一,范围广、实现容易、破坏性大,能够对Web应用造成一定的数据泄露,那么你知道如何检查网站是否存在SQL注入漏洞吗?请看下文: SQL注入的检测方式有几种? SQL注入的检测方式目前主要分为两大类:动态检测和静态检测,以下是详细的内容介绍:https://blog.itpub.net/69952527/viewspace-2839345/
9.SQLMAP注入检查方法11种常见SQLMAP使用方法详解工具使用一共有11种常见SQLmap使用方法: 一、SQLMAP用于Access数据库注入 (1) 猜解是否能注入 win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" Linux : .lmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" https://www.jb51.net/hack/631963.html
10.初学者必备的Web渗透资料详解SQL注入:通过在Web表单中输入恶意SQL语句,攻击者可以绕过身份验证和访问控制,从而读取或修改数据库中的数据。 跨站脚本攻击(XSS):攻击者通过向Web页面插入恶意脚本,当其他用户访问这些页面时,脚本会在用户浏览器中执行,从而窃取用户信息或控制用户浏览器。 跨站请求伪造(CSRF):攻击者利用用户的身份验证信息,伪造请求,使https://www.imooc.com/article/358369
11.SQL注入攻击检测的方法以及装置与流程1.本技术涉及web安全领域,更具体地,涉及一种结构化查询语句sql注入攻击检测的方法、装置以及计算设备。 背景技术: 2.结构化查询语言(structured query language,sql)注入攻击是黑客对数据库进行攻击的常用手段之一。sql注入漏洞可能会影响使用sql数据库的任何网站或web应用程序。犯罪分子可能会利用它来未经授权访问用户的https://www.xjishu.com/zhuanli/55/202010651207.html
12.网站常见漏洞检测方法(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。 (7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。 (8)在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。https://wxzx.gsupl.edu.cn/info/1204/1420.htm
13.渗透测试之sql注入总之一句话:注入产生的原因是接受相关参数未经处理直接带入数据库查询操作。 注入前的准备及注入漏洞检测: 1、显示友好HTTP错误信息(现在浏览器不用管) 2、手工检测SQL注入点 最常用的SQL注入点判断方法,是在网站中寻找如下形式的网页链接。 http://www.***.com/***.asp?id=xx (ASP注入)(其他语言等https://www.jianshu.com/p/9fd42647bf22
14.基于机器学习的电网虚假数据注入攻击检测方法研究虚假数据注入攻击(FDIAs)作为一种新型电力系统网络攻击,可以成功绕过不良数据检测机制,使电力量测数据发生偏移,在极其隐蔽的条件下误导控制中心操作,严重威胁电力系统稳定运行。传统的检测方法难以检测这种攻击,为保证智能电网的运行安全,本文通过分析虚假数据注入攻击机理,利用机器学习在处理二分类问题上的优势,以监督学习https://cdmd.cnki.com.cn/Article/CDMD-10188-1019121108.htm
15.sql注入如何挖掘(一)1、使用请求头提交数据,比如检测HTTP中的源地址、主机IP等。 是否回显 显注 1、前端页面可以回显用户信息,比如 联合注入、报错注入。 盲注 1、前端页面不能回显用户信息,比如 布尔盲注、时间盲注。 危害 1、数据库信息泄露。 2、网页篡改:登陆后台后发布恶意内容。 3、网站挂马 : 当拿到webshell时或者获取到服务https://xz.aliyun.com/t/12149
16.快速学习利用sqlmap扫描检测sql注入漏洞,挖掘及攻击测试-- 快速学习利用sqlmap扫描检测sql注入漏洞,挖掘及攻击测试 【官网】:https://sqlmap.org/ 应用场景 sqlmap是一个开源的渗透测试工具,可以用来进行自动化数据库指纹识别,数据库枚举,数据提取,访问目标文件系统,并在获取完全的操作权限执行任意命令。目前支持数据库有mysql、oracle、access、postagesql、sql server、sqlitehttps://config.net.cn/producttest/3f96a311-9b37-43bc-83a6-4ca6565c3ffb-p1.html
17.防止SQL注入攻击的10种有效方法(防止SQL注入)SQL注入是一种常见的网络安全威胁,攻击者通过在用户输入中插入恶意的SQL代码,从而可以执行未经授权的数据库操作。这些方法包括使用参数化查询、输入验证和过滤、存储过程、最小权限原则、ORM框架、准备语句、安全的数据库连接、避免动态拼接SQL语句、使用防火墙和入侵检测系统以及定期更新和维护数据库软件。通过采取这些预防https://www.yundun.com/document/news/1012