PbootCMS历史漏洞分析 0x01
PbootCMS历史漏洞分析 0x01
原创 数据安全实验室 山石网科安全技术研究院 2022-09-14 11:28
V0.9.8
php代码审计的初学者,所以就先从D类CMS入手。
后台默认账号:admin 密码:123456
代码审计分:
·
危险函数追踪流
·
通读全文流
·
黑白盒结合审计流
开发者标签手册
IF条件语句
注意:条件语句中字符串需要用单引号或双引号,条件也可以使用原生PHP代码;所有对其它标签的调用都为字符串,需要加单引号。
示例一:在IF
中使用PHP
函数示例:
示例二:
高亮栏目示例:
示例三:嵌套
IF
:
这里说了可执
行PHP语句,但要插在IF条件标签,例如:
{pboot:if(php语句)}{/pboot:if}
然后再返回文件查看源代码文件:
该文件是:标签解析引擎控制器,也就是解析标签的。
代码的1273~1314为关于IF条件语句的。
/apps/home/controller/ParserController.php
关键在
只
经过简单的正则匹配之后就赋值,然后
eval()
执行。
到此需要寻在利用点。
Poc
Poc:
{pboot:if(phpinfo())}!{/pboot:if}
最后经过寻找,只要发现后台能编辑的地方,基本上都能插入IF条件语句标签并能解析执行。
访问首页就可以看到
phpinfo
页面。
然后尝试了多次多点均能Getshell。
另外
前台某处存在CSRF,利用其修改后台内容,但均有提升修改成功的页面,做不到无感知修改内容,因此CSRF+IF条件语句标签也是比较鸡肋。