- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈网站SQL注入攻击防护策略研究.doc
浅谈网站SQL注入攻击防护策略研究
摘要:针对动态网页生成时存在的安全漏洞,该文简要介绍了网站SQL注入攻击的原理、攻击常用方法,并在此基础上对如何防范对目标网站数据库系统进行注入攻击给出了一些防御方法,以期抵御网站所受的注入攻击,更好地保护Web网站安全和应用。
关键词:网站; SQL注入;攻击;数据库系统
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)08-0001-03
随着互联网的飞速发展,对网站进行SQL注入攻击的事件层出不穷。2009年2月,据称罗马尼亚黑客团伙利用数据库注入攻击技术分别攻击了F-Secure、BT.com、CNET.com等知名网站。为美国1万多家公司提供工资服务的美国PayChoice公司,在受到网站SQL注入攻击后暂时被迫关闭其全部网站。Open Web Application Security Project Top 10 for 2013报告称,注入漏洞攻击已成为十大网站攻击之首。
1 网站SQL注入攻击原理
网站SQL注入攻击,是别有用心的人先使用搜索引擎定位网页中包含的动态ASP脚本,测试目标网站的网页脚本是否存在数据库注入漏洞并确定注入点,最终试图遍历目标网站后台数据库的所有文本字段,获取目标数据库中用户名和密码,进而非法登录目标网站计算机系统,达到恶意目的。一旦攻击得逞,被攻击站点就会被入侵、泄密、破坏,甚至也可能成为恶意软件的分发点。网站注入攻击以网站数据库为目标,一般利用Web应用程序对特殊字符串过滤不完全的缺陷,通过精心构造的字符串达到非法访问网站数据库内容或在数据库中执行命令的目的。
假设有语句str=SELECT * FROM user WHERE name= +username+ and pwd= +PassWord+ ; ,该语句含义是:将用户输入的用户名(存储在变量username中)和登录口令(存储在变量PassWord中)进行数据库检索验证,如果相应的用户名和登录口令正确,则该语句能返回正确的检索信息,否则,检索结果为空(意味着身份验证失败)。以下两种情况都可实现注入攻击。
如果将username赋值如下: username=1or 1=1--,将PassWord赋值任意字符串,则程序在进行变量替换后,str中实际存放的字符串为:str=SELECT * FROM user WHERE name=1 OR 1=1-- and pwd= 任意字符串; 。表达式name=1 OR 1=1值为真,其后验证密码部分被注释掉,则strSQL中实际存放的字符串相当于:str=SELECT * FROM user ;,就相当于不需对用户输入的用户名和密码进行验证。
如果在正常浏览网页的URL地址http://xx.xx.xx.xx/abd.asp?id=KK后添加“and 1=1”时网页如果无变化,而当添加“ and 1=2”时网页出现错误,则说明该网页存在注入漏洞。当添加“and 1=(SELECT is_srvrolemember(sysadmin))”时页面访问正常,则说明连接数据库的用户权限为sysadmin,可以执行数据库命令,表明存在注入权限为系统管理员漏洞。此时,如果添加的语句为“;exec master..xp_cmdshell net user test 123/add --” ,则URL地址中包含的SQL语句就可以在数据库中创建一个名为test、登录口令为123的用户。黑客即可利用新建的用户text上传木马至目标主机,为后续非法攻击奠定基础。
2 网站SQL注入攻击
2.1 SQL注入漏洞与位置探测
一般来说,带有参数的动态网页并且此网页的生成需要访问数据库系统,则很有可能存在SQL注入漏洞。如果网站设计程序员安全意识不强,没有过滤掉一些输入的特殊字符,则存在SQL注入的可能性就非常大。通常在页面URL地址处添加“and 1=1”、“ and 1=2”以及单双引号等一些特殊字符,并通过网页浏览器所返回的信息来判断目标网站是否存在SQL注入漏洞。如果网站程序员对单引号进行了过滤,则攻击者还可以采用:如用SELect代替select、SELECT的大小写混合法;在IE中将输入的字符串变成UNICODE字符串进行输入,如将+换成%2b、将空格换成 %20的UNICODE法;把输入的字符用ASCII码代替,例如将字符A换成chr(65)的 ASCII码法。
2.2 判断网站后台数据库的相关信息
在进行SQL注入攻击前,需要先识别被攻击网站后台所用数据库管理系统的类型和版本。可以通过网站所用的开发语言判断后台数据库类型。例如基于ASP或者
文档评论(0)