CVE:CVE-2002-1138
CNNVD:CNNVD-200210-275
Microsoft SQL Server是微软公司开发的一套商业数据库系统，应用在Microsoft Windows系统下。SQL Server 7.0和2000带了一个助手服务 - SQL Server Agent。这个代理程序用来在数据库意外停止之后重启之，另外，它也负责处理提交的作业。
通过提交一些作业让Agent执行，可能导致低权限用户执行它们进而完全控制数据库系统。
通过msdb数据库中的一些存储过程例如sp_add_job、sp_add_job_step等等，用户就可以提交作业让SQL Server Agent执行。由于SQL Server Agent在一个更高的权限下运行，通常是Local System权限，必须保证当提交一个T-SQL作业时它不能被滥用。因此管理员可以使用如下命令来防止这种攻击：
SETUSER N'guest' WITH NORESET
这样普通的低级别用户将不能提交这样的作业(执行系统命令)：
exec master..xp_cmdshell 'dir'
但这种限制很容被绕过，只需要在SQL Server Agent丢弃权限后重新连接到SQL Server即可。而结合"Microsoft SQL Server扩展存储过程权限提升漏洞"( http://www.nsfocus.com/index.php?act=sec_bug&do=view&bug_id=3313 )中提到的几个扩展存储过程即可绕过这种限制。
solution:Upgrade microsoft data_engine to a higher version than 1.0,2000,and avoid the version 1.0,2000; Upgrade microsoft sql_server to a higher version than 7.0,7.0:sp1,7.0:sp2,7.0:sp3,7.0:sp4,2000,2000:sp1,2000:sp2,and avoid the version 7.0,7.0:sp1,7.0:sp2,7.0:sp3,7.0:sp4,2000,2000:sp1,2000:sp2