通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>网络安全>>安全防范>>正文 新版上线![旧版]
注:打开慢时请稍等
web环境下sql注入攻击的检测与防御

http://www.iyit.net  日期:2006-5-8 9:21:51  来源:中国站长学院  点击:
参加讨论】互联网上的安全问题越来越严重,入侵检测(ids)也因而显得尤为必要。ms sql server作为数据库市场的主要产品之一,研究针对他的sql攻击处理方案,建立一个通用的sql注入攻击防御、检测、备案模型,对于加强安全建设具有积极的意义。

  1 sql注入攻击简介

  sql注入攻击源于英文“sql injection attack”。目前还没有看到一种标准的定义,常见的是对这种攻击形式、特点的描述。微软技术中心从2个方面进行了描述:

  (1)脚本注入式的攻击。

  (2)恶意用户输入用来影响被执行的sql脚本。

  stephen kost给出了这种攻击形式的另一个特征,“从一个数据库获得未经 授权的访问和直接检索”。sql注入攻击就其本质而言,他利用的工具是sql的语法,针对的是应用程序开发者编程过程中的漏洞。“当攻击者能够操作数据,往应用程序中插入一些sql语句时,sql注入攻击就发生了”。

  由于sql注入攻击利用的是sql语法,使得这种攻击具有广泛性。理论上说,对于所有基于sql语言标准的数据库软件都是有效的,包括ms sql server,oracle,db2,sybase,mysql等。当然,各种软件有自身的特点,最终的攻击代码可能不尽相同。sql注入攻击的原理相对简单,易于掌握和实施,并且整个internet上连接有数目惊人的数据库系统(仅在中国,截至2003年3月的统计就有82 900多个),在过去的几年里,sql攻击的数量一直在增长。
  

  2sql注入式攻击的检测及跟踪

  2.1sql攻击检测/防御/跟踪模型

  针对sql攻击的防御,前人做过大量的工作,提出的解决方案包括 :

  (1)封装客户端提交信息。

  (2)替换或删除敏感字符/字符串。

  (3)屏蔽出错信息以及。

  (4)在服务端正式处理之前对提交数据的合法性进行检查等。

  方案(1)的做法需要rdbms的支持,目前只有oracle采用该技术;方案(2)是一种不 完全的解决措施,举例来说明他的弱点,当客户端的输入为“…ccmdmcmdd…”时,在对敏感字符串“cmd”替换删除以后,剩下的字符正好是“…cmd…”;方案(3)的实质是在服务端处理完毕之后进行补救,攻击已经发生,只是阻止攻击者知道攻击的结果;方案(4)被多数的研究 者认为是最根本的解决手段,在确认客户端的输入合法之前,服务端拒绝进行关键性的处理操作。方案(4)与(2)的区别在于,方案(4)一旦检测到敏感字符/字符串,针对数据库的操作即行中止,而方案(2)是对有问题的客户端输入做出补救,不中止程序后续操作。方案(2)虽然在一定程度上有效,但有“治标不治本”的嫌疑,新的攻击方式正在被不断发现,只要允许服务端程序使用这些提交信息,就总有受到攻击的可能。

  因此,本文中针对sql注入攻击的检测/防御/备案模型即基于提交信息的合法性检 查,在客户端和服务端进行两级检查,只要任一级检查没有通过,提交的信息就不会进入query语句,不会构成攻击。在客户端和服务端进行合法性检查的函数基本相同。客户端检查的主要 作用是减少网络流量,降低服务器负荷,将一般误操作、低等级攻击与高等级攻击行为区分开来。技术上,客户端的检查是有可能被有经验的攻击者绕开的,在这种情形下,提交的数据被直接发往服务端,通过在服务器端设定二级检查就显得十分必要。由于正常提交到服务端的数据已经在客户端检查过,因此,服务端检查到的提交异常基本可以认定为恶意攻击行为所致,中止提交信息的处理,进行攻击备案,并对客户端给出出错/警告提示。对应模型简图如图1所示。   

 

  2.2检 测

  对提交信息的检查,主要包括数据类型检查、数据长度检查和敏感字符过滤。前两项可利用函数直接办到,敏感字符过滤则需要应用开发方做相应开发。经过总结,对   
  

  语句时必须用到的,因此可以针对这些敏感字符,设定过滤函数,在把这些上传的参数结合到查询语句之前对他们进行过滤。下面的2个函数即过滤模块的主要代码:   
