基础入门-加密编码算法
前言:在渗透测试中,常见的密码等敏感信息会采用加密处理,其中作为安全测试人员必须要了解常见的加密方式,才能为后续的安全测试做好准备,本次课程将讲解各种加密编码等知识,便于后期的学习和发展。
一、常见加密编码等算法解析
- MD5, SHA, ASC, 进制, 时间戳, URL, BASE64, Unescape, AES, DES等
二、常见加密形式算法解析
- 直接加密,带salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合等
三、常见解密方式(针对)
- 枚举,自定义逆向算法,可逆向
四、常规加密算法的特性
- 长度位数,字符规律,代码分析,搜索获取等
-
MD5
- 压缩性:任意长度的数据得出的 MD5 值都是固定的;
- 容易计算:计算任意数据的 MD5 值都很容易;
- 抗修改性:原数据的任意变动都会使最终的 MD5 值完全不一;
- 强抗碰撞:已知原数据和其 MD5 值的前提下,找到另一个数据能产生同样的 MD5 值非常困难;
- 超强算法:不管多大的字符串,他都能生成 32 位或16位的字符串;
- 不可逆性:md5 加密不可逆,破解难度较高。
-
SHA
- SHA 256算法的关键特性是消息长度、摘要长度和不可逆性。
- 消息长度:明文(即加密前的可读文本)的长度应小于 264 位。
- 摘要长度:消息摘要(即将加密哈希函数应用于数据的哈希值)长度应为 256 位。在您的服务器上安装 SSL 证书时,您可以选择SHA-512或更大的摘要。虽然SHA-512更安全,但不建议将其用于大多数系统,因为它需要更强大计算能力和计算机性能。
- 不可逆性:所有哈希函数(例如 SHA 256)在设计上都是不可逆的。对于每个输入,您只有一个输出,但反之则不然。多个输入产生相同的输出。输出具有固定大小,但输入没有大小限制。
- SHA 256算法的关键特性是消息长度、摘要长度和不可逆性。
- ASC
- 是一种安全的加密方式,涉及到密码,偏移量,数据块,填充,在加密时候涉及到4种随机性。解密难度大。用base64解密出来是乱码,有很大可能是AES加密。有时候/出现在字符串里面。比较注重安全和大型网站、安全比赛 注:必须有密码和偏移量,否则无法进行解密。
- URL
- url编码转换,浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式。
- BASE64
- 大小写随机组合,在字符串后面经常出现一个或两个等号 明文越长,密文越长 常见应用:代码、密码、参数 浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
- unescape
- 密文常见:%u四位数字:对应两个字符。(网站常见)
演示案例
- 某CTF比赛题目解析
- 脚本自定义算法组合逆向
- 某CMS密码加密解密
- MD5+salt
- 部分CMS密码加密形式-wp,dz等
- 某URL加密地址的漏洞测试
- AES+Base64+自定义
- 观察参数值加密字符串,下载源代码分析,函数定义AES加密,涉及模式CBC,128位,加密密码,偏移量,两次bage64减去常规一次,填充模式。 ( mozhe)
- 某实际应用URL地址参数加密
- 搜素特定关键字加密字符串
涉及资源
https://www.mozhe.cn/
https://www.cmd5.com/
http://tool.chacuo.net/cryptaes 在线AES加密解密
https://ctf.bugku.com/ Bugku CTF靶场
https://www.cr173.com/soft/21692.html 超级加解密转换工具V2.1
https://gitee.com/ComsenzDiscuz/DiscuzX Gitee论坛