CVE-2024-57521CVE-2024-57521是若依(RuoYi)管理系统v4.7.9及之前版本中的一个高危SQL注入漏洞。该漏洞存在于com.ruoyi.common.utils.SqlUtil.java文件的createTable函数中,由于该函数对用户输入的SQL语句缺乏有效的过滤和参数化处理,攻击者可以通过构造恶意的SQL语句实现任意SQL命令执行。由于该漏洞的CVSS评分达到满分10.0,属于最严重的安全漏洞等级,且无需认证即可利用,远程攻击者可以直接通过HTTP请求触发漏洞。成功利用此漏洞后,攻击者可以完全控制数据库服务器,读取、修改或删除数据库中的敏感数据,甚至可以通过数据库的系统函数实现远程代码执行,从而进一步控制整个应用服务器。该漏洞影响所有使用若依框架且未更新到安全版本的应用系统,建议相关用户立即采取修复措施。
该SQL注入漏洞的根本原因在于SqlUtil.java文件中的createTable函数直接拼接用户可控的输入参数到SQL语句中,而没有使用参数化查询或预编译语句。攻击者可以通过HTTP请求向该函数提交包含SQL注入payload的参数,利用数据库的SQL执行特性绕过安全限制。具体来说,攻击者可以利用MySQL的UNION SELECT、堆叠查询(Stacked Queries)或基于时间的盲注等技术,从数据库中提取敏感信息或执行系统命令。例如,攻击者可以通过构造特定的SQL语句,利用INTO OUTFILE或INTO DUMPFILE将webshell写入服务器文件系统,或者使用LOAD_FILE()函数读取服务器上的敏感配置文件如/etc/passwd或数据库配置文件。由于该漏洞影响的是createTable函数,攻击者还可以利用此函数创建恶意的数据库表或触发器,以实现持久化攻击或进一步提权。