背景
近期,安恒Zionlab团队通过监控发现vBulletin官网于2020年05月07日发布了最新5.6.1版本安全补丁。产品更新说明提示修复一处安全漏洞,经过补丁对比发现官方疑似修复一处前台SQL注入漏洞。
漏洞危害
未经授权的用户可以通过SQL注入获取敏感数据
影响范围
vBulletin 5.5.6pl1之前版本
vBulletin 5.6.0pl1之前的5.6.0版本
vBulletin 5.6.1pl1之前的5.6.1版本
vBulletin表示,“如果你正在使用 5.5.2 之前的 vBuletin 5 版本,则应尽快更新。”
技术分析
漏洞文件:/core/vb/library/content.php
跟进fillContentTableData方法,直接调用了getRow方法
此处getRow方法传入的第一个参数为'vBForum:getContentTablesData',全局搜索getContentTablesData方法
nodeid被设置为常量TYPE_NOCLEAN的值,该值为0。
跟进cleanArray方法
变量vartype经过数组处理后即为TYPE_NOCLEAN,随后调用doClean方法进行数据清洗
doClean方法会根据传入的type数值进入到不同的分支进行处理,因为变量vartype为0直接进入到TYPE_NOCLEAN的分支,从而不做清洗处理。
再回到/core/packages/vbforum/db/mysql/querydefs.php文件中,发现后续并没有再对nodeid键值进行处理,直接拼接到SQL语句中,造成了SQL注入漏洞。
至于如何利用,就不赘述了,向上追溯调用链即可。
给出POC证明:
修复建议
官方已发布最新安全补丁,请及时更新补丁:
https://forum.vbulletin.com/forum/vbulletin-announcements/vbulletin-announcements_aa/4440032-vbulletin-5-6-1-security-patch-level-1
目前,安恒APT预警平台、远程安全评估web扫描模块、网站安全监测平台等产品已支持对该漏洞的检测,已购买产品的客户可以通过在线升级的方式更新最新漏洞策略库进行自查。
团队招聘
长期招聘WEB/二进制安全研究员
职位描述:
1、负责公司检测类产品的策略维护(如漏洞扫描器、APT、入侵检测、工控物联网等,任意一种或多种)
2、负责跟进热门安全事件、最新漏洞的分析,并编写分析报告或poc代码等
职位要求:
1、熟悉安全漏洞原理,具备快速的漏洞定位分析能力;
2、至少熟悉一门脚本编程语言,能快速完成POC代码编写;
3、有漏洞挖掘、病毒木马分析、威胁情报挖掘、物联网工控设备漏洞分析挖掘等工作经验的优先。
联系方式:
Zionlab@dbappsecurity.com.cn