基于渗透测试的SQL注入的防范
2016-06-03赵灿秦水介
赵灿 秦水介
【摘要】 随着Internet的进一步普及和计算机网络技术的快速发展,基于Web技术和数据库架构的应用系统已经逐渐成为主流,但是Web应用系统在网络中面临的安全风险与日剧增。Web安全渗透测试技术是一种针对Web应用的积极防范技术。在众多针对Web应用攻击手段中,SQL注入攻击是最常用的也是最易于实施的方法。本文有针对性地研究了SQL注入漏洞的相关防范技术,并对防范的细节加以叙述。
【关键词】 SQL注入 渗透测试 防范
随着web技术的发展,以及脚本语言的简单易用,很多公司都进行网页开发设计。但是许多网页程序员在编写代码的时候,没有对用户输入数据的合法性进行严格的判断和过滤,从而使网页应用程序存在安全隐患和漏洞。SQL 注入攻击时针对脚本系统的攻击中最常见的一种攻击方式,也是危害最大的一种攻击手段。
一、SQL注入的影响
当攻击者们发现SQL注入漏洞后,下一步就是利用这个漏洞拿到服务器的webshell。一旦服务的被攻陷,服务器上的敏感数据以及公司乃至国家的利益都将受到不可估测的损失。基于一些不安全的部署,有可能直接会爆出网站管理员的账号和密码,直接就能对服务器的数据进行删除,添加以及拷贝等操作。
表名猜解:and exists (select * from admin)
列名猜解:and exists (select pwd/password from admin)
猜解库中表的个数: order by 任意数
爆用户名和密码: http://www.host.com/test.asp?id=100 and 1=2 union select 1,2,3,4,5,6…from admin
步步结束的过程,就是利用sql注入漏洞攻陷服务器的过程。
二、SQL注入攻击防范
2.1编程防范
2.1.1对用户输入的数据进行过滤
对用户输入的数据进行过滤是防止SQL注入攻击的关键所在,常见的过滤方式基础过滤,二次过滤以及SQL通用防注入程序等多种方式。在SQL注入入侵前,需要在可修改参数中提交“ ‘”,“and”等字符来判断是否存在SQL注入漏洞,在进行SQL注入攻击时,要提交包含“--”,“update”,“select”等特殊字符的SQL注入语句。例如图1所示。
基于一些不安全的部署,有可能直接会爆出网站管理员的账号和密码,直接就能对服务器的数据进行删除,添加以及拷贝等操作。
2.1.2设置错误提示信息
SQL注入主要依据是IIS给出的ASP错误信息,所以配置IIS和数据库用户权限,可以防止SQL注入攻击。
2.2 数据库防范
数据库文件是网站运行过程中的核心文件,对数据库安全防范措施中,最为直接和简单的办法就是对本机数据库文件的安全防范。修改数据库的下载地址,在数据库属性栏里,选择重定向到URL。修改数据库文件名。但是只是简单的对网站数据库文件的后缀进行更改,是不能保证不被拖库的,还需另外一种方法,即在数据库文件名中添加#符号,如#123.asp。通过添加#号就可以一定程度上防止数据库被下载。修改数据库离默认的sa用户空口令,严格控制数据库用户的权限,不轻易让用户对表有直接查询,更改,插入和删除的权限。修改不必要的扩展存储过程。
三、防范遇到的问题
此时我们按照上面的做法的确能够防范到一部分的攻击,但是并不是所有的编程人员都能意识到安全问题,并不是所有的输入都能被检测截断,例如我们在waf上布置策略,过滤关键字,但是攻击者依然能够用空格,分号,大小写等绕过关键字的检测,来绕过安全设备进入内网。
四、结束语
网络攻击利用这些存在的漏洞和安全缺陷对系统和资源进行攻击。如何更好的预防SQL注入,广大的安全工作者们任重而道远。在这场攻击与防御的拉锯战中,越来越多的攻击者与安全人员加入进来。在现在这个网络即世界的大环境下,网络战争也是一触即发。 如何做到保护小家到大家的安全,都要我们不懈努力。
参 考 文 献
[1] 陈小兵,张汉煜,骆力明,黄河.SQL 注入攻击及其防范检测技术研究[J].计算机工程与应用,2007,43(11):150-152.
[2]SQL注入与防御:第二版/(美)克拉克(Clarke,J.)著
[3]https://technet.microsoft.com/en-us/library/cc512676.aspx
[4]徐陋,姚国祥.SQL 注入攻击全面预防办法及其应用[J].微计算机信息, 2006,22(3):10-12.
[5]刘帅.SQL 注入攻击及其防范检测技术的研究[J].电脑知识与技术,2009,5(28):7870-7872