支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:752

75.2%
一、 漏洞 CVE-2024-57521 基础信息
漏洞信息
                                        # N/A

## 概述

RuoYi v4.7.9 及更早版本中存在 SQL 注入漏洞。

## 影响版本

- RuoYi **v4.7.9 及之前版本**

## 漏洞细节

漏洞位于 `SqlUtil.java` 文件的 `createTable` 函数,攻击者可通过构造恶意输入利用 SQL 注入,继而执行任意代码。

## 影响

攻击者可利用该漏洞远程执行任意代码,可能导致数据泄露、系统被控等安全事件。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
N/A
来源:美国国家漏洞数据库 NVD
漏洞描述信息
SQL Injection vulnerability in RuoYi v.4.7.9 and before allows a remote attacker to execute arbitrary code via the createTable function in SqlUtil.java.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
N/A
来源:美国国家漏洞数据库 NVD
漏洞标题
Ruoyi 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
Ruoyi是若依个人开发者的一个后台管理系统。 Ruoyi 4.7.9及之前版本存在安全漏洞,该漏洞源于SqlUtil.java中createTable函数对输入验证不足,可能导致SQL注入攻击。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2024-57521 的公开POC
#POC 描述源链接神龙链接
1Nonehttps://github.com/mrlihd/CVE-2024-57521-SQL-Injection-PoCPOC详情
三、漏洞 CVE-2024-57521 的情报信息
  • 标题: CVE-2024-57521-SQL-Injection-PoC/README.md at main · mrlihd/CVE-2024-57521-SQL-Injection-PoC · GitHub -- 🔗来源链接

    标签:

    神龙速读:
                                            ## 关键信息摘要
    
    ### 漏洞概述
    - **漏洞类型**: 验证后SQL注入,发生在RuoYi框架的`createTable`特性中。
    - **漏洞编号**: CVE-2024-57521
    - **影响范围**: RuoYi v4.7.9及以下版本
    - **相关漏洞**: 它绕过了CVE-2024-42900的修复措施,因为原有的SQL注入过滤在`filterKeyword`函数中不够充分,可以通过替换空格为`%0b`来绕过。
    
    ### 漏洞详细分析
    - **代码问题点**: 在`ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java`文件中的SQL关键词黑名单过滤机制可被绕过。
    - **绕过方法**: 尽管‘/ *’字符串被加入黑名单,但`%0b`仍可作为合法的SQL空格替代符被利用,触发SQL注入。
    
    ### 漏洞复现步骤
    1. 以管理员身份登录。
    2. 向`/tool/gen/createTable`发起包含SQL注入payload的请求:
       - 成功查询: 通过`sql`参数发送含有`select%0b`的创建表语句,如图所示。
       - 失败查询: 类似发送但构造一个返回假的结果的SQL语句以验证注入的存在。
    3. 使用提供的Python PoC工具,利用布尔型SQL注入泄露数据库信息(例如版本号)。
    
    ### 影响与修复建议
    - **影响**: 具有管理员权限的攻击者可完全控制数据库,包括导出用户凭证和系统配置信息。
    - **修复措施**:
       1. 完善过滤机制,加入对`%0b`字符的过滤。
       2. 精细化SQL关键词过滤,取消`select`关键词的末尾空格。
       3. 强烈建议升级RuoYi CMS至4.8.0以获得完整安全增强。
                                            
    CVE-2024-57521-SQL-Injection-PoC/README.md at main · mrlihd/CVE-2024-57521-SQL-Injection-PoC · GitHub
  • https://gitee.com/y_project/RuoYi/commit/ddd858ca732618a472b10eaab2f8e4b45812ffc5
  • 标题: GitHub - mrlihd/CVE-2024-57521-SQL-Injection-PoC -- 🔗来源链接

    标签:

    神龙速读:
                                            ## 关键信息总结
    
    ### 漏洞详情
    - **漏洞名称**: Authenticated SQL Injection in RuoYi v4.7.9
    - **CVE编号**: CVE-2024-57521
    - **相关CVE**: Bypass of CVE-2024-42900
    
    ### 影响版本
    - **产品**: RuoYi Framework
    - **版本**: ≤ 4.7.9
    
    ### 漏洞分析
    - **原因**: 黑名单关键词过滤不充分,导致可以通过绕过SQL注入攻击。
    - **具体问题**: 在`filterKeyword`方法中,正则表达式`select `无法匹配`select%0b`。攻击者可以利用`%0b`作为替代字符触发SQL注入。
    
    ### 复现步骤
    1. 以管理员身份登录。
    2. 发送`createTable`请求。
       - **注入TRUE查询**: `sql=CREATE%20table%20j2iz96_666%20as%20SELECT%0b111%20FROM%20sys_job%20WHERE%201=1`
       - **注入FALSE查询**: `sql=CREATE%20table%20j2iz96_665%20as%20SELECT%0b111%20FROM%20sys_job%20WHERE%201=3`
    
    ### 影响
    - 攻击者可以以管理员权限转储整个数据库,包括其他用户凭据和系统配置。
    
    ### 建议
    1. 过滤`%0b`字符。
    2. 筛选关键字`select`,而不是`select `(移除尾部空格)。
    3. 更新CMS到RuoYi的4.8.0版本。
                                            
    GitHub - mrlihd/CVE-2024-57521-SQL-Injection-PoC
  • 标题: Ruoyi 4.7.9 SQL Injection · Issue #IBC976 · 若依/RuoYi - Gitee -- 🔗来源链接

    标签:

    神龙速读:
                                            ## 关键信息
    
    ### 漏洞描述
    - **漏洞名称**: Ruoyi 4.7.9 SQL注入漏洞
    - **CVE编号**: CVE-2022-4566
    - **问题原因**: `ruoyi-common/src/main/java/com/ruoyi/util/SqlUtil.java` 文件中的 SQL 关键字验证不足,可以使用 `%0b` 代替空格绕过正则表达式,从而导致 SQL 注入。
    
    ### Proof of Concept (PoC)
    1. **登录 admin 账号**
    2. **发送 createTable 请求**
       - **TRUE query**:
         ```sql
         sql=CREATE%20table%20j2iz96_666%20as%20SELECT%0b111%20FROM%20sys_job%20WHERE%201%3d0%20AND%0bIF((ascii(substring((select%0b%40%40version)%2c18%2c1))%3d45%2c%201%2c%200)%2f0)%3b
         ```
       - **FALSE query**:
         ```sql
         sql=CREATE%20table%20j2iz96_665%20as%20SELECT%0b111%20FROM%20sys_job%20WHERE%201%3d0%20AND%0bIF((ascii(substring((select%0b%40%40version)%2c5%2c1))%3d44%2c%201%2c%200)%2f0)%3b
         ```
    
    ### 修复意见
    - **过滤 `%0b` 字符**
    - **过滤 `"select"` 而不是 `"select "`(不包含空格)**
    
    ### 讨论细节
    - **修复问题**: 使用 `%0b` 绕过正则表达式导致 SQL 注入。
    - **复现问题**: 在 Burp Suite 中发送请求,复制到浏览器会再次进行 `urlencode`,导致漏洞被利用。
    - **poc 脚本**: 测试成功,提供获取数据库版本的 POC 脚本。
    - **PR 提交**: 提交修复版本 `4.7.9 SQL Injection`
                                            
    Ruoyi 4.7.9 SQL Injection · Issue #IBC976 · 若依/RuoYi - Gitee
  • https://nvd.nist.gov/vuln/detail/CVE-2024-57521
四、漏洞 CVE-2024-57521 的评论

暂无评论


发表评论