banner
NEWS LETTER

算法逆向&散列对称非对称&JS源码逆向&AES&DES&RSA&SHA

Scroll down

安全测试流程:

有源码直接看源码,分析算法(后端必须要有源码才能知道)

没有源码看前端JS,猜识别(看加密逻辑是不是在前端)

算法加密-概念&分类&类型

单向散列加密(以MD5为例)

明文不会变,方便存储,损耗低:加密和解密对于性能的损耗很少。

单向散列加密的缺点存在通过碰撞暴力破解的可能性,最好通过加Salt值的方式提高安全性,此外可能存在散列冲突。

常见的单向散列加密算法有:MD5 SHA MAC CRC


对称加密(以AES为例)
对称加密优点是算法公开,计算量小,加密速度快,加密效率高,使用密钥即可解密。

缺点是发送方和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担。

常见的对称加密算法有:DES AES RC4


非对称加密(以RSA为例)
非对称加密的优点是与对称加密相比,安全性更好,加解密需要不同的密钥,公钥和私钥都可进行相互的加解密。

缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

常见的非对称加密算法:RSA RSA2 PKCS


加密解密-识别特征&解密条件

MD5密文特点

  1. 由数字“0-9”和字母“a-f”所组成的字符串,不会出现f以外的字母
  2. 固定的位数 16 和 32位
  3. 简单明文可以通过碰撞解密,但复杂明文无法碰撞解密,运气

Base64编码特点

  1. 大小写区分,通过数字和字母的组合
  2. 一般情况下密文尾部都会有两个等号,明文很少的时候则没有
  3. 明文越长,密文越长,不会出现”/“,”+”密文中,编码可以逆向的

AES,DES密文特点

  1. 同BASE64基本情况类似,但会出现”/“,”+”在密文中
  2. 需要关键因素包括密文,模式,加密Key(关键),偏移量iv(关键)等,条件满足才可解出

RSA密文特点

  1. 特征同AES,DES相似,但是长度较长,长度固定在一定限度,不随明文变化
  2. 解密需求:密文,公钥或私钥其中一个即可解出,公钥加密的就需要私钥去解密,私钥加密的就需要公钥来解密

解密实例-密文存储&数据传输

Dz3.2-md5&salt
Dz3.2代码加密算法,有源码就知道,没源码就只能靠猜了

1
2
3
function add_user() {
$password = md5(md5($password).$salt);
}

Dz3.5-hash
Dz3.5代码加密算法,单向加密,不可逆的,只能看碰撞

1
2
3
4
5
6
7
8
9
10
function add_user() {
$salt = '';
$password = $this->generate_password($password);
}

function generate_password($password) {
$algo = $this->get_passwordalgo();
$options = $this->get_passwordoptions();
$hash = password_hash($password, $algo, $options);
}

Zblog-md5

1
2
3
4
5
<script src="script/md5.js" type="text/javascript"></script>
$("#btnPost").click(function(){
var strPassWord=$("#edtPassWord").val();
$("form").attr("action","cmd.php?act=verify");
$("#password").val(MD5(strPassWord));

墨者参数加密靶场

1
2
3
-1 union select 1,database(),user(),4_mozhe
xgd58ipTrnx8VzSBJicqCibZxIRsZKgXOYUrNQP8fCCtx9JZ+6K1hHt7RKkzV305
eGdkNThpcFRybng4VnpTQkppY3FDaWJaeElSc1pLZ1hPWVVyTlFQOGZDQ3R4OUpaKzZLMWhIdDdSS2t6VjMwNQ==

总结

识别和解密不同的密文

思路点:
看密文特征分析算法(可以分析到/无法分析)
获取源码分析算法(后端处理加密,前端处理加密)
JS前端处理加密(抓包获取JS源码)


复现:

基本完全复现

其他文章
请输入关键词进行搜索