实战-搞定小程序加解密通过遍历导致信息泄露
字数 683 2025-08-22 22:47:30
小程序加解密漏洞分析与利用实战
漏洞概述
本文详细分析了一种通过遍历ID导致的小程序信息泄露漏洞,涉及加密算法的逆向与解密过程。攻击者通过分析小程序加密机制,绕过签名校验,实现敏感数据的批量获取。
漏洞发现过程
- 初始探测:常规渗透测试中发现接口请求和返回数据都做了加密处理
- 防护机制:
- 请求体签名一次性校验
- 无法直接改包和重放请求
加密机制分析
通过对小程序反编译,发现加密逻辑如下:
密钥生成算法
- 定义两个常量值
- 实现一个简单混淆算法处理这两个常量
- 将混淆结果转为hex格式
- 取hex的前16位作为AES密钥
加密细节
- 加密模式:ECB
- 填充方式:PKCS7
- 密文处理:
- 加密数据编码为base64
- 替换特殊字符:
+→-/→_
签名计算
签名算法为:md5(json数据 + 时间戳)
漏洞利用
漏洞点
接口http://xxx/xxid_info中的id参数存在以下问题:
- 非随机生成
- 可通过遍历获取他人信息
解密步骤
- 还原真正的base64:
- 将
-替换回+ - 将
_替换回/
- 将
- 使用逆向得到的AES密钥解密数据
批量获取脚本
编写自动化脚本实现:
- 遍历有效ID范围
- 构造合法请求
- 解密返回数据
防御建议
- 使用随机生成的ID而非可遍历的ID
- 加强签名机制,防止请求伪造
- 考虑更复杂的密钥生成算法
- 使用更安全的加密模式(如CBC而非ECB)
- 增加请求频率限制
技术总结
该漏洞展示了即使有加密保护,如果实现不当(如可遍历ID、简单密钥生成算法),仍然可能导致信息泄露。安全开发需要全面考虑各种攻击场景,不能仅依赖单一防护措施。