研究人员发现vBulletin远程代码执行漏洞遭到利用 – 作者:偶然路过的围观群众

Palo Alto Unit 42的研究人员发现,攻击者正在积极利用流行的论坛软件vBulletin中的一个远程代码执行漏洞(CVE-2020-17496)。

去年九月,vBulletin中的一个远程执行代码漏洞CVE-2019-16759就曾遭到披露。成功利用该漏洞,攻击者可以提升权限,控制任意vBulletin服务器,和造成组织无法访问自己的网站。CVE-2019-16759影响运行5.0.0版本至5.5.4版本的vBulletin服务器。

针对CVE-2020-17496的exploits绕过了CVE-2019-16759的补丁。远程攻击者可通过发送含有指定模板名称和恶意PHP代码的HTTP请求利用该漏洞执行代码,且利用该漏洞不需身份验证。

CVE-2020-17496漏洞的起因

vBulletin的模板渲染功能可将XML模板转变成PHP代码并执行该代码。从5.0版本开始,vBulletin开始接受Ajax请求用于模板渲染。执行该功能的函数staticRenderAjax从$_REQUESTS,$_GET和$_POST接收参数值,因此,来自这些参数的模板名称和相关的配置都是由用户控制的,从而导致了CVE-2019-16759。

从5.5.5版本开始,vBulletin在callRender()函数中使用一个disallow-list机制检查模板名称,如果名称为widget_php,该引擎就不会渲染被请求的模板,从而修复了CVE-2019-16759。

CVE-2019-16759的另一个补丁是evalPhp函数开始检查当前的模板名称。从那以后,widget_php就成为唯一可被用于执行PHP代码的模板。该补丁还限制了用户对该模板的访问。

然而,研究人员发现widget_tabbedcontainer_tab_panel模板可被用于加载widget_php模板。

widget_tabbedcontainer_tab_panel模板可被用于渲染多个子模板。渲染该模板本身并不会直接导致远程代码执行。然而,渲染该模板会触发渲染其他子模板。

下图是从XML格式的widget_tabbedcontainer_tab_panel模板渲染出的PHP代码。该代码被生成后,就会被执行。图片[1]-研究人员发现vBulletin远程代码执行漏洞遭到利用 – 作者:偶然路过的围观群众-安全小百科

在该PHP代码中,该渲染引擎会从$subWidgets开始遍历“subWidget”及其配置,并创建一个新的模板对象,之后,该渲染就会生成PHP代码。在这个案例中,如果字符串widget_php被分配给变量subWidget,且该恶意代码被放置在$widgetConfig[‘code’]中,该恶意代码就可被远程执行。

CVE-2020-17496遭到活跃利用

研究人员在今年8月10日首次发现该漏洞遭到利用,随后还发现来自不同IP地址的攻击企图。

研究人员分析了捕获的恶意流量,发现多个源IP正在试图扫描查找脆弱的网站并收集信息。根据Unit 42研究人员发布的信息,攻击者正在开展多样的攻击。有些攻击者正在试图利用该漏洞读取服务器端的敏感信息,有些攻击者正在利用该漏洞安装web shell,有些攻击者利用该漏洞下载基于Perl脚本的恶意软件,甚至有些攻击者利用该漏洞下载来自攻击者服务器的Mirai变体(Sora)。

但是,研究人员指出这些攻击是完全不同的攻击,不是特定攻击者的协同攻击活动。

vBulletin已在8月10日发布补丁,修复了该漏洞。超过10万个网站建立在vBulletin之上,包括大型企业和组织的论坛,因此立即修复该漏洞势在必行。

来源:freebuf.com 2020-09-07 15:16:54 by: 偶然路过的围观群众

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论