vBulletin routestring Unauthenticated Remote Code Execution Vulnerability

0x01 漏洞描述

vBulletin 是一款使用广泛的基于 PHP 和 MySQL 数据库服务器的专有互联网论坛软件包。意大利安全公司TRUEL IT的安全研究员和一名神秘的独立安全研究人员发现并披露了热门互联网论坛软件 vBulletin 中的两个未修复的紧急 0day 漏洞。其中一个漏洞可导致远程攻击者在最新版 vBulletin 应用服务器中执行恶意代码。

####0x02 受影响产品

在Windows Server上运行的vBulletin 5全版本

0x03 危害风险

远程攻击者可利用vBulletin的漏洞在应用服务器中执行恶意代码

0x04漏洞原理

补丁分析

Index.php页面中通过vB5_Frontend_Application::init初始化前端配置。

跟入init函数。

init函数创建router类,用于页面路由,调用setRoutes。在setRoutes内部获取routestring参数。

如果routestring不以‘.gif’, ‘.png’, ‘.jpg’, ‘.css’ , ‘.js’结尾且不含‘/’号,则会调用relay controller中的legacy action。

Legacy action调用时,routestring作为参数。

而我们可以看到relay最终会包含此路径的文件。所以存在文件包含漏洞。在Windows上“\”可以作为路径分割符,类似于“/”,所以routestring不含“/”可以轻松绕过。

0x05漏洞触发条件

Windows Server上发送“/index.php?routestring=.\..\filepath”请求。包含任意文件。

0x06漏洞利用

直接利用包含php文件执行php代码,也可以利用log文件执行php代码。

先发送“/?LogINJ_START=<?phpphpinfo();?>LogINJ_END”请求,使它存留在access.log文件中。

再利用此漏洞包含access.log文件,执行php代码。“/index.php?routestring=\..\..\..\..\..\..\..\..\..\..\xampp\apache\logs\access.log”!

参考链接:https://blogs.securiteam.com/index.php/archives/3569