我们注意到上周vBulletin团队向所有客户发邮件提醒vBSEO存在一个潜在的安全漏洞。

经过深入分析,我们判断该漏洞极其危险,它能允许攻击者在客户网站上执行PHP恶意代码,所以应立即手动修补该插件。

vbseo-520x245-1421157771

使用该插件的每个用户都面临危险么?

由于vBulletin是一个高度可配置的软件,所以你是否直接受到影响取决于网站的具体配置。

含有漏洞的这段代码会在vBulletin加载 memberinfo_visitormessage 模板时执行。这就意味着如果你(作为站长)允许访问者(无论是否已认证通过)能查看用户介绍中的 "访客留言(visitor message)" 一节,就会令你陷入危险。

 

技术细节

出于某些原因,vBSEO会在 visitormessage 模板中添加用户提供的 referer 链接:

Suucri-vBSEO-1

正如你所看到的,653行到658行会将 $permalinkurl 变量传给 vbseo_modify_template34() 方法,这看似没什么问题,却会引发一个明显的XSS漏洞(变量在传递之前并没有针对xss进行过滤)。

接下来看一下 vbseo_modify_template34() 的代码,就会发现事情变得有些糟糕:

Suucri-vBSEO-II

第一眼我们就能看出来:调用preg_replace()可不是什么好事,对于我们而言,尤其是攻击者能够控制$replacewith的内容——以此就可以构造出XSS Palyload——利用这些正则表达式将PHP代码之类的内容添加到模板当中。

通过分析 vbseo_modify_template() 函数,我们验证了上述判断。该函数实质上只是在vBulletin模板缓存中替换了指定的代码片段。

因此,攻击者要想注入PHP代码,就必须在referrer字段中添加如下这样的代码(通过查看HTTP服务器的日志,很容易标识出这些内容):

http://www.somesite.com/?a=$stylevar[${${phpinfo()}}]

尽快打上补丁!

由此可见,这是一个非常严重的问题,请您务必更正此前我们所提及的代码,尽快修补这个插件。

 

补充:来自vBulletin的提醒邮件

亲爱的vBulletin授权用户,
我们注意到:在vBSEO的最新版本当中存在一个潜在的安全漏洞(其他版本可能也是如此)。我们曾尝试联系厂商以修正该问题,但是一直没有回应。考虑到很多用户都在使用该插件,因此我们认为有必要就此事提醒整个社区。
如果您认为您的网站有可能还在运行含有该漏洞的vBSEO版本,可以做一个简单的修复:将文件vbseo/includes/functions_vbseo_hook.php中的这两行代码给注释掉!
if(isset($_REQUEST[‘ajax’]) && isset($_SERVER[‘HTTP_REFERER’]))
$permalinkurl = $_SERVER[‘HTTP_REFERER’].$permalinkurl;

 

注释后就变成了:
// if(isset($_REQUEST[‘ajax’]) && isset($_SERVER[‘HTTP_REFERER’]))
// $permalinkurl = $_SERVER[‘HTTP_REFERER’].$permalinkurl;

 

如果您正在运行 “可疑文件版本Suspect File Versions” 诊断工具,您还需要为上述文件重新生成md5校验码,并修改upload/includes/md5_sums_crawlability_vbseo.php这三个文件以使用新的MD5校验码。
请注意:你需要承担自行修改该代码的风险。我们并不清楚这些修正是否会影响您的vBSEO授权条款以及是否会破坏您的网站。我们并不承担由此带来的法律责任。
该潜在漏洞已编号为CVE-2014-9463提交到cve.mitre.org。
【原文:vbseos-vulnerability-leads-to-remote-code-execution 翻译:安全脉搏编辑yiyanghuadan 】
源链接

Hacking more

...