Mybb1.8.32命令执行漏洞分析

渗透技巧 1年前 (2023) admin
338 0 0

漏洞简介

MyBB(MyBulletinBoard)是MyBB(MYBB)团队的开发的一套用PHP和MySQL开发的免费且基于Web的论坛软件。该软件具有简单易用、支持多国语言、可扩展等特点。 MyBB 存在安全漏洞,该漏洞源于设置语言时对相关文件审查不严格,这会导致远程代码执行 (RCE) 漏洞。

影响范围

小于mybb_1.8.32(包含)版本

config/languages.php文件

漏洞分析

这是一个后台漏洞,漏洞出发点在系统语言设置位置。但是需要和另一个位置配合才可以利用。

先登录账号,来到用户列表

Users&Groups -> Users -> Browse Users

           Mybb1.8.32命令执行漏洞分析

           

随便找一个用户,打开头像设置

Mybb1.8.32命令执行漏洞分析

           

Mybb1.8.32命令执行漏洞分析

           

先来上传一个文件看看。

Mybb1.8.32命令执行漏洞分析

           

我们这里就不一个个尝试绕过上传了,直接看代码。通过抓包,可以知道后台是通过admin/modules/user/users.php文件处理

Mybb1.8.32命令执行漏洞分析

           

打开users.php文件,定位到action=edit

Mybb1.8.32命令执行漏洞分析

           

这里可以看到把上传的文件和待修改头像用户的uid传递给upload_avatar函数。如果报错,就打印错误,如果没报错,更新上传后的头像信息。

Mybb1.8.32命令执行漏洞分析

           

进入upload_avatar函数后,可以看到对文件后缀进行判断,只允许图片后缀。不过没关系,我们这里不用绕,直接把webshell代码放到图片里边就行。

Mybb1.8.32命令执行漏洞分析

           

接下来看一下文件保存在了什么位置

$avatar :文件对象

$avatarpath:默认上传路径 ./uploads/avatars

$filename:文件名 avatar_1.png

Mybb1.8.32命令执行漏洞分析

           

头像文件上传到web根目录下./uploads/avatars/avatars_1.png

Mybb1.8.32命令执行漏洞分析

           

然而,并不是这样,后台默认设置,把头像上传目录修改到了./inc目录下。所以,最终上传到了

web根目录下./inc/avatars_1.png

Mybb1.8.32命令执行漏洞分析

           

当然,图片文件是没办法直接执行php代码。需要配合文件包含,刚好修改语言的地方有一个文件包含

随便修改了一个,是这样。

Mybb1.8.32命令执行漏洞分析

           

打开语言后台处理文件./admin/modules/config/languages.php,定位到action=edit

Mybb1.8.32命令执行漏洞分析

           

在这个文件中直接搜include关键字,可以看到是把语言文件本地包含执行。

Mybb1.8.32命令执行漏洞分析

           

接着,我们只需要跟踪并构造这个语言文件的路径指向之前上传的头像文件即可。

首先,从请求中获取editwith的值,添加到路径后边

此时$editwithfolder的值为根目录/inc/languages/’editwith’/,接着往下看

Mybb1.8.32命令执行漏洞分析

           

$file的值为‘file’,也就是我们可以随便输入。

Mybb1.8.32命令执行漏洞分析

           

包含的文件为变量$editwithfile的值,也就是$editwithfolder + $file

$editwithfile:根目录下./inc/languages/’editwith’/’file’

Mybb1.8.32命令执行漏洞分析

           

再来回忆下,前边图片马的上传路径

图片马:web根目录下./inc/avatars_1.png

语言文件:根目录下./inc/languages/’editwith’/’file’

那么,构造语言文件路径指向图片马即可。输入editwith为上一层目录..

file为avatar_1.png

漏洞利用

网上还没EXP,这里就不放了,只展示下效果。好在官方已修复。

Mybb1.8.32命令执行漏洞分析

           

修复建议

升级到1.8.33即可

官方地址:https://github.com/mybb/mybb/releases

可以看到,官方修复方法为禁止路径中有...,也就是禁止访问上层目录和当前目录。

Mybb1.8.32命令执行漏洞分析

           

原文始发于微信公众号(闲聊知识铺):Mybb1.8.32命令执行漏洞分析

版权声明:admin 发表于 2023年4月12日 下午7:59。
转载请注明:Mybb1.8.32命令执行漏洞分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...