WEB开发网
开发学院网络安全黑客技术 破解MSSQL中的HASH密码 阅读

破解MSSQL中的HASH密码

 2009-05-07 16:51:50 来源:WEB开发网   
核心提示:SQL服务器是怎样储存密码的? SQL服务器使用了一个没有公开的函数pwdencrypt()对用户密码产生一个hash.通过研究我们可以发现这个hash储存在mater数据库的sysxlogins表里面,这个可能已经是众所周知的事情了,破解MSSQL中的HASH密码, pwdencrypt()函数还没有公布详细的资料,

SQL服务器是怎样储存密码的?

SQL服务器使用了一个没有公开的函数pwdencrypt()对用户密码产生一个hash.通过研究我们可以发现这个hash储存在mater数据库的sysxlogins表里面。这个可能已经是众所周知的事情了。

pwdencrypt()函数还没有公布详细的资料,我们这份文档将详细对这个函数进行讨论,并将指出sql服务器储存hash的这种方法的一些不足之处。实际上,等下我将会说‘密码hashes’。(allyesno:后文会讨论到,由于时间的关系即使当密码相同的时候生成的hash也并不是唯一一个,所以是hashes)

SQL的密码hash看起来是怎样的呢?

我们使用查询分析器,或者任何一个SQL客户端来执行这条语句:select password from master.dbo.sysxlogins where name='sa'

屏幕会返回类似下面这行字符串的东东。0x01008D504D65431D6F8AA7AED333590D7DB1863CBFC98186BFAE06EB6B327EFA5449E6F649BA954AFF4057056D9B

这是我机子上登录密码的hash.

通过分析hash我们可以从中获取pwdencrypt()的一些什么信息?

1.时间

首先我们使用查询 select pwdencrypt() 来生成hash

select pwdencrypt('ph4nt0m')

生成hash

0x01002717D406C3CD0954EA4E909A2D8FE26B55A19C54EAC3123E8C65ACFB8F6F9415946017F7D4B8279BA19EFE77

ok再一次 select pwdencrypt('ph4nt0m')

0x0100B218215F1C57DD1CCBE3BD05479B1451CDB2DD9D1CE2B3AD8F10185C76CC44AFEB3DB854FB343F3DBB106CFB

我们注意到,虽然两次我们加密的字符串都是ph4nt0m但是生成的hash却不一样。那么是什么使两次hash的结果不一样呢,我们大胆的推测是时间在这里面起到了关键的作用,它是创建密码hashes和储存hashes的重要因素。之所以使用这样的方式,是因为当两个人输入同样的密码时可以以此产生不同的密码hashes用来掩饰他们的密码是相同的。

1 2 3 4  下一页

Tags:破解 MSSQL HASH

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接