https://seclists.org/fulldisclosure/2019/Sep/31
实际上这算是模板注入漏洞。
poc中第一个参数 routestring
, 确定了用什么模板来进行渲染
调用callRender
,经过explode
后$routeInfo[2]
为widget_php
, $params
在经过array_merge($_POST, $_GET)
后将包括widgetConfig[code]
:
在 \core\install\vbulletin-style.xml
中,定义了一个名为widget_php
的模板
所以在$widgetConfig['code']
不为空,且 $vboptions['disable_php_rendering']
没开启的情况下,将会执行下面的模版语法:
{vb:action evaledPHP, bbcode, evalCode, {vb:raw widgetConfig.code}}
{vb:raw $evaledPHP}
在 includes\vb5\frontend\controller\bbcode.php
中定义了 evalCode
,如下:
最终造成代码注入漏洞。
poc都在上面了,自己复现吧。