2.3跟 踪

  提交非法字符的人,都有可能是sql注入攻击者。但考虑到用户在正常使用中的误操作也有提交非法字符/字符串的可能,因此客户端的一级检查无论对用户误操作,还是一般性攻击,所做出处理措施只是中止信息提交,给出友好的出错提示。在经过一级检查以后提交到服务器端的信息中仍然包括非法字符/字符串的,惟一的可能是攻击者绕开了客户端的一级检查。对于这种危险的信号,服务器端将从收到的提交信息数据包中提取攻击源的ip地址,存入数据库备查,同时中止针对数据库的操作.
  





  3结语

  由于sql注入攻击针对的是应用开发过程中的编程不严密,因而对于绝大多数防火墙来说,这种攻击是“合法”的。问题的解决只有依赖于完善编程。专门针对sql注入攻击的工具较少,wpoison对于用asp,php进行的开发有一定帮助。本文中的ddl模型作为一个整体解决方案,对代码稍加变动也可用于sql server以外的关系数据库。已经将该模型应用于某单位的web数据库开发,取得了良好的效果。本文中给出的代码在windows 2000 server+sql server 2000环境测试通过。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:利用instr()函数防止sql注入攻击
下一篇:asp注入漏洞全接触(1)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
跨站式sql注入技巧 利用instr()函数防止sql注入攻击 九大措施安全配置sqlserver2000
防范sql指令植入式攻击(2) 防范sql指令植入式攻击(1) 数据库安全:sql server 中系统表的作用
sql server防范措施(2) sql server防范措施(1) 从iis到sql server数据库安全
sql server数据库安全规划全攻略(2) sql server数据库安全规划全攻略(1) 突破sql错误提示上传webshell
恢复sql server系统数据库 sqlserver取得网站路径的几种方法以及比 sqlserver取得网站路径的几种方法以及比
hdsi2.0 sql注入部分抓包(4) hdsi2.0 sql注入部分抓包(3) hdsi2.0 sql注入部分抓包(2)
hdsi2.0 sql注入部分抓包(1) iis服务、asp.net引擎以及sqlserver的安 蓝雨设计整站sql注入漏洞
如何灵活地运用sql injection做数据库渗 灵活地运用sql injection做数据库渗透 从iis转到sql数据库安全
最新更新 热点排行 推荐新闻
服务器安全设置(七)
服务器安全设置(六)
服务器安全设置(五)
服务器安全设置(四)
服务器安全设置(三)
网站服务器通用和专用保护方法比较分析
网站服务器通用和专用保护方法比较分析
跨站式sql注入技巧
全面解析“网络钓鱼”式攻击
揭开网络钓鱼(phishing)秘密
google hacking的实现以及应用(下)
google hacking的实现以及应用(上)
网络最经典命令行-网络安全工作者的必
刍议ipv6的安全问题
鲜为人知的“windows 2000/xp受限”问
上网服务器步步建
网络安全问题的讨论和对策
ie浏览器再爆漏洞恐怖数据库成硬盘杀手
winxp漏洞可诱发dos攻击微软正在赶制补
操作系统被入侵后的修复过程
新开放qq免费挂级网站
免费在qq上看在线电影电视听音乐
免费把qq炫铃设为本机qq的系统提示音
qq珊瑚虫外挂4.0版本发布!
腾讯qq调整升级条件不再诱发网民“通宵
流金岁月!cpu历史上最难忘的十个第一
优秀公益广告作品欣赏(8)
java数据类型转换
qq挂机的n种快速方法
asp自动解压rar文件
操作系统被入侵后的修复过程
巧用photoshop图案工具
用photoshop制成浪漫的“珍珠项链”
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息