menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 132-VBulletin chevron_right 004-(CVE-2020-12720)vBulletin 未授权sql注入漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    004-(CVE-2020-12720)vBulletin 未授权sql注入漏洞.md
    1.72 KB / 2021-07-17 00:01:30
        # (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](images/d3234c68f48d477083656f459af90570.png)
    
    跟进fillContentTableData方法,直接调用了getRow方法
    
    ![下载 1.png](images/92e880262a1a42edaabb9962389ae749.png)
    
    此处getRow方法传入的第一个参数为'vBForum:getContentTablesData',全局搜索getContentTablesData方法
    
    ![下载 2.png](images/e47367f591d7489eb5d744c739c4af09.png)
    
    nodeid被设置为常量TYPE_NOCLEAN的值,该值为0。
    
    跟进cleanArray方法
    
    ![下载 3.png](images/bd64e03f14db4adfbdb14055efe63acc.png)
    
    变量vartype经过数组处理后即为TYPE_NOCLEAN,随后调用doClean方法进行数据清洗
    
    ![下载 4.png](images/a04ee3a1bd9a4944a8106343f55418c0.png)
    
    doClean方法会根据传入的type数值进入到不同的分支进行处理,因为变量vartype为0直接进入到TYPE_NOCLEAN的分支,从而不做清洗处理。
    
    再回到/core/packages/vbforum/db/mysql/querydefs.php文件中,发现后续并没有再对nodeid键值进行处理,直接拼接到SQL语句中,造成了SQL注入漏洞。
    
    ![下载 5.png](images/58755fda9aca4308aec2e4a11be0af88.png)
    
    至于如何利用,就不赘述了,向上追溯调用链即可。
    
    ### 漏洞复现
    
    ![1.png](images/b58f6f195288479a9be69b8d196c3019.png)
    
    打个断点就能快速定位漏洞点
    
    ![2.png](images/cab8d2dde9ce47cda9fe25ccb2494b57.png)
    
    ## 参考链接
    
    > https://mp.weixin.qq.com/s/U-MiFkBiY6fF44xfwAV-Ng
    
    
    
    links
    file_download