安全研究,记录了 IBERMATICA RPS 2019 中一个未认证的信息泄露漏洞和一个加密设计缺陷。
这些漏洞可以串联利用,从而暴露包含与身份验证相关的 SQL 查询的应用程序日志,并从可逆的 AES-CBC 密文中恢复用户密码。
[免责声明] 本仓库仅供安全研究、防御性验证和教育目的使用。请仅在你拥有或已被明确授权评估的系统上进行测试。
未认证的用户可以访问位于以下地址的 RPS 服务状态页面:
/RPS2019Service/status.html
该页面暴露了操作日志控制功能,并允许下载生成的日志。这些日志可能包含敏感的应用程序数据,包括用户名、IP 地址、SQL 查询以及与密码相关的值。
密码并非通过单向密码哈希函数进行保护。相反,RPS 2019 使用 AES-128-CBC,其密钥材料可预测地从用户名派生。一旦从日志中获取用户名及其加密的密码值,就可以恢复出明文密码。
| CVE | 描述 | CWE | CVSS 3.1 (CNA) |
|---|---|---|---|
| CVE-2023-3349 | 通过可下载的应用程序日志未认证地暴露敏感信息 | CWE-200 | 8.2 高危 |
| CVE-2023-3350 | 基于 AES-128-CBC 和可预测的用户名派生密钥材料的可逆密码保护 | CWE-327 | 8.2 高危 |
该攻击链不需要 SQL 注入、密码暴力破解或事先拥有应用程序账户。
调查发现了以下情况:
AES 本身并不是根本问题。该漏洞源于对密码使用可逆加密、可预测的密钥材料,以及既不随机也不独立的 IV。
成功利用可能允许远程、未认证的攻击者:
/RPS2019Service/status.html 的公开访问。防御者应调查:
/RPS2019Service/status.html 的异常请求;这些问题由 LABS @ ITRES 在一次授权的进攻性安全评估中发现,并通过 INCIBE-CERT 分配了 CVE 标识符。
详细的技术分析可在 Old Dives 系列的第一篇文章中查看:
本仓库中的信息旨在帮助组织识别、验证和修复所记录的漏洞。作者和贡献者不对因使用此材料而导致的误用或损害负责。