• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

调整重心 从IIS到SQL Server数据库安全

发布: 2009-10-09 10:50 | 作者: 不详 | 来源: 领测软件测试网 | 查看: 24次 | 进入软件测试论坛讨论

领测软件测试网

xp_cmdshell {’command_string’} [, no_output]
 


xp_cmdshell在默认情况下,只有 sysadmin 的成员才能执行。但是,sysadmin也可以授予其他用户这个执行权限。在早期版本中,获得 xp_cmdshell 执行权限的用户在 SQL Server 服务的用户帐户中运行命令。可以通过配置选项配置 SQL Server,以便对 SQL Server 无 sa 访问权限的用户能够在SQLExecutiveCmdExec Windows NT 帐户中运行 xp_cmdshell。在 SQL Server 7.0 中,该账户称为 SQLAgentCmdExec。现在对于SQL Server2000,只要有一个能执行该存储过程的账号就可以直接运行命令了。 


对于 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

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

42/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网