freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

前端动态密钥与非对称加密场景下的测试
2023-10-17 14:12:01
所属地 上海

前端动态密钥与非对称加密场景下的测试

在进行app测试或者一些银行测试过程中通常会遇到数据包全加密的情况,一般比较常见的加密为CryptoJS AES的前端加密技术。在安全测试的过程中,AES-CBC/ECB 的组合可能是我们最常遇到的两种,最简单的就是直接硬编码加密,密钥key固定不变,有时也会存放在JS代码中。

第二种在对称加密算法中,IV 是一个随机数或者有规律的变化,通常与密钥一起用于加密数据。IV 的主要目的是确保相同的明文在不同加密会话中产生不同的密文,以增加安全性。它与密钥一起混合在加密算法中,以确保每次加密操作都产生唯一的结果,安全实践中,IV 若是动态变化,这意味着每个数据块都可以有一个不同的 IV,即使相同的明文多次加密,由于 IV 的不同而产生不同的密文。动态 IV 变换可以通过一些特定的算法或协议来实现。

还有一种稍微麻烦的是站点使用了组合加密,在测试过程中可能会遇到密文一直变化的情况,比如使用 RSA 与AES技术来加密通信数据以避免明文传输,这个场景可能初步听起来略微抽象,但是实际上却非常常见,先请求服务器获取Key,利用获取到的Key在进行二次加密,最终服务器使用密钥进行解密。

以下使用三个真实案例来进行演示,方便大家理解。

1、加密方式为静态加密

一般静态加密在JS代码中全局搜索encAES、encrpyData等相关加密字段,可获取到密钥key以及加密方式,可以看到下图使用了ECB加密,我们可以直接去使用在线网站或者解密插件去进行解密,这种加密比较简单。

1697512264_652dfb485c34f51c8796e.png!small?1697512265048

利用burp解密工具进行解密autoDecoder或者在线解密网址进行解密获取明文字段。

1697511854_652df9ae6951de818205b.png!small?1697511854858

解密后对明文进行修改重新加密发送进行测试

1697512334_652dfb8e90c5521858e4b.png!small?1697512335195

第一个案例相对简单,直接获取密钥然后去解密即可。

2、加密方式为动态加密

某些网站中在登录界面处发起登录请求时,提交数据包内容不同,加密的内容也会有所不同,需要深入到JS代码中去调试获取加密规则。

1697520308_652e1ab4cff4c93a6f1c1.png!small?1697520309351

比如下图加密数据包,每次被加密后的内容都不相同,遇到这种情况就需要去打断点进行调试

# 渗透测试 # web安全 # 加密解密 # JS加密算法
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录