SQL防止注入机制

SQL防止注入机制

入侵渗透hacker2019-05-08 6:27:1011322A+A-

注入理解与应用

要想知道如何进行SQL注入,首先我们就必须知道,到底什么才是SQL注入,通过查询百度百科可以知道:


通过对于这段话的理解,我们同样可以知道,SQL注入产生的很大一部分原因,更多是程序员自身代码编写水平造成的,使得应用程序产生了安全方面的漏洞,例如在编写程序的过程当中,是否对于敏感字符进行了相应过滤,变量是否进行了唯一性的确定等等,而SQL注入正是通过多变的查询数据手法,或者语句,通过系统本身的报错,得到攻击者希望获得信息。

注入实例

2.注入思路

1.寻找到SQL注入的位置

2.判断服务器类型和后台数据库类型

3.针对不通的服务器和数据库特点进行SQL注入攻击

2.注入过程

实例网站:http:/在我们通过各种手段(NMAP,Recon-NG,NtScan,DVWA…),获得了实例网站的各项信息时,便开始了注入。

注入的第一点便是找寻SQL注入存在的位置,此例当中,我们通过测试可以发现,其注入点便位于http:///newss.asp?id=338,当我们在id=338后面加上一个’.1’时,可以发现页面进行了报错,而我们添加一个’.0’时,页面又返回了正常,由此可以推断,这里存在着一个可以进行注入的漏洞。

接着判断注入的类型,即字符型或者是数字型,根据测试,我们会发现,这一网站是数字型的注入,在id=338 后面加上and 1=1页面正常,and 1=2页面报错。

根据order by 的推断,可得数据库中的列表长度为11,随即进行联合查询,最终可以得到数据库的名字,以及管理员的账号密码等。在此之后,我们根据之前扫描目录时获得信息,便可进入到后台,获得自己想要的信息。

注入防御

.代码层面

.1. 检查数据类型变量以及格式

如果我们的SQL语句是类似where id={$id}这种形式,数据库里所有的id都是数字,那么就应该在SQL被执行前,检查确保变量id是int类型;如果是接受邮箱,那就应该检查并严格确保变量一定是邮箱的格式,其他的类型比如日期、时间等也是一个道理。总结起来:只要是有固定格式的变量,在SQL语句执行前,应该严格按照固定格式去检查,确保变量是我们预想的格式,这样很大程度上可以避免SQL注入攻击。

在一些注册界面的话,更是要确保使用某些检查函数进行一次彻底排查,以确保不存在特殊字符。

.2. 过滤特殊字符

在一些时候,我们并不能将一些字符进行完全的过滤,例如某些文章提交界面,论坛交流区等,在这样的情况下,我们就要做到尽可能的做到对特殊字符进行转义,或者一定程度上的过滤。


第一句SQL的变量被单引号包含起来,当我们进行SQL注入的时候,面临的第一个问题就是要闭合前面的单引号,只有这样才能使后面的语句作为SQL执行,除此之外,还要记得对于原SQL语句中的后面的单引号的注释,只有经过了这样的操作,注入最终才会被成功执行,但第二句没有用引号包含变量,那我们同样也就不用取考虑关于引号方面的闭合、注释等操作,所以即便同样采用addslashes函数的转义,但同样存在着SQL攻击的漏洞。

.3. 预编译语句集(PreParedStatement)

使用预编译的 SQL 语句,是防止SQL注入的一种简单有效方式,我们知道SQL注入针对的是SQL语句编译的过程,只在这一过程中存在着破坏性,而预编译语句集只是把输入串作为数据处理,而不再对SQL语句进行解析,准备,因此也就在一定的程度上避免了SQL注入问题。


在上例代码中,如果我们仍然同注入示例网站中的注入操作一样的话,会发现,尽管耗费大量的时间,但最终的结果可能并不是尽如人意,这是因为,在此例当中,username变量传递的参数,也只会当作username字符串来解释查询,而这也就从根本上杜绝了SQL注入攻击的发生。

.4. 数据库信息加密

在现如今的加解密中,大致已经可以清楚的将其分为三种:

1、对称加密:即加密方和解密方都使用相同的加密算法和密钥,这种方案的密钥的保存非常关键,因为算法是公开的,而密钥是保密的,一旦密匙泄露,黑客仍然可以轻易解密。常见的对称加密算法有:AES、DES等。

2、非对称加密:即使用不同的密钥来进行加解密,密钥被分为公钥和私钥,用私钥加密的数据必须使用公钥来解密,同样用公钥加密的数据必须用对应的私钥来解密,常见的非对称加密算法有:RSA等。

3、不可逆加密:利用哈希算法使数据加密之后无法解密回原数据,这样的哈希算法常用的有:md5、SHA-1等。

