作者: Soyam Arya(又名 honest_corrupt)
发现日期: 2026 年 3 月
受影响应用: Meesho 安卓应用(com.meesho.supply)
状态: 验证中
类别: 加密不足 / 数据完整性失败
本报告记录了 Meesho 安卓应用中的一个加密漏洞,该应用使用 AES/CBC/PKCS5Padding 加密敏感数据,但未提供完整性保护,且加密密钥通过不安全的 MD5 哈希算法派生。
该应用以如下格式构造加密载荷:
Base64(IV) . Base64(ciphertext)
然而,由于缺少认证机制(例如 HMAC 或 AEAD 模式,如 AES-GCM),该实现存在以下漏洞:
这违反了多项 OWASP Mobile Top 10 和 MASVS 加密指南。
| 类别 | 描述 |
|---|---|
| M5:加密不足 | 使用弱加密原语(MD5、无完整性保护的 AES-CBC) |
| CWE-327 | 使用已破解或有风险的加密算法 |
| CWE-649 | 依赖加密但未进行完整性校验 |
| OWASP MASVS | MSTG-CRYPTO-3、MSTG-CRYPTO-4 |
逆向工程揭示了以下逻辑:
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] iv = new byte[16];
new SecureRandom().nextBytes(iv);
SecretKeySpec key = new SecretKeySpec(
MD5(str), "AES"
);
cipher.init(ENCRYPT_MODE, key, new IvParameterSpec(iv));
String message = Base64(iv) + "." + Base64(ciphertext);
加密载荷通过 API 请求传输,格式如下:
http POST /api/endpoint
message=Base64(IV).Base64(ciphertext)

通过 Burp Suite 捕获请求:
` message=AbCdEfGhIj...xyz.KLMNOPQRST... ``
更改密文中的单个字节:
`` 原始: ...KLMNOPQRST...
修改后: ...KLMNOPQRSU... ``
--
向服务器发送修改后的请求。
message 参数的 API 请求| 日期 | 事件 |
|---|---|
| 2026 年 3 月 | 发现漏洞 |
| 2026 年 3 月 | 完成逆向工程 |
| 待定 | 通知厂商 |
| 待定 | 提交 CVE 请求 |
Soyam Arya(又名 honest_corrupt) CVE 编号:CVE-2025-5154、CVE-2025-6748 移动与 Web 应用渗透测试人员