欢迎来到天天文库
浏览记录
ID:46778166
大小:79.50 KB
页数:11页
时间:2019-11-27
《浅谈网站SQL注入攻击防护策略研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅谈网站SQL注入攻击防护策略研究摘要:针对动态网页生成时存在的安全漏洞,该文简要介绍了网站SQL注入攻击的原理、攻击常用方法,并在此基础上对如何防范对日标网站数据库系统进行注入攻击给出了一些防御方法,以期抵御网站所受的注入攻击,更好地保护Web网站安全和应用。关键词:网站;SQL注入;攻击;数据库系统中图分类号:TP393文献标识码:A文章编号:1009-3044(2016)08-0001-03随着互联网的飞速发展,对网站进行SQL注入攻击的事件层出不穷。2009年2月,据称罗马尼亚黑客团伙利用数据库注入攻击技术分
2、别攻击了F-Secure、BT.com、CNET,com等知名网站。为美国1万多家公司提供工资服务的美国PayChoice公司,在受到网站SQL注入攻击后暂时被迫关闭其全部网站。OpenWebApplicationSecurityProjectTop10for2013报告称,注入漏洞攻击已成为十大网站攻击之首。1网站SQL注入攻击原理网站SQL注入攻击,是别有用心的人先使用搜索引擎定位网页屮包含的动态ASP脚木,测试日标网站的网页脚木是否存在数据库注入漏洞并确定注入点,最终试图遍历目标网站后台数据库的所有文本字段,获
3、取目标数据库中用户名和密码,进而非法登录目标网站计算机系统,达到恶意目的。一旦攻击得逞,被攻击站点就会被入侵、泄密、破坏,甚至也可能成为恶意软件的分发点。网站注入攻击以网站数据库为目标,一般利用Web应用程序对特殊字符串过滤不完全的缺陷,通过精心构造的字符串达到非法访问网站数据库内容或在数据库屮执行命令的目的。假设有语句str=,,SELECT*FROMuserWHEREname=,〃+usern且me+〃'andpwd=,〃+PassWord+〃‘;〃,该语句含义是:将用户输入的用户名(存储在变量username中
4、)和登录口令(存储在变量PassWord中)进行数据库检索验证,如果相应的用户名和登录口令正确,则该语句能返回正确的检索信息,否则,检索结果为空(意味着身份验证失败)。以下两种情况都可实现注入攻击。如果将username赋值如下:username=,zl,or1=1--〃,将PassWord赋值任意字符串,则程序在进行变量替换后,str中实际存放的字符串为:str二〃SELECT*FROMuserWHEREname=fOR1=1—andpwd二'任意字符串〃。表达式name二T'OR1二1值为真,其后验证密码部分被注
5、释掉,则strSQL中实际存放的字符串相当于:str二〃SELECT*FROMuser;〃,就相当于不需对用户输入的用户名和密码进行验证。如果在正常浏览网页的URL地址http://xx.xx.xx.xx/abd.asp?id二KK后添加“and1二1”时网页如果无变化,而当添加“and1二2”时网页出现错误,则说明该网页存在注入漏洞。当添加“and1二(SELECTissrvrolemember('sysadmin'))”时页面访问正常,则说明连接数据库的用户权限为sysadmin,可以执行数据库命令,表明存在注入
6、权限为系统管理员漏洞。此时,如果添加的语句为“;execmaster..xp_cmdshellJnetusertest123/add'--”,则URL地址中包含的SQL语句就可以在数据库中创建一个名为test、登录口令为123的用户。黑客即可利用新建的用户text±传木马至H标主机,为后续非法攻击奠定基础。2网站SQL注入攻击2.1SQL注入漏洞与位置探测一般来说,带有参数的动态网页并且此网页的生成需要访问数据库系统,则很有可能存在SQL注入漏洞。如果网站设计程序员安全意识不强,没有过滤掉一些输入的特殊字符,则存在S
7、QL注入的可能性就非常大。通常在页面URL地址处添加“and1二1”、“and1二2”以及单双引号等一些特殊字符,并通过网页浏览器所返回的信息来判断日标网站是否存在SQL注入漏洞。如果网站程序员对单引号进行了过滤,则攻击者还可以采用:如用SELect代替select.SELECT的大小写混合法;在IE中将输入的字符串变成UNICODE字符串进行输入,如将+换成%2b、将空格换成%20的UNICODE法;把输入的字符用ASCII码代替,例如将字符A换成chr(65)的ASCTT码法。2.2判断网站后台数据库的相关信息在
8、进行SQL注入攻击前,需要先识别被攻击网站后台所用数据库管理系统的类型和版本。可以通过网站所用的开发语言判断后台数据库类型。例如基于ASP或者ASP.NET技术所开发的网站通常用MicrosoftSQLSERVER作为网站后台数据库管理系统。也可通过网站的部署环境进行判断,如果是运行在Linux操作系统上的Apache应用服务器,则网站很可能使
此文档下载收益归作者所有