Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-57521-RuoYi-SQLi — Audit statique du code de CVE-2024-57521, une injection SQL authentifiée dans le module generator de RuoYi-Vue, avec analyse source-to-sink et un PoC de contournement du filtre %0b. | Kitploit
Outils/GitHubGitHub/xs2024770/cve-2024-57521-ruoyi-sqli
Analyse Statique de Code (SAST)Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebArticles et RechercheApprentissage et Éducation
GitHub

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
xs2024770/cve-2024-57521-ruoyi-sqli

CVE-2024-57521-RuoYi-SQLi

Audit statique du code de CVE-2024-57521, une injection SQL authentifiée dans le module generator de RuoYi-Vue, avec analyse source-to-sink et un PoC de contournement du filtre %0b.

Voir le dépôt
48il y a 1 moisPas encore vérifié

🛡️ Notes d'audit de la vulnérabilité d'injection SQL post-authentification CVE-2024-57521 dans RuoYi-Vue

CVE

Figure 1 : Schéma d'audit du flux de données de la vulnérabilité d'injection SQL CVE-2024-57521

0. Déclaration du projet

Ce dépôt est destiné exclusivement à des fins de recherche en sécurité et d'éducation. N'utilisez pas les techniques décrites dans ce document pour mener des attaques non autorisées. Tous les tests ont été réalisés dans un environnement local d'audit statique de code.


1. Aperçu de la vulnérabilité

  • Numéro CVE : CVE-2024-57521
  • Composant affecté : Système de gestion des permissions RuoYi-Vue (module ruoyi-generator)
  • Versions affectées : <= v4.7.9
  • Type de vulnérabilité : Injection SQL post-authentification (injection booléenne à l'aveugle / CWE-89)
  • Score CVSS : 10.0 (Critique)
  • Méthode d'audit : Audit statique de code pur (analyse du code source)

2. Analyse du flux de données d'audit (Source → Filtre → Sink)

2.1 Source (point d'entrée des entrées utilisateur)

  • Emplacement du fichier : ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java

Code clé :

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

Analyse : l'administrateur du back-office peut transmettre une instruction arbitraire de création de table de base de données via le paramètre sql d'une requête HTTP POST. Le point d'entrée n'applique pas de restriction suffisante aux entrées utilisateur et les transmet directement au filtre en aval.

Preuve par capture d'écran : 03-SqlUtil-filterKeyword

2.2 Filter (défaut critique du filtre)

· Emplacement du fichier : ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java

Code du défaut central :

// 第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 + ",可能存在安全风险");
    }
}

Analyse du défaut : le filtre exécute d'abord replaceAll("\p{Z}|\s", "") pour supprimer tous les caractères d'espacement de l'entrée. Cependant, les mots-clés de la liste noire SQL_REGEX (comme "and ", "select ") comportent un espace final. Cela rend la correspondance nécessairement défaillante : il suffit que l'attaquant utilise %0b (tabulation verticale) à la place de l'espace après le mot-clé pour contourner parfaitement la vérification de la liste noire.

Preuves par capture d'écran :

02-SqlUtil-SQL_REGEX 01-GenController-createTableSave

2.3 Sink (point dangereux)

· Emplacement du fichier : ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml

Télécharger l’outil