!
也想出现在这里? 联系我们
广告位
当前位置:首页>安全咨询>漏洞复现>MyBB 0day 认证远程代码执行

MyBB 0day 认证远程代码执行

介绍

直到最新版本的 MyBB 都容易受到远程代码执行的影响,因为它允许管理员在 mail 没有适当清理的情况下设置函数中使用的自定义邮件参数。

此外,应该注意的是,在 MyBB 中没有默认方式 可以让您执行代码,例如安装插件等(即使是管理员用户)。

二进制文件应该存在,sendmail并且 www-data 用户应该有权通过它发送邮件,这是大多数安装的默认配置,因为它是使 MyBB 能够发送重置密码链接等的最简单方法。
 


 

为什么不向供应商报告?

我刚刚阅读了一些 ZDI 公告,我看到有人向他们报告了MyBB 认证的 RCE

所以我决定在 MyBB 上工作,寻找另一个 RCE 作为管理员。

但是,由于需要高级别的管理员访问权限,他们没有接受它。

我问他们为什么接受之前需要相同权限的报告,他们的回答是:

MyBB 0day 认证远程代码执行

所以我决定写这篇文章,而不是直接向供应商报告。
 


 

RCEPHP 邮件功能

PHP邮件函数是一个发送电子邮件的接口,它实际上会调用 sendmail 系统上安装的接口。

根据邮件功能的 官方 PHP 文档 ,它将采用 5 个参数:



对我们来说,有趣的是additional_params

PHP 说:

additional_params 参数可用于将附加标志作为命令行选项传递给配置为在发送邮件时使用的程序,如 sendmail_path 配置设置所定义。例如,当使用带有 -f sendmail 选项的 sendmail 时,这可用于设置信封发件人地址。
此参数在内部由 escapeshellcmd()转义 以防止命令执行。 escapeshellcmd() 阻止命令执行,但允许添加其他参数。出于安全原因,建议用户清理此参数以避免在 shell 命令中添加不需要的参数。
它允许我们控制执行 sendmail 命令的参数,也可以 escapeshellcmd 用来防止命令注入。

escapeshellcmd 不阻止参数注入 ,并且作为控制参数的例外行为,它不应该阻止这一点。

作为攻击者,我们可以滥用它,例如通过传递 -X 参数来定义一个文件来写入日志并通过这种方式控制文件路径和扩展名,如果我们找到一种方法将我们的自定义代码注入到日志文件中,我们可以编写一个 web shell在服务器中。
 

根本原因分析

MyBB 允许管理员设置邮件处理程序以及其他参数,当我们设置它们时,它将更新 config 文件并写入我们的配置而不对设置进行清理。

MyBB 0day 认证远程代码执行

MyBB 0day 认证远程代码执行

MyBB 将发送电子邮件时,如果管理员设置使用邮件,它将调用 inc/mailhandlers/php.php 中定义的 PhpMail 类的发送函数,如果 PHP 安全模式设置为关闭(PHP 的默认安装),它将使用我们定义的附加参数:

MyBB 0day 认证远程代码执行

MyBB 0day 认证远程代码执行
 


 

MyBB 开发

所以为了先写一个web shell,我们需要知道文档根路径,然后想办法把我们自己的PHP代码注入到日志文件中。

MyBB 允许我们调用 phpinfo 并查看其结果,因此我们可以轻松地向其结果发送一个简单的请求 admin/index.php?module=tools-php_info&action=phpinfo ,我们可以找到文档根路径来编写我们的 web shell

此外,我们可以添加一个新的样式表并在其中写入自定义 CSS 文件, cache/themes/theme2 以便我们可以通过以下方式触发文件写入:
 

  1. phpinfo 从结果中查找 webroot 路径
  2. 将我们的 PHP 代码写入 CSS 文件
  3. 将邮件参数设置为 -C <web_root>/cache/themes/theme2/rce.css -X <web_root>/rce.php
  4. mail 通过密码重置触发函数调用 。
  5. 因为 rce.css 不是一个有效的配置文件,它将导致错误并将其内容写入我们的 webshel​​l 日志文件。

POC

https://github.com/416e6e61/MyBB-0day-RCE

MyBB 0day 认证远程代码执行

 

给TA打赏
共{{data.count}}人
人已打赏
漏洞复现

大华网络摄像机重放凭据漏洞CVE-2022-30563(大华摄像头短路强制恢复)

2022-10-9 22:07:18

漏洞复现

PHP任意文件读取CVE-2022-35650

2022-10-9 22:08:16

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 admin@s9h.cn 或点击右侧 私信:少羽 反馈,我们将尽快处理。
0 条回复A文章作者M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索