0x01前言
在前一篇文章中介绍了一个仍然可以用于最新版PbootCMS的老漏洞DVB-2021-2510,并对漏洞流程进行分析,给出了在有限条件下利用漏洞的方式。
本文将在前一篇文章的基础上继续给出新的PbootCMS SQL注入漏洞,并对利用方式进行更深入的探讨。
0x02漏洞分析
由于PbootCMS使用了模板的方法来组合产品页面内容,为了支持可扩展性,支持非常复杂的语法,对基础内容想了解的可以先看文章https://xz.aliyun.com/t/14090。
apps/home/controller/TagController.php文件中,会把外部传入的数据get('tag')替换模板文件中的内容。

图1
这里的get('tag')和上一篇文章中的request($key, 'vars')有一个很大的区别是没有第二个参数,我们跟进get方法,看一下没有第二个参数的传值有哪些限制。

图2
如果没有传入第二个参数,默认值为null。跟进filter方法,可以看出在filter对类型和数据的安全检查中,第二个参数为null并不会命中任何一个条件判断,也就是不会对数据值进行任何限制。这里因为$condition['d_type']为null也不会因此而报错。

图3
虽然数据类型检测,但是filter方法中仍然有对其值的过滤方式,会替换很多标签相关的内容。这里需要重点标记一下,因为后面的SQL注入要用到这里过滤不完整的标签。

图4
回到图1的代码中,外部传入的get('tag')经过方法parserPositionLabel会替换模板文件中的部分内容,跟进parserPositionLa
PbootCMS新SQL注入漏洞分析与利用

最低0.47元/天 解锁文章
5203

被折叠的 条评论
为什么被折叠?



