根据网页截图中的信息,可以提取出以下关于漏洞的关键信息: ### 漏洞描述 - **漏洞类型**: 任意文件读取和反序列化 - **受影响版本**: dataCompare ≤ 1.0.1 - **软件**: dataCompare - **厂商**: dromara - **Bug Author**: R1ckyZ - **漏洞文件**: `DbconfigServiceImpl.java` ### 漏洞详情 - **描述**: `DbConfig` 对 JDBC URL 不进行验证或清理,攻击者可以注入危险的连接参数如 `allowLoadLocalInfile`、`allowUrlInLocalInfile` 和 `autoDeserialize` 到 JDBC URL 中。当在 `DbconfigServiceImpl` 中执行连接测试时,这些属性被激活,可能导致任意文件读取、SSRF 或基于反序列化的远程代码执行。 ### 代码示例 ```java @RequestMapping(value = "/testConnection", method = RequestMethod.POST) @ResponseBody public AjaxResult testConnection(Dbconfig dbconfig) { try { dbconfigService.testConnection(dbconfig); } catch (Exception e) { e.printStackTrace(); return error("错误信息:" + e.getMessage()); } return success("测试连接成功"); } ``` ### 概念验证 (Proof of Concept) 1. 登录后,访问 API `/system/dbconfig/testConnection` 并通过 POST 参数传递精心构造的 JDBC 连接,如截图所示。 ### 安全建议 - 验证和清理 JDBC URL 参数。 - 避免在代码中使用不受信任的输入进行动态查询或连接配置。 - 使用安全的编码实践,防止反序列化和任意文件读取攻击。