Md5(base64)加密与解密实战

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

Md5base64)加密与解密实战

陈小兵 [A.S.T]

本文已被黑客防线录用,转载请注明出处!

在对某一个CMS系统进行安全检测时,通过注入点获取其管理员表中的管理员和密码数据,但由于不知道该密码数据采用何种加密方式,虽然知道CMS系统管理后台,但苦于没有破解管理员的密码,因此无法登录系统。通过研究终于掌握了Md5base64)加密原理和解密原理,因此才有本文。

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 sciencersa data security incronald l. rivest开发出来,经md2md3md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。

(一)md5dbase64)密码

md5dbase64)加密后的字符串长度为24位,最末尾有两个“=”好,在字符串中有数字字母大小写混在一起,如图1所示,三个用户以及其加密后的密码字符串。md5dbase64)这种加密方式在asp.netCMS环境中会经常碰到。

                                                               

1 md5dbase64)密码

(二)从Google寻找破解之路

直接在Google上面对“md5dbase64)加解密”进行搜索,一共约六条记录,如图2所示,而且从搜索结果来看,除了求助外,根本就没有md5dbase64)的加密和解密方法,从网络来解决问题看来是不行了。

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 暴力破解md5base64)密码

7多种破解方式

3)破解成功

   暴力破解方式太耗费时间,后面选择了“Simple Dictionary Attack”(简单字典攻击),由于密码在字典中,所以很快就破解出来了,如图8所示,值得一提的是在InsidePro 官方网站提供了74个字典文件下载(http://www.insidepro.com/eng/download.shtml),喜欢的朋友可以自己去下载。在实际过程中这些字典仍然不够,有些密码设置往往超乎想象的复杂,除非有完整的彩虹表,否则暴力和字典破解的时间将非常漫长。

8 使用字典破解成功

(四)探寻md5base64)的其它破解方式

1.base64解码

网上有很多工具可以对base64编码进行解码,我先后找了两款,一款是可以在linuxwindows下运行的base64工具,其下载地址为http://www.fourmilab.ch/webtools/base64/,下载完毕后可以直接运行,其运行命令为“base64 –decode base64.b64 base64.tmp”,参数“—decode”或者“-d”表示解码,“--encode”或者“-e”表示base64编码。“base64.b        64       base64编码后的文件,“base64.tmp”是解码后生成的文件。在该工具目录下还有一个bat文件,用来批处理解码,如图10所示。

9 base64解码工具

10 执行解码批处理文件

2.编辑解码文件

  md5base64)加密后的密码值“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.md5base64)加密原理

  后面通过在线生成Hash值(http://www.insidepro.com/hashes.php?lang=eng)然后按照上面的步骤重新进行测试,结果跟上面的测试吻合。因此我们可以推测出md5base64)加密解密方法。

1md5base64)加密原理

a)首先对字符串进行md5加密 md5string

(b) 然后对md5加密后的字符串进行base64编码

1md5base64)解密原理

a)首先对md5base64)进行base64解码

b)对base64解码后的值通过二进制方式进行读取,其结果应该为32位字符串

c)对获取的32位字符串进行md5解密。

(五)总结

  在信息安全的领域,只有想不到的,没有做不到的,只要努力、坚持和不断尝试,终究会有所收获。通过对md5base64)加密和解密原理的研究,最终成功获取了该CMS系统的Webshell,如图15所示,还是孙总说的对,网络攻防的最终就是技术的对抗!欢迎来www.antian365.com(AST技术论坛进行技术探讨),我的技术交流QQ号码:525760451

15 成功获取该系统的Webshell



本文转自 simeon2005 51CTO博客,原文链接:http://blog.51cto.com/simeon/217051


相关文章
|
2月前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
|
1月前
|
存储 Java 数据库
密码专辑:对密码加盐加密,对密码进行md5加密,封装成密码工具类
这篇文章介绍了如何在Java中通过加盐和加密算法(如MD5和SHA)安全地存储密码,并提供了一个密码工具类PasswordUtils和密码编码类PasswordEncoder的实现示例。
30 10
密码专辑:对密码加盐加密,对密码进行md5加密,封装成密码工具类
|
1月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
30 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
1月前
|
SQL 安全 算法
网络安全的盾牌与剑:漏洞防御与加密技术的实战应用
【9月更文挑战第30天】在数字时代的浪潮中,网络安全成为守护信息资产的关键防线。本文深入浅出地探讨了网络安全中的两大核心议题——安全漏洞与加密技术,并辅以实例和代码演示,旨在提升公众的安全意识和技术防护能力。
|
2月前
|
JavaScript 前端开发 安全
js逆向实战之烯牛数据请求参数加密和返回数据解密
【9月更文挑战第20天】在JavaScript逆向工程中,处理烯牛数据的请求参数加密和返回数据解密颇具挑战。本文详细分析了这一过程,包括网络请求监测、代码分析、加密算法推测及解密逻辑研究,并提供了实战步骤,如确定加密入口点、逆向分析算法及模拟加密解密过程。此外,还强调了法律合规性和安全性的重要性,帮助读者合法且安全地进行逆向工程。
89 11
|
1月前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
|
2月前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
136 8
|
1月前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
|
2月前
|
SQL 安全 网络安全
网络安全之盾:漏洞防御与加密技术的实战应用
【9月更文挑战第2天】在数字时代的浪潮中,网络安全成为保护个人隐私和企业资产的坚固盾牌。本文深入探讨了网络安全的两个核心要素:防御漏洞和加密技术。我们将从基础概念入手,逐步剖析常见的网络攻击手段,并分享如何通过实践加强安全意识。同时,提供代码示例以增强理解,旨在为读者构建一道坚不可摧的网络安全防线。
|
3月前
|
安全 开发者 数据安全/隐私保护
Xamarin 的安全性考虑与最佳实践:从数据加密到网络防护,全面解析构建安全移动应用的六大核心技术要点与实战代码示例
【8月更文挑战第31天】Xamarin 的安全性考虑与最佳实践对于构建安全可靠的跨平台移动应用至关重要。本文探讨了 Xamarin 开发中的关键安全因素,如数据加密、网络通信安全、权限管理等,并提供了 AES 加密算法的代码示例。
60 0