如今越来越多的信息管理系统采用md5的不可逆加密算法来存储密码,但同样的,其安全性也是越发遭到了挑战,如今我们仅仅通过谷歌,或者是度娘这样的搜索引擎,就可以轻轻松松的找到大量的md5在线破解网站,例如在将e10adc3949ba59abbe56e057f20f883e这段密文填入的瞬间,我们就能够得到加密之前的密码,虽然说也不一定每一个都特别的准确,但是毫无疑问,随着时代的发展,其破解的准确会愈来愈高。

所以说,关于存储信息方面的数据库要做到对于加密后的信息,不能使其逆加密,通常的做法是为每个用户确定不同的密码加密后,再混合用户的真实密码进行md5加密。


.平台方面

.1. Web 应用防火墙

WEB应用防火墙是集WEB防护、网页保护、负载均衡,应用交互于一体的WEB整体安全防护设备的一款产品。它集成全新的安全理念与先进的创新架构,保障用户核心应用与业务持续稳定的运行。

WEB应用防火墙特点:

1、事前主动防御、自动分析、应用缺陷、屏蔽恶意请求、防范网页篡改、阻断应用攻击,全方位保护WEB应用。

2、事中智能响应,快速P2DR建模、模糊归纳和定位攻击,阻止风险扩散,消除“安全事故”于萌芽之中。

3、事后行为审计,深度挖掘访问行为、分析攻击数据、提升应用价值,为评估安全状况提供详尽报表。

4、面向客户的应用加速,提升系统性能,改善WEB访问体验。

5、面向过程的应用控制,细化访问行为,强化应用服务能力。

6、面向服务的负载均衡,扩展服务能力,适应业务规模的快速壮大。

.2. 数据库防火墙

数据库防火墙系统,串联部署在数据库服务器之前,解决数据库应用侧和运维侧两方面的问题,是一款基于数据库协议分析与控制技术的数据库安全防护系统。DBFirewall基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。

数据库安全技术之一,数据库安全技术主要包括:数据库漏扫、数据库加密、数据库防火墙、数据脱敏、数据库安全审计系统。

数据库防火墙功能:

1、屏蔽直接访问数据库的通道:数据库防火墙部署介于数据库服务器和应用服务器之间,屏蔽直接访问的通道,防止 数据库隐通道对数据库的攻击。

2、二次认证:基于独创的“连接六元组【机器指纹(不可伪造)、IP地址、MAC地址、用户、应用程序、时间段】”授权单位,应用程序对数据库的访问,必须经过数据库防火墙和数据库自身两层身份认证。

3、攻击保护:实时检测用户对数据库进行的SQL注入和缓冲区溢出攻击。并报警或者阻止攻击行为,同时详细的审计下攻击操作发生的时间、来源IP、登录数据库的用户名、攻击代码等详细信息。

4、连接监控:实时的监控所有到数据库的连接信息、操作数、违规数等。管理员可以断开指定的连接。

5、安全审计:系统能够审计对数据库服务器的访问情况。包括用户名、程序名、IP地址、请求的数据库、连接建立的时间、连接断开的时间、通信量大小、执行结果等等信息。并提供灵活的回放日志查询分析功能,并可以生存报表。

6、审计探针:本系统在作为数据库防火墙的同时,还可以作为数据库审计系统的数据获取引擎,将通信内容发送到审计系统中。

7、细粒度权限控制:按照SQL操作类型包括Select、Insert、Update、Delete,对象拥有者,及基于表、视图对象、列进行权限控制

8、精准SQL语法分析:高性能SQL语义分析引擎,对数据库的SQL语句操作,进行实时捕获、识别、分类

9、自动SQL学习:基于自学习机制的风险管控模型,主动监控数据库活动,防止未授权的数据库访问、SQL注入、权限或角色升级,以及对敏感数据的非法访问等。

10、透明部署:无须改变网络结构、应用部署、应用程序内部逻辑、前端用户习惯等

4.防御总结

1、不要随意开启生产环境中Webserver的错误显示。

2、永远不要信任来自用户端的变量输入,有固定格式的变量一定要严格检查对应的格式,没有固定格式的变量需 要对引号等特殊字符进行必要的过滤转义。

3、使用预编译绑定变量的SQL语句。

4、做好数据库帐号权限管理。

5、严格加密处理用户的机密信息。


点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 2条评论
  • 语酌萌晴2022-05-28 15:47:58
  • 析功能,并可以生存报表。6、审计探针:本系统在作为数据库防火墙的同时,还可以作为数据库审计系统的数据获取引擎,将通信内容发送到审计系统中。7、细粒度权限控制:按照SQL操作类型包括Se
  • 双笙轻禾2022-05-28 14:15:57
  • 用户习惯等4.防御总结1、不要随意开启生产环境中Webserver的错误显示。2、永远不要信任来自用户端的变量输入,有固定格式的变量一定要严格检查对应的格式,没有固定格式的变量需 要对引号等特殊字符进行必要的过滤转义。3、使用预编

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理