009-基础入门-算法逆向&散列对称非对称&JS源码逆向&AES&DES&RSA&SHA

知识点
1、单向散列加密 -MD5,HASH
2、对称加密 -AES DES
3、非对称加密 -RSA
4、解密-识别&需求&寻找(前后端)&操作
演示案例
算法加密-概念&分类&类型
安全测试中:
密文-有源码直接看源码分析算法(后端必须要有源码才能彻底知道)
密文-没有源码1、猜识别 2、看前端JS(加密逻辑是不是在前端)
单向散列加密 -MD5,HASH
单向散列加密算法的优点有(以MD5为例):
方便存储,损耗低:加密/加密对于性能的损耗微乎其微。
单向散列加密的缺点就是存在暴力破解的可能性,最好通过加盐值的方式提高安全性,此外可能存在散列冲突。我们都知道MD5加密也是可以破解的。
常见的单向散列加密算法有:
- MD5
- SHA
- MAC
- CRC
对称加密 -AES DES

对称加密优点是算法公开、计算量小、加密速度快、加密效率高。
缺点是发送方和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担。
常见的对称加密算法有:
- DES
- AES
- RC4
非对称加密 -RSA


非对称加密的优点是与对称加密相比,安全性更好,加解密需要不同的密钥,公钥和私钥都可进行相互的加解密。
缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
常见的非对称加密算法
- RSA
- RSA2
- PKCS
加密解密-识别特征&解密条件
MD5
MD5密文特点:
由数字“0-9”和字母“a-f”所组成的字符串
固定的位数:16 和 32位
解密需求:密文即可,但复杂明文可能解不出
BASE64
BASE64编码特点:
- 大小写区分,通常是数字和字母的组合
- 一般情况下密文尾部都会有两个等号,明文很少的时候则没有
- 明文越长密文越长,一般不会出现”/“”+”在密文中
AES、DES
AES、DES密文特点:同BASE64基本类似,但一般会出现”/“和”+”在密文中

解密需求:密文,模式,加密Key,偏移量,条件满足才可解出
RSA
RSA密文特点:特征同AES,DES相似,但是长度较长
相比其他加密方式,密文长度极长而且是一个固定长度

解密需求:密文,公钥或私钥即可解出
其他密文特点见:
解密实例-密文存储&数据传输
密码存储(后端处理)
Dsicuzx3.2使用了md5&salt加密
DZ对应代码段位置:/uc_server/model/user.php
1 | function add_user() { |
据此我们可以用php写一个碰撞密码的脚本
1 | PHP |
Dsicuzx3.5-使用了PHP提供的password_hash()
password_hash() 函数用于创建密码的散列(hash)
PHP 版本要求: PHP 5 >= 5.5.0, PHP 7
语法格式:string password_hash ( string $password , int $algo [, array $options ] )
password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。
password_hash() 兼容 crypt()。 所以, crypt() 创建的密码散列也可用于 password_hash()。
DZ对应代码段位置:/uc_server/model/user.php
1 | function add_user() { |
据此可以用php写一个碰撞密码的脚本
1 | PHP |
数据通讯
博客登录-zblog(前端处理)
1 | <script src="script/md5.js" type="text/javascript"></script> |
墨者靶场-(后端处理)
该题目提供了后端源码,得知后端解密算法是AES+2次Base64编码,反推构造加密结构,将注入语句以密文形式提交才能注入
1 | -1 union select 1,database(),user(),4_mozhe |