2007-06-07

从IIS到SQL Server数据库安全

来源: 本站收集整理 作者:佚名 评论 0 条
 

对于 NT 和 WIN2000,当用户不是 sysadmin 组的成员时,xp_cmdshell 将模拟使用 xp_sqlagent_proxy_account 指定的 SQL Server 代理程序的代理帐户。假如代理帐户不能用,则 xp_cmdshell 将失败。所以即使有一个帐户是master数据库的db_owner,也不能执行这个存储过程。

假如我们有一个能执行xp_cmdshell的数据库账号,比如是空口令的sa账号。那么我们可以执行这样的命令:

exec xp_cmdshell 'net user refdom 123456 /add' 

exec xp_cmdshell 'net localgroup administrators refdom /add'

上面两次调用就在系统的治理员组中添加了一个用户:refdom

当我们获得数据库的sa治理员账号后,就应该可以完全控制这个机器了。可见数据库安全的重要性。

下面这些存储过程都是对Public可以执行的:

xp_fileexist,用来确定一个文件是否存在。

xp_getfiledetails,可以获得文件具体资料。

xp_dirtree,可以展开你需要了解的目录,获得所有目录深度。

Xp_getnetname,可以获得服务器名称。

还有可以操作注册表的存储过程,这些不是对Public可以执行的,需要系统治理员或者授权执行:

Xp_regaddmultistring 

Xp_regdeletekey 

Xp_regdeletevalue 

Xp_regenumvalues 

Xp_regread (对Public可以执行) 

Xp_regremovemultistring 

Xp_regwrite

SQL Server的安全配置

除跟着微软打满所有补丁外,还需要加强数据库的安全。

首先,你需要加强象sa这样的账号的密码,跟系统账号的使用配置相似,一般操作数据库不要使用像“sa”这样的最高权限的账号,而使用能满足你的要求的一般账号。

接着对扩展存储过程开始大屠杀,首先就是xp_cmdshell,还有就是上面那些一大堆存储过程,都drop吧,一般也用不着。

执行:


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:请不要随便购买没有版权的网站  
下一篇:在Apache环境下成功的运行ASP.NET
    评论加载中…
共4页: 上一页 [1] 2 [3] [4] 下一页
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号