sqlserver口令:MsSQLServer是如何加密口令的来源: 发布时间:星期六, 2009年9月12日 浏览:62次 评论:0
来源:安全中国
如果对MSSQL用户信息有兴趣可能会发现master.dbo.sysxlogins里面存放着用户口令可是呢password字段如果不是null就是堆看不懂binary这个口令是如何加密呢? 其实只要仔细看看master.dbo.sp_addlogin就知道了MSSQLsp都可以看到代码真是不错 让我们来看看它是如何做注意这行select @passwd = pwdencrypt(@passwd)这个时后@passwd就被加密了让我们也来试下 DECLARE @ClearPWD varchar(255) DECLARE @EncryptedPWD varbinary(255) SELECT @ClearPWD = ’test’ SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD)) SELECT @EncryptedPWD 看上去不错确实被加密了可是我如何还原呢? 呵呵这就没戏了口令加密都是单向用加密后密文来比较就可以了 继续看看其它用户相关sp可以发现master.dbo.sp_password里面有口令比较内容 pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) 不用去理会xstatus这是个状态掩码般我们用时候就直接用0就可以了 DECLARE @ClearPWD varchar(255) DECLARE @EncryptedPWD varbinary(255) SELECT @ClearPWD = ’test’ SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD)) SELECT pwdcompare(@ClearPWD, @EncryptedPWD, 0) SELECT pwdcompare(’ErrorPassword’, @EncryptedPWD, 0) 这样我们就可以使用这两个来加密自己密码了如何样还不错吧? 0
相关文章
读者评论发表评论 |