(CVE-2020-12720)vBulletin 未授权sql注入漏洞¶
一、漏洞简介¶
未经授权的用户可以通过SQL注入获取敏感数据
二、漏洞影响¶
vBulletin 5.5.6pl1之前版本
vBulletin 5.6.0pl1之前的5.6.0版本
vBulletin 5.6.1pl1之前的5.6.1版本
三、复现过程¶
漏洞分析¶
漏洞文件:/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注入漏洞。
至于如何利用,就不赘述了,向上追溯调用链即可。
漏洞复现¶
打个断点就能快速定位漏洞点