Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-57521-RuoYi-SQLi — Auditoria estática de código da CVE-2024-57521, uma injeção SQL autenticada no módulo gerador do RuoYi-Vue, com análise source-to-sink e um PoC de bypass do filtro %0b. | Kitploit
Ferramentas/GitHubGitHub/xs2024770/cve-2024-57521-ruoyi-sqli
Análise Estática de Código (SAST)Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebPapers e PesquisaAprendizado e Educação
GitHub

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
xs2024770/cve-2024-57521-ruoyi-sqli

CVE-2024-57521-RuoYi-SQLi

Auditoria estática de código da CVE-2024-57521, uma injeção SQL autenticada no módulo gerador do RuoYi-Vue, com análise source-to-sink e um PoC de bypass do filtro %0b.

Ver Repositório
48há 1 mêsAinda não revisado

🛡️ Notas de auditoria da vulnerabilidade de injeção SQL pós-autenticação CVE-2024-57521 no RuoYi-Vue

CVE

Figura 1: Diagrama de auditoria do fluxo de dados da vulnerabilidade de injeção SQL CVE-2024-57521

0. Declaração do projeto

Este repositório destina-se exclusivamente a fins de pesquisa de segurança e educação. Não utilize as técnicas contidas neste documento para realizar ataques não autorizados. Todos os testes foram realizados em ambiente local de auditoria estática de código.


1. Visão geral da vulnerabilidade

  • ID CVE: CVE-2024-57521
  • Componente afetado: Sistema de gerenciamento de permissões RuoYi-Vue (módulo ruoyi-generator)
  • Versões afetadas: <= v4.7.9
  • Tipo de vulnerabilidade: Injeção SQL pós-autenticação (injeção cega booleana / CWE-89)
  • Pontuação CVSS: 10.0 (Crítica)
  • Método de auditoria: Auditoria puramente estática de código (análise de código-fonte)

2. Análise de auditoria do fluxo de dados (Source → Filter → Sink)

2.1 Source (ponto de entrada de dados do usuário)

  • Localização do arquivo: ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java

Código-chave:

@PostMapping("/createTable")
public AjaxResult createTableSave(@RequestParam("sql") String sql, @RequestParam("tplWebType") String tplWebType)
{
    try
    {
        SqlUtil.filterKeyword(sql); // 在进入业务前调用过滤器

Análise: o administrador do backend pode passar instruções arbitrárias de criação de tabelas no banco de dados por meio do parâmetro sql da requisição HTTP POST. O ponto de entrada não impõe restrições suficientes à entrada do usuário, entregando-a diretamente ao filtro subsequente para processamento.

Evidência por captura de tela: 03-SqlUtil-filterKeyword

2.2 Filter (falha crítica no filtro)

· Localização do arquivo: ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java

Código central da falha:

// 第16行:黑名单定义,注意关键词带有【尾随空格】
public static String SQL_REGEX = "\u0008|%0A|and |extractvalue|updatexml|sleep|information_schema|exec...";

// 第61-66行:过滤逻辑
String normalizedValue = value.replaceAll("\\p{Z}|\\s", ""); // 先清空了输入里的所有空格
String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|");
for (String sqlKeyword : sqlKeywords)
{
    if (StringUtils.indexOfIgnoreCase(normalizedValue, sqlKeyword) > -1)
    {
        throw new UtilException("请求参数包含敏感关键词" + sqlKeyword + ",可能存在安全风险");
    }
}

Análise da falha: o filtro primeiro executa replaceAll("\p{Z}|\s", "") para remover todos os caracteres de espaço em branco da entrada. No entanto, as palavras-chave na lista de bloqueio SQL_REGEX (como "and ", "select ") têm um espaço à direita. Isso faz com que a correspondência falhe inevitavelmente; basta o atacante usar %0b (tabulação vertical) no lugar do espaço após a palavra-chave para contornar perfeitamente a verificação da lista de bloqueio.

Evidência por captura de tela:

02-SqlUtil-SQL_REGEX 01-GenController-createTableSave

2.3 Sink (ponto de perigo)

· Localização do arquivo: ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml

Baixar ferramenta