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

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

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

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

工具目录

分类

查看所有分类
Loading categories
exploit-CVE-2016-9920 — Roundcube 1.0.0 <= 1.2.2 远程代码执行漏洞利用和易受攻击的容器 | Kitploit
工具/GitHubGitHub/t0kx/exploit-cve-2016-9920
容器安全漏洞分析漏洞利用Web应用程序漏洞利用学习与教育实验室与实践
GitHubt0kx/exploit-cve-2016-9920

exploit-CVE-2016-9920

Roundcube 1.0.0 <= 1.2.2 远程代码执行漏洞利用和易受攻击的容器

查看仓库
482142年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Roundcube 1.0.0 <= 1.2.2 远程代码执行

Roundcube 是一款广泛分布的开源网页邮件软件,被全球许多组织和公司使用。例如,SourceForge 上的镜像在过去 12 个月内统计下载量超过 260,000 次,而这仅占实际用户的一小部分。一旦 Roundcube 安装在服务器上,它就会为经过身份验证的用户提供一个网页界面,使它们能够使用网页浏览器发送和接收电子邮件。

在 Roundcube 1.2.2 及更早版本中,用户控制的输入未经处理地流入 PHP 内置函数 mail() 的第五个参数,该参数在文档中被标记为安全关键。问题在于,调用 mail() 函数将导致 PHP 执行 sendmail 程序。第五个参数允许向该执行传递参数,从而可以配置 sendmail。由于 sendmail 提供了 -X 选项,可以将所有邮件流量记录到文件中,攻击者可以利用此选项在受攻击服务器的 webroot 目录中生成一个恶意 PHP 文件。以下代码行触发了该漏洞。

要求

该漏洞的利用需要满足以下要求:

  • Roundcube 必须配置为使用 PHP 的 mail() 函数(默认情况下,如果未指定 SMTP [1])
  • PHP 的 mail() 函数配置为使用 sendmail(默认情况下,参见 sendmail_path [2])
  • PHP 配置为关闭 safe_mode(默认情况下,参见 safe_mode [3])
  • 攻击者必须知道或猜测 webroot 的绝对路径

这些要求并不过分苛刻,这意味着在现实环境中存在大量易受攻击的系统。

漏洞环境

要搭建一个用于测试的漏洞环境,您需要安装 Docker,然后运行以下命令:

root@kitploit:~
docker build -t vuln/cve-2016-9920 .
docker run --rm -it -p 80:80 vuln/cve-2016-9920

它将在您主机的 80 端口上创建一个易受攻击的 Web 应用程序。

漏洞代码

在 Roundcube 1.2.2 及更早版本中,用户控制的输入未经处理地流入 PHP 内置函数 mail() 的第五个参数,该参数在安全方面被标记为关键。问题在于,调用 mail() 函数将导致 PHP 执行 sendmail 程序。第五个参数允许向该执行传递额外参数,从而可以配置 sendmail。由于 sendmail 提供了 -X 选项,可以将所有邮件流量记录到文件中,攻击者可以利用此选项在受攻击服务器的 webroot 目录中生成一个恶意 PHP 文件。尽管此漏洞较为罕见且未广泛知晓,但 RIPS 在几秒钟内就检测到了它。 [4]

利用

要利用这个目标,只需运行:

root@kitploit:~
./exploit.py --host HOST --user USERNAME --pwd PASSWORD --path PATH --www_path WEB_DIRECTORY

如果您正在使用这个易受攻击的镜像,可以直接运行:

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"

利用之后,一个名为 backdoor.php 的文件将存储在 Web 目录的根文件夹中。该利用程序会为您提供一个 shell,您可以在其中向后门发送命令:

root@kitploit:~
./exploit.py --host 127.0.0.1 --user username --pwd password --path roundcube --www_path "/var/www/html/roundcube"
[+] CVE-2016-9920 exploit by t0kx
[+] Exploiting 127.0.0.1
[+] Target exploited, acessing shell at http://127.0.0.1/roundcube/backdoor.php
[+] Running whoami: www-data
[+] Done

致谢

此漏洞由 Robin Peraglie 发现 [4]。主要文本及本教育材料的构想由 opsxcq 提供。

免责声明

本程序或之前的程序仅用于教育目的。未经许可请勿使用。通常的免责声明适用,尤其是本人(t0kx)不对因直接或间接使用这些程序提供的信息或功能而造成的任何损害负责。作者或任何互联网提供商对使用这些程序或其衍生产品的内容或误用不承担任何责任。使用这些程序即表示您接受因使用这些程序造成的任何损害(数据丢失、系统崩溃、系统受损等)并非 t0kx 的责任。

链接

  • [1] https://github.com/roundcube/roundcubemail/wiki/Configuration#sending-messages-via-smtp
  • [2] http://php.net/manual/en/mail.configuration.php
  • [3] http://php.net/manual/en/ini.sect.safe-mode.php
  • [4] https://blog.ripstech.com/2016/roundcube-command-execution-via-email/
下载工具