Md5
(
base64
)加密与解密实战
陈小兵
[A.S.T]
本文已被黑客防线录用,转载请注明出处!
在对某一个
CMS
系统进行安全检测时,通过注入点获取其管理员表中的管理员和密码数据,但由于不知道该密码数据采用何种加密方式,虽然知道
CMS
系统管理后台,但苦于没有破解管理员的密码,因此无法登录系统。通过研究终于掌握了
Md5
(
base64
)加密原理和解密原理,因此才有本文。
Base64
是网络上最常见的用于传输
8Bit
字节代码的编码方式之一,在发送电子邮件时,服务器认证的用户名和密码需要用
Base64
编码,附件也需要用
Base64
编码。
Base64
要求把每三个
8Bit
的字节转换为四个
6Bit
的字节(
3*8 = 4*6 = 24
),然后把
6Bit
再添两位高位
0
,组成四个
8Bit
的字节,也就是说,转换后的字符串理论上将比原来的长
1/3
。
md5
的全称是
message-digest algorithm 5
(信息
-
摘要算法),在
90
年代初由
mit laboratory for computer science
和
rsa data security inc
的
ronald l. rivest
开发出来,经
md2
、
md3
和
md4
发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
(一)md5(dbase64)密码
md5
(
dbase64
)加密后的字符串长度为
24
位,最末尾有两个“=”好,在字符串中有数字字母大小写混在一起,如图
1
所示,三个用户以及其加密后的密码字符串。
md5
(
dbase64
)这种加密方式在
asp.net
等
CMS
环境中会经常碰到。
图
1 md5
(
dbase64
)密码
(二)从Google寻找破解之路
直接在
Google
上面对“
md5
(
dbase64
)加解密”进行搜索,一共约六条记录,如图
2
所示,而且从搜索结果来看,除了求助外,根本就没有
md5
(
dbase64
)的加密和解密方法,从网络来解决问题看来是不行了。
图
2 Google
搜索结果
(三)自己动手丰衣足食――寻求解密方法
1.生成Hash值
以前曾经写过一篇
Windows
下面有关
hash
破解的文章,在
InsidePro
网站提供了在线
Hash
破解(
http://hash.insidepro.com/
)和在线生成各种
Hash
值,其在线生成
Hash
值网站地址为:
http://www.insidepro.com/hashes.php?lang=eng
,打开后如图
3
所示。在
password
中输入“
author
”,然后单击“
Generate
”按钮直接生成各种
Hash
值。
图
3
生成各种
Hash
值
2.比对Hash值和加密密码值
在
http://www.insidepro.com/hashes.php?lang=eng
生成
Hash
值后的页面中拖动滚动条,一个个的进行对照,通过比对在
Base64
加密中有一个明显的特征,即加密字符串最后面一般都有等号。从中截取部分
author
的加密值如下:
Haval128(Base64):1xehfrgfAcMYLCdLcYiDlg==
Haval160(Base64):JPfaQRoHY0v/EJnXN9iKd9MfdbE=
MD2(Base64):d+K74ta9Vhbr4yuKzfCAZQ==
MD4(Base64):QPRz/CVV3O9EVOA/iCaOwA==
MD5(Base64):Ar2S+qOKqmzA6nXlmTeh7w==
“
MD5(Base64):Ar2S+qOKqmzA6nXlmTeh7w==
”跟图1
中的加密值一致,如图4
所示,验证了该加密方式就是MD5(Base64)
加密。
图
4
找到加密方式
3.寻找破解方式
(1)添加Hash值
从
http://www.insidepro.com/eng/passwordspro.shtml
页面上我了解到
passwordspro
可以破解
MD5(Base64)
加密方式,但无法从该网站直接下载
passwordspro
,老外都是收钱的,呵呵,到国内的一些下载网站下载
passwordsprov 2.5.3 .0
,然后运行该程序,右键单击后选择
Add
,如图
5
所示,添加一个
Hash
进行破解,在
Hash
值中输入“
MD5(Base64):Ar2S+qOKqmzA6nXlmTeh7w==
”,完毕后单击“
Add
”按钮完成
Hash
值的添加。
图
5
添加破解
Hash
值
(2)执行暴力破解
单击三角形按钮,运行破解,如图
6
所示,选择暴力破解,在
passwordsprov 2.5.3 .0
中还有其它的破解方式,如图
7
所示,还有“
Preliminary Attack
”,“
Mask Attack
”,“
Simple Dictionary Attack
”,“
Combined Dictionary Attack
”,“
Hybrid Dictionary Attack
”和“
Rainbow Attack
”六种破解方式。
图
6
暴力破解
md5
(
base64
)密码
图
7
多种破解方式
(3)破解成功
暴力破解方式太耗费时间,后面选择了“
Simple Dictionary Attack
”(简单字典攻击),由于密码在字典中,所以很快就破解出来了,如图
8
所示,值得一提的是在
InsidePro
官方网站提供了
74
个字典文件下载(
http://www.insidepro.com/eng/download.shtml
),喜欢的朋友可以自己去下载。在实际过程中这些字典仍然不够,有些密码设置往往超乎想象的复杂,除非有完整的彩虹表,否则暴力和字典破解的时间将非常漫长。
图
8
使用字典破解成功
(四)探寻md5(base64)的其它破解方式
1.base64解码
网上有很多工具可以对
base64
编码进行解码,我先后找了两款,一款是可以在
linux
和
windows
下运行的
base64
工具,其下载地址为
http://www.fourmilab.ch/webtools/base64/
,下载完毕后可以直接运行,其运行命令为“
base64 �Cdecode base64.b64 base64.tmp
”,参数“
―decode
”或者“
-d
”表示解码,“
--encode
”或者“
-e
”表示
base64
编码。“
base64.b 64 ” 是base64
编码后的文件,“
base64.tmp
”是解码后生成的文件。在该工具目录下还有一个
bat
文件,用来批处理解码,如图
10
所示。
图
9 base64
解码工具
图
10
执行解码批处理文件
2.编辑解码文件
将
md5
(
base64
)加密后的密码值“
Ar2S+qOKqmzA6nXlmTeh7w==
”复制到
base64.b64
文件中,如图
11
所示。
图
11
编辑解码文件
3.查看解码后的文件
使用
UltraEdit-32
编辑器打开“
base64.tmp
”文件,如图
12
所示,在“
base64.tmp
”文件中显示为乱码。关于这点我也很是奇怪,后面通过其它一些
base64
解码工具进行解码,其正常显示结果仍然为乱码。
图
12
查看解码后的文件
4.获取base64解码后的md5值
在
UltraEdit-32
编辑器中,直接以二进制方式打开解码后的文件
base64.tmp
,如图
13
所示,将其中的二进制编码进行整理,其结果为“
02BD92FAA38AAA6CC0EA75E 59937A 1EF
”一共
32
位,这个跟
md5
加密后的值有点像哦!将这个值复制到
www.cmd5.com
网站进行解密,如图
14
所示,结果显示为“
author
”。
图
13
获取二进制的值
图
14 md5
解密
5.md5(base64)加密原理
后面通过在线生成
Hash
值(
http://www.insidepro.com/hashes.php?lang=eng
)然后按照上面的步骤重新进行测试,结果跟上面的测试吻合。因此我们可以推测出
md5
(
base64
)加密解密方法。
(1)md5(base64)加密原理
(
a
)首先对字符串进行
md5
加密
md5
(
string
)
(b)
然后对
md5
加密后的字符串进行
base64
编码
(1)md5(base64)解密原理
(
a
)首先对
md5
(
base64
)进行
base64
解码
(
b
)对
base64
解码后的值通过二进制方式进行读取,其结果应该为
32
位字符串
(
c
)对获取的
32
位字符串进行
md5
解密。
(五)总结
在信息安全的领域,只有想不到的,没有做不到的,只要努力、坚持和不断尝试,终究会有所收获。通过对
md5
(
base64
)加密和解密原理的研究,最终成功获取了该
CMS
系统的
Webshell
,如图
15
所示,还是孙总说的对,网络攻防的最终就是技术的对抗!欢迎来www.antian365.com(AST技术论坛进行技术探讨),我的技术交流QQ号码:525760451
图
15
成功获取该系统的
Webshell
本文出自 “simeon技术专栏” 博客,转载请与作者联系!