CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

SQLserver被注入攻击了,请教大家有没有防范方法!

楼主thooy(雨天)2006-03-06 09:46:25 在 MS-SQL Server / 疑难问题 提问

SQLSERVER被攻击了,老是出现d99_tmp,comdlist,jiaozhu等表,查了一下网上是被注入攻击了,而且是些什么“教主”什么的,请问有没有方法可以防范这些攻击。还有SQLSERVER的安全设置一般要注意什么?? 问题点数:100、回复次数:6Top

1 楼lsqkeke(可可)回复于 2006-03-06 09:50:11 得分 0

程序控制问题!!  
   
  最好从程序入手Top

2 楼sxlcom(木头)回复于 2006-03-06 10:10:45 得分 20

第一步:很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用来防止别人进行手动注入测试。  
   
    可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。  
   
    第二步:对于注入分析器的防范,笔者通过实验,发现了一种简单有效的防范方法。首先我们要知道SQL注入分析器是如何工作的。在操作过程中,发现软件并不是冲着“admin”管理员账号去的,而是冲着权限(如flag=1)去的。这样一来,无论你的管理员账号怎么变都无法逃过检测。  
   
    第三步:既然无法逃过检测,那我们就做两个账号,一个是普通的管理员账号,一个是防止注入的账号,为什么这么说呢?笔者想,如果找一个权限最大的账号制造假象,吸引软件的检测,而这个账号里的内容是大于千字以上的中文字符,就会迫使软件对这个账号进行分析的时候进入全负荷状态甚至资源耗尽而死机。下面我们就来修改数据库吧。  
   
    1.对表结构进行修改。将管理员的账号字段的数据类型进行修改,文本型改成最大字段255(其实也够了,如果还想做得再大点,可以选择备注型),密码的字段也进行相同设置。  
   
    2.对表进行修改。设置管理员权限的账号放在ID1,并输入大量中文字符(最好大于100个字)。  
   
    3.把真正的管理员密码放在ID2后的任何一个位置(如放在ID549上)。  
   
  Top

3 楼zjcxc(邹建)回复于 2006-03-06 12:26:46 得分 80

1.   修改你的程序,   对输入的字符串进行合法性检查和过滤  
  2.   最好是把你的sql重新安装一下,   以避免它已经在你的sql中做了手脚.  
   
  Top

4 楼zjcxc(邹建)回复于 2006-03-06 12:27:27 得分 0

--作好SQL的安全管理  
   
  --作者:邹建  
   
  首先,做好用户安全:      
     
  --简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)      
     
  1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql     server和windows"--确定      
     
  2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码      
     
  3.删除用户:      
                        BUILTIN\Administrators      
                        <机器名>\Administrator     --这个用户不一定有      
        这样可以防止用windows身份登陆SQL      
     
  4.设置进入企业管理器需要输入密码      
  在企业管理器中      
                        --右键你的服务器实例(就是那个有绿色图标的)      
                        --编辑SQL   Server注册属性      
                        --选择"使用   SQL   Server   身份验证"      
                        --并勾选"总是提示输入登录名和密码"      
                        --确定      
     
  --经过上面的设置,你的SQL     Server基本上算是安全了.      
   
  ------------------------------------------------------------------------      
   
     
  其次,改默认端口,隐藏服务器,减少被攻击的可能性      
     
  SQL   Server服务器      
                        --开始      
                        --程序      
                        --Microsoft     SQL     Server      
                        --服务器网络实用工具      
                        --启用的协议中"TCP/IP"      
                        --属性      
                        --默认端口,输入一个自已定义的端口,比如2433      
                        --勾选隐藏服务器Top

5 楼zjcxc(邹建)回复于 2006-03-06 12:27:35 得分 0

 
  --管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)      
     
  --切换到你新增的用户要控制的数据库      
  use     你的库名      
  go      
     
  --新增用户      
  exec     sp_addlogin     'test'                         --添加登录      
  exec     sp_grantdbaccess     N'test'                         --使其成为当前数据库的合法用户      
  exec     sp_addrolemember     N'db_owner',     N'test'                         --授予对自己数据库的所有权限      
     
  --这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表      
  go      
     
  --删除测试用户      
  exec     sp_revokedbaccess     N'test'                         --移除对数据库的访问权限      
  exec     sp_droplogin     N'test'                         --删除登录      
   
   
  如果在企业管理器中创建的话,就用:  
   
  企业管理器--安全性--右键登录--新建登录  
   
  常规项  
  --名称中输入用户名  
  --身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)  
  --默认设置中,选择你新建的用户要访问的数据库名  
   
  服务器角色项  
  这个里面不要选择任何东西  
   
  数据库访问项  
  勾选你创建的用户需要访问的数据库名  
  数据库角色中允许,勾选"public","db_ownew"  
   
  确定,这样建好的用户与上面语句建立的用户一样Top

6 楼zjcxc(邹建)回复于 2006-03-06 12:27:40 得分 0

 
  最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:    
     
  --添加只允许访问指定表的用户:      
  exec     sp_addlogin     '用户名','密码','默认数据库名'      
     
  --添加到数据库      
  exec     sp_grantdbaccess     '用户名'  
     
  --分配整表权限      
  GRANT     SELECT   ,     INSERT   ,     UPDATE   ,     DELETE     ON   table1   TO   [用户名]  
   
  --分配权限到具体的列  
  GRANT     SELECT   ,     UPDATE     ON   table1(id,AA)   TO   [用户名]  
     
     
  -------------------------------------------------------------------      
  至于具体的安全设置和理论知道,参考SQL联机帮助  
     
  Top

相关问题

  • 菜鸟问题,经常听说SQL注入式攻击,是怎么回事啊,ASP.NET中如何防范SQL注入式攻击?
  • 预防注入攻击
  • 关于sql注入攻击
  • 有关注入式攻击,请教!!
  • 对于sa注入,应该如何防范呢?
  • 什么软件防范和侦测到拒绝服务攻击?
  • ===============请问各位高手,这样能被sql注入攻击吗?==================
  • 关于注入攻击的表单提交问题?
  • 问大家一个问题,什么叫SQL注入式攻击???
  • 站点被攻击了几次,我做了以下的防范,可是依旧被攻击了。

关键词

  • 账号
  • 注入
  • 分析器
  • 密码
  • 修改
  • 用户
  • 数据库
  • 检测
  • 服务器
  • 端口

得分解答快速导航

  • 帖主:thooy
  • sxlcom
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo