004-(CVE-2020-12720)vBulletin 未授权sql注入漏洞

# (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

![下载.png](/static/lingzu/images/d3234c68f48d477083656f459af90570.png)

跟进fillContentTableData方法,直接调用了getRow方法

![下载 1.png](/static/lingzu/images/92e880262a1a42edaabb9962389ae749.png)

此处getRow方法传入的第一个参数为’vBForum:getContentTablesData’,全局搜索getContentTablesData方法

![下载 2.png](/static/lingzu/images/e47367f591d7489eb5d744c739c4af09.png)

nodeid被设置为常量TYPE_NOCLEAN的值,该值为0。

跟进cleanArray方法

![下载 3.png](/static/lingzu/images/bd64e03f14db4adfbdb14055efe63acc.png)

变量vartype经过数组处理后即为TYPE_NOCLEAN,随后调用doClean方法进行数据清洗

![下载 4.png](/static/lingzu/images/a04ee3a1bd9a4944a8106343f55418c0.png)

doClean方法会根据传入的type数值进入到不同的分支进行处理,因为变量vartype为0直接进入到TYPE_NOCLEAN的分支,从而不做清洗处理。

再回到/core/packages/vbforum/db/mysql/querydefs.php文件中,发现后续并没有再对nodeid键值进行处理,直接拼接到SQL语句中,造成了SQL注入漏洞。

![下载 5.png](/static/lingzu/images/58755fda9aca4308aec2e4a11be0af88.png)

至于如何利用,就不赘述了,向上追溯调用链即可。

### 漏洞复现

![1.png](/static/lingzu/images/b58f6f195288479a9be69b8d196c3019.png)

打个断点就能快速定位漏洞点

![2.png](/static/lingzu/images/cab8d2dde9ce47cda9fe25ccb2494b57.png)

## 参考链接

> https://mp.weixin.qq.com/s/U-MiFkBiY6fF44xfwAV-Ng

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

请登录后发表评论

    请登录后查看评论内容