浅析高校网站安全中SQL注入攻击与防范方法

2017-03-11 01:41冯贵兰李正楠
网络安全技术与应用 2017年5期
关键词:语句漏洞管理员

◆冯贵兰 李正楠

(1.中国民航飞行学院(广汉)现代教育技术中心 四川 618307;2.中国民航飞行学院(广汉)航空工程学院 四川 618307)

浅析高校网站安全中SQL注入攻击与防范方法

◆冯贵兰1李正楠2

(1.中国民航飞行学院(广汉)现代教育技术中心 四川 618307;2.中国民航飞行学院(广汉)航空工程学院 四川 618307)

随着教育信息化、数字化校园建设的不断推进,高校校园网中部署了各种web门户网站。但是SQL注入攻击可以入侵数据库、进行网页挂马,严重威胁了高校网站安全。本文通过SQL map工具讲解了SQL注入攻击原理和详细操作步骤,高校网络管理员在明白攻击原理之后,可以使用对应的防护方法,降低web网站受到注入攻击的风险,更好地保护高校网站的安全。

网络安全;web应用;SQL注入

0 引言

随着教育信息化、数字化校园建设的不断推进,高校校园网中部署了各种web门户网站和应用系统。高校网站和应用系统是对外宣传的窗口,是教学、管理和科研的重要平台,在给师生来带便利的同时也面临着严重的安全问题。一方面,黑客热衷于攻击搜索引擎(如谷歌、百度)中前几页的教育网站;另一方面,开发高校网站和应用系统的程序员水平层次不齐,部分网站和应用系统由学生进行开发,学生们经验欠缺,在程序开发时没有过滤用户输入,保证其数据有效性,导致程序存在安全薄弱点,容易引来黑客攻击,加大了高校网站被挂马、数据泄露的风险。本文以渗透测试工具SQLmap为媒介阐述了SQL注入攻击原理、详细操作步骤和防范方法。

1 SQL注入攻击原理

SQL注入攻击主要是指黑客通过系统开发中存在的漏洞,向系统中注入不合法的SQL查询语句,以此获取系统中的敏感数据或服务器控制权。高校网络安全管理员想要保护学校网站不受SQL注入攻击,就要了解其入侵原理,本文通过SQLmap这款黑客常用的渗透测试工具来讲解入侵原理和详细操作步骤。

使用SQLMap 进行注入攻击的步骤是手动检测判断注入点,逐步得到web数据库信息(如数据库类型、数据库版本)、数据库的名称、当前数据库中所有表名、列名,然后得到后台管理员帐号、密码,找到网站后台地址并登录。入侵者能够使用找到的注入点,执行自己想要的SQL语句,随意修改web数据库中的内容(如把所有新闻标题改为入侵者想要的标题和内容),删除表或数据库等。

(1)手工检测判断注入点。

手工检测系统是否存在漏洞非常关键,方法是打开网站中有参数传递的网页(如通知公告中的/list.asp?id=11)用注入命令来进行测试。通常的做法是在某些网站 URL地址后加上一些特殊构造的字符串,根据返回的结果,以确定这个网站是否可以被注入,常用的判断手段是单引号测试法和1=2测试法。操作方法是在某个测试url地址后加单引号’来判断,提示错误。替换判断语句为 and 1=1,返回正常页面。替换语句为:and 1=2,页面再次返回错误,由此可见,这个url地址有注入点可以被利用。

假如地址:http://www.test.com/Art_Show.php?id=2是注入点。(2)利用SQLMap注入数据库。

打开渗透测试软件SQLMap输入:

Python sqlmap.py -u "http://www.test.com/Art_Show. php?id=2"

对注入点进行检测,注入成功后,将会显示数据库管理系统的类型。

(3)获取数据库信息。

在SQLMap中输入:python sqlmap.py -u "http://www. test.com/Art_Show.php?id=2" --current-db获取当前数据库名称后,继续输入:python sqlmap.py -u "http://www.test.com/ Art_Show.php?id=2" -D mys tables

可以得到数据库表。有了数据库表名,下一步就是获取列名,输入:

python sqlmap.py -u "http://www.test.com/ Art_Show.php?id=2" -D mys -T zzcms_admin --columns

得到管理员表的列名。列名有了,下一步是获取账号和密码,输入:

python sqlmap.py -u "http://www.test.com/ Art_Show.php?id=2" -D mys -T zzcms_admin -C name, password --dump

得到name和password内的账户密码。

在攻击者拥有了账号和密码之后,登录网站后台,然后利用后台的上传功能上传网页木马或者webshell,实施对服务器端的控制、添加一个管理员账号等。

2 SQL注入攻击的防范方法

知道SQL注入的原理后,高校网站管理员应当从下面五个方面采取防护措施:

(1)对数据进行有效性检测。加强对客户端输入数据的验证,限制文本输入框(如登录系统、搜索系统)只输入英文小写、数字和下划线,过滤用户输入参数中的危险字符、特殊字符,如单引号,分号、括号等。此外,还应限制数据长度,例如限制文本框的输入长度在10个字符以内,因为一般用于SQL注入攻击的语句都有一定长度,通过这样的限制可以增加黑客攻击的难度。

(2)屏蔽网站错误返回页面。通常入侵者会利用网页SQL注入点提交攻击代码,提交后根据页面回显信息得到网站使用的哪种数据库系统、数据库版本、网站目录等关键信息。若网站未关闭 aspx错误远程显示,攻击者就能获取网站目录地址及函数调用堆栈等重要信息。若Web网站目录未关闭匿名浏览权限,攻击者可作为下一步攻击的基础,如攻击过程中的各种临时文件放入此目录,便于观察和调试。因此,开发人员可以专门做一个简单的网站访问错误页面,给予用户访问提示,而不包含任何关于服务器或网站的有用信息。

(3)过滤敏感字符。增加过滤器屏蔽特殊字符,例如%,#,@,CR等可能被利用的查询字符串。对用户在地址栏的输入、传入的参数等进行校验,通过正则表达式,对单引号、敏感字符串进行判断和过滤,不让特殊构造的非法SQL语句执行,阻止非法用户不经过授权进行登录。

(4)将数据进行封装和加密。编程时,通过参数化的语句来传递用户输入变量,而不是将其直接嵌入到SQL语句中。或者使用session语句传递用户输入变量,而不是cookie,不要攻击者采集cookie里的口令信息。另外,对管理员和普通用户登录网站的用户名和口令使用加密方式保存,增加数据的安全性。

(5)定期检查网站。使用专业的漏洞扫描工具来寻找可能被攻击的点,每隔一段时间定期扫描网站漏洞,一旦发现存在漏洞,立即修复,提前防范SQL注入攻击。

3 结束语

随着高校信息化的发展,学校的网站应用越来越多,一些新型的SQL注入攻击方法层出不穷,对于高校网站中的SQL注入攻击的防范也需不断加强。首先,高校在开发应用时应尽量采用先进的技术,规范编程语句,过滤用户输入,提前做好防护措施。其次,在网站开通前进行全方位的安全测试,在后期维护网站时定期使用漏洞扫描工具进行扫描,及时修复网站漏洞。最后,使用web防火墙阻挡网站攻击,尽可能地降低SQL注入攻击带来的网络安全风险,保证高校web网站的安全。

[1]焦玉华.WEB系统中SQL注入防御方法的研究[J].大众科技, 2015.

[2]方友志.基于高校Web应用中SQL注入攻击与防范研究[J].电脑知识与技术, 2016.

[3]范义山.SQL注入防护—从一款注入工具入侵原理入手[J].科技视界, 2016.

[4]林金娜.浅谈高校网站安全中 SQL注入问题[J].网络安全技术与应用,2016.

[5]欧贤,杨世海.SQL注入攻击原理与防范技术研究[J]. 数字技术与应用,2016.

[6]王云,郭外萍,陈承欢.Web项目中的SQL注入问题研究与防范方法[J].计算机工程与设计,2010.

[7]王湘渝,刘豪.SQL注入攻击及其防范技术研究[J]. 网络安全技术与应用,2009.

[8]黄晓兵,彭健,余昌骐.SQL注入攻击方法及预防措施的研究[J].计算机光盘软件与应用,2010.

中国民航飞行学院青年基金项目(Q2014-118)。

猜你喜欢
语句漏洞管理员
漏洞
我是小小午餐管理员
我是图书管理员
我是图书管理员
重点:语句衔接
可疑的管理员
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高铁急救应补齐三漏洞
我喜欢