OpenSTAManager存在通过display参数的认证SQL注入漏洞
漏洞详情
摘要
OpenSTAManager中存在一个认证SQL注入漏洞,允许任何用户(无论权限级别)执行任意SQL查询。通过操纵API请求中的display参数,攻击者可以泄露、修改或删除数据库中的任何数据,导致系统完全被入侵。
技术细节
该漏洞位于src/API/Manager.php中的retrieve()方法。
用户从display GET参数输入的输入未经适当验证即被处理。代码会去除周围的括号[],按逗号分割字符串,然后将每个结果元素直接传递到查询构建器的selectRaw()函数中。
|
|
由于selectRaw()设计用于执行原始SQL表达式,它会执行display参数中提供的任何恶意SQL代码。
概念验证
- 以任何用户身份登录OpenSTAManager实例
- 导航到用户个人资料页面以获取其个人API令牌
- 使用此API令牌向API端点发送特制的GET请求
基于时间的盲注测试:
将<your_host>、<your_token>和<resource_name>替换为实际值。anagrafiche是一个有效资源。
|
|
服务器将延迟其响应约5秒,确认数据库执行了SLEEP(5)命令。
影响
这是一个严重的SQL注入漏洞。任何经过认证的用户,即使是权限最低的用户,都可以利用此漏洞:
- 从数据库中泄露所有数据(例如用户凭据、客户信息、发票、内部数据)
- 修改或删除数据,损害数据完整性
- 根据数据库用户的权限和系统配置,可能实现进一步的系统入侵
技术信息
受影响版本: <= 2.9.4 修复版本: 2.9.5
严重程度: 高(CVSS评分:8.8)
弱点类型: CWE-89 - SQL命令中使用的特殊元素中和不当(SQL注入)
参考链接:
- GHSA-2jm2-2p35-rp3j
- https://nvd.nist.gov/vuln/detail/CVE-2025-65103