破解MSSQL中的HASH密码.doc

破解MSSQL中的HASH密码.doc

ID:53241478

大小:70.00 KB

页数:14页

时间:2020-04-02

破解MSSQL中的HASH密码.doc_第1页
破解MSSQL中的HASH密码.doc_第2页
破解MSSQL中的HASH密码.doc_第3页
破解MSSQL中的HASH密码.doc_第4页
破解MSSQL中的HASH密码.doc_第5页
资源描述:

《破解MSSQL中的HASH密码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、破解MSSQL中的HASH密码2011-01-1311:33出处:ZDnet作者:佚名【我要评论1】[导读]  SQL服务器使用了一个没有公开的函数pwdencrypt()对用户密码产生一个hash.通过研究我们可以发现这个hash储存在mater数据库的sysxlogins表里面。第1页破解MSSQL中的HASH密码  SQL服务器是怎样储存密码的?  SQL服务器使用了一个没有公开的函数pwdencrypt()对用户密码产生一个hash.通过研究我们可以发现这个hash储存在mater数据库的sysxlogi

2、ns表里面。这个可能已经是众所周知的事情了。  pwdencrypt()函数还没有公布详细的资料,我们这份文档将详细对这个函数进行讨论,并将指出sql服务器储存hash的这种方法的一些不足之处。实际上,等下我将会说‘密码hashes’。(allyesno:后文会讨论到,由于时间的关系即使当密码相同的时候生成的hash也并不是唯一一个,所以是hashes)  SQL的密码hash看起来是怎样的呢?  我们使用查询分析器,或者任何一个SQL客户端来执行这条语句:selectpasswordfrommaster.dbo

3、.sysxloginswherename='sa'  屏幕会返回类似下面这行字符串的东东。0x01008D504D65431D6F8AA7AED333590D7DB1863CBFC98186BFAE06EB6B327EFA5449E6F649BA954AFF4057056D9B  这是我机子上登录密码的hash.  通过分析hash我们可以从中获取pwdencrypt()的一些什么信息?  1.时间  首先我们使用查询selectpwdencrypt()来生成hash  selectpwdencrypt('ph4

4、nt0m')  生成hash  0x01002717D406C3CD0954EA4E909A2D8FE26B55A19C54EAC3123E8C65ACFB8F6F9415946017F7D4B8279BA19EFE77  ok再一次selectpwdencrypt('ph4nt0m')  0x0100B218215F1C57DD1CCBE3BD05479B1451CDB2DD9D1CE2B3AD8F10185C76CC44AFEB3DB854FB343F3DBB106CFB  我们注意到,虽然两次我们加密的字符

5、串都是ph4nt0m但是生成的hash却不一样。那么是什么使两次hash的结果不一样呢,我们大胆的推测是时间在这里面起到了关键的作用,它是创建密码hashes和储存hashes的重要因素。之所以使用这样的方式,是因为当两个人输入同样的密码时可以以此产生不同的密码hashes用来掩饰他们的密码是相同的。  2.大小写(广告时间:英汉网络技术词汇这本字典好,翻译的时候很多金山词霸找不到的东西,它都能弄出来)  使用查询  selectpwdencrypt('ALLYESNO')  我们将得到hash  0x01004

6、C61CD2DD04D67BD065181E1E8644ACBE3551296771E4C91D04D67BD065181E1E8644ACBE3551296771E4C91  通过观察,我们可以发现这段hash中有两段是相同的,如果你不能马上看出来,让我们把它截断来看。  0x0100(固定)  4C61CD2D(补充key)  D04D67BD065181E1E8644ACBE3551296771E4C91(原型hash)  D04D67BD065181E1E8644ACBE3551296771E4C91(大

7、写hash)  现在我们可以看出来最后两组字符串是一模一样的了。这说明这段密码被相同的加密方式进行了两次加密。一组是按照字符原型进行加密,另一组是按照字符的大写形式进行了加密。当有人尝试破解SQL密码的时候将会比他预期要容易,这是一个糟糕的加密方式。因为破解密码的人不需要理会字符原型是大写还是小写,他们只需要破解大写字符就可以了。这将大大减少了破解密码者所需要破解密码的字符数量。(allyesno:flashsky的文章《浅谈SQLSERVER数据库口令的脆弱性》中曾经提到“如因为其算法一样,如果HASH1=HA

8、SH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令”。实际上并不如flashsky所说的完全相同,我们使用了selectpwdencrypt()进行加密以后就可以发现使用了数字和符号和大写字母的密码其hash1和hash2都会相同,所以这是flashsky文章中一个小小的bug)  补充key  根据上文所述,当时间改变的时候也会使得hash改变,在hash

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。