foxmail算法.doc_第1页
foxmail算法.doc_第2页
foxmail算法.doc_第3页
foxmail算法.doc_第4页
foxmail算法.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

笔者最常用的邮件客户端软件是Foxmail5.0,相信许多人也在用它,因为它的界面简洁、功能强大。在使用Foxmail的过程中发现一个问题,即Foxmail邮箱密码不够安全!而且这个问题在Foxmail 4.x和5.0正式版(包括测试版)中都存在,在这里提醒大家注意保管好自己的密码。 Foxmail邮箱加密密码保存在哪里 在正式开始以前,先说说在Foxmail中邮箱口令保存在哪里。右键点击你的账户(假设账户名为abcde),在弹出菜单中选择“属性”,然后点击“邮件服务器”,在这里你会看到以“*”号显示的邮箱密码(图1)。 用任意一款密码查看软件就可以发现“*”号中是什么内容。其实,即便不使用查看*号工具也可看到Foxmail的密码! 当选择保存邮箱口令后,邮箱密码加密后的密文保存在一个文件中,这个文件位于Foxmail安装目录下的Mail文件夹(如果采用默认安装方式,一般在C:ProgramFilesFoxmail下),那里有个以你的账户名为名字的文件夹(如账户名为abcde,则Mail文件夹下有个abcde文件夹),其下有个accounts.cfg文件,打开它就会看到你的邮箱密码密文。 再现一个众所周知的Foxmail漏洞 大家都知道,打开“资源管理器”或“我的电脑”,找到Foxmail文件夹,打开里面的“Mail”文件夹,你会发现这里有许多以账户名命名的文件夹,进入Mail文件夹下你想侵入的账户对应的文件夹,将其中的account.stg文件更名或删除,然后运行Foxmail,你会发现该信箱上原来的小“锁头”不见了(加有口令的账户会带有红色小“锁头”标志)!此时不需要任何密码就可以看到被保护的信件! 为什么将Account.stg这个文件复制到别人的账户文件夹下,就有这么大的“威力”呢?用“记事本”打开该文件看看就明白了(图2)!事实上,你在Foxmail的“帐户属性”菜单中设置的所有内容几乎都包括在其中了(如果你细心的话,会发现“属性”中的“模板”并没有包含在内),其中也包括了经过加密的信箱密码密文,也就是“POP3Password=”后面的部分。下面我们就谈谈这个令人感兴趣的话题。 Foxmail漏洞分析 先假设你在Foxmail中有且仅有一个账户:abcde,它的E-mail地址是,这个信箱的密码是12345。 用记事本打开accounts.cfg文件,一开始是一些乱七八糟的内容,再往下你会看到如下所示内容: MailAddress= /这是邮件地址 POP3Account=abcde POP3Host= /POP3服务器地址 POP3Password=BB6DFB5DF061 /邮箱密码加密后显示的密文 POP3Port=110 /POP3服务器端口 PrintFont=宋体,9 ReplyAddr= ReplyFormat=1 SameWithPop=1 SMTPHost= /SMTP服务器地址 SMTPPort=25 /SMTP服务器端口 在计算Foxmail邮箱密码明文之前,请你先记住一个单词:draGon(注意要区分大小写),它是Foxmail邮箱密码的加密密钥。记住后我们开始行动: 第一步:下载一个十六进制文件编辑器UltraEdit,这是一套极棒的文字、Hex、ASCII码编辑器,内建英文单字检查、C+及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。其并且附有HTML Tag颜色显示、搜寻替换以及无限制的还原功能;一般大家常会用其来修改EXE或DLL文件。大家可以在这里下载到它:/down/cuedit1010b.exe。安装完毕,运行UltraEdit,在它的文件编辑状态下输入“draGon”这个单词(没有引号),然后单击“Edit”(编辑)菜单下的“Hex Edit”(16进制编辑),可以查到这个词的16进制编码(图3),为:7E 64 72 61 47 6F 6E 7E,分别记为a1,a2,a3,a4,a5,a6,a7,a8,我将它们称之为Ai。第二步:再记住一个恒定的值:5A(其实也是由上面的a1a8计算而来,具体方法就不多说了),记为C0,这个C0我们在下面会用到 第三步:取邮箱密码加密后的密文,在本例中为:BB6DFB5DF061,将它们两两分开,得到:BB,6D,FB,5D,F0,61,分别记为b1,b2,b3,b4,b5,b6。由于此加密密文的总长度为12,所以我们可以判断邮箱真正地密码长度为122-15,即邮箱密码为5位。 第四步:计算Ci的值(Ci为一系列数的总和,即C1,C2,C3,C4,C5)。其中,C1由C0(即16进制的0x5A)和第一位密文(即b1,也就是我们这个例子中的BB)经异或运算得来。由于C0=0X5A,所以C1=C00XF9=0xE1,其中“”代表异或运算。大家可以使用Windows自带的计算器来进行计算,点击“开始程序附件计算器”即可打开计算器(图4),计算器中的“XOR”就代表异或运算。由此得到: C1为0xE1 C2由b2直接继承得到,为0x6D C3由b3直接继承得到,为0xFB C4由b4直接继承得到,为0x5D C5由b5直接继承得到,为0xF0 这样,我们就得到了至关重要的参数Ci。 第五步:下面请大家用从第二位起的密文(即b2)和密钥对应的ASCII码(即Ai)作异或运算,由于我们已经知道密码为5位,所以用a1a5分别与b2b6进行异或运算,得到Di(即D1D5这5位数)。在我们这个例子中,可以得到: D1=b2a1=6D7E=13 D2=b3a2=FB64=9F D3=b4a3=5D72=2F D4=b5a4=F061=91 D5=b6a5=6147=26 如果密文很长(Foxmail最多允许18位密码),该怎么办呢?还是用上面所说的方法。只是在计算Di时要循环利用Ai的值。举个例子,假设密文两两分开后有10位这么多(即B1B10),则计算D8时用B9与A8异或,计算D9则用B10与A1异或。明白了吗?即密文长度大于密钥长度,则循环利用密钥进行计算。 第六步:这是最后一步,求解出账户密码明文。用Di-Ci得到Ei,其中Ei就是密文解码后的明文。注意,如果Di小于Ci,则要用Di+0xFF(0xFF为16进制的FF,即十进制的255),然后再减去Ci即可。好了,赶快打开计算器,然后可以得到: E1=D1C131,转为十进制为1 E2=D2C232,转为十进制为2 E3=D3C333,转为十进制为3 E4=D4C434,转为十进制为4 E5=D5C535,转为十进制为5 将上面的结果串联起来,就是12345,而这正是我们当初设定的邮箱口令!怎么样?Foxmail的密文不安全吧! 面的过程说起来麻烦,而且好像不容易理解,将上述Ai、Bi、Ci、Di列个表(图5),然后再按上面说的自己动手试试就很容易搞清楚了!与我们事先设定的完全一样!从此可以推断draGon就是Foxmail的密钥!仔细想想,从Foxmail的原作者“张小龙”的名字不难推断到这个结论,因为“龙”字的英文单词为“dragon”。那么我是如何发现“draGon”这个单词呢?用UltraEdit打开Foxmail的主程序Foxmail.exe,点击“搜索查找”(或直接按Alt+F3),输入dragon,在UltraEdit中搜索到的第一个词就是“draGon”!注意,上文中提到的Ai、Bi、Ci、Di和Ei都是十六进制数值,大家一定要搞清楚,不要弄混了。对了,得到了Ei之后,不要忘记按位分别转化为十进制,这才是真正的邮箱密码!另外,即便是同一个邮箱,在更改了密码并保存之后,下一次再改回原来的密码,你在accounts.cfg文件中看到的邮箱密码密文也会不一样,但用本方法计算下来之后结果不会变,也就是说你仍能用本方法得到你的密码。 防范方法 上面介绍了Foxmail密码的,方法非常的简单,所以在大家共用一台电脑的场所,建议不要将自己的邮箱密码保存下来,如果已经保存下来,可以采用下面的解决方法:在新建账户时不要选择保存密码,如果已经选择了,可以右击账户,在弹出菜单中选择“属性”,会出现“账户属性”窗口,选择“邮件服务器”,然后,将“密码”栏中的密码清除即可。这样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论