当前位置: 首页 > news >正文

【网络安全】开源系统getshell漏洞挖掘

审计过程:
在入口文件admin/index.php中:

用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码:

当M_TYPE == 'system'并且M_MODULE == 'include'时,会设置常量PATH_OWN_FILE为PATH_APP.M_TYPE.'/'.M_MODULE.'/module/'

也就是路径:/app/system/include/module 这个文件夹,这个点非常重要。

M_MODULE的值在入口文件中,通过参数传递,导致我们可以控制:

M_TYPE的值如下图所示:

这里M_NAME的值是由我们输入的,只要不赋值即可让M_TYPE的值为system。

所以通过对参数m的控制可以设置常量PATH_OWN_FILE为/app/system/include/module 这个点非常重要,后续会用到。

继续往后会执行load::module()方法:

当module方法不传递任何参数时,会使用默认的参数值,也就是$path = '',所以这里也就会将$path 的值设置为PATH_OWN_FILE,也就是路径:/app/system/include/module

后续的$modulename,$action变量的值也就是我们开头的通过参数a,c控制的值。

后续进行self::_load_class($path, $modulename, $action);参数的实现如下:

该方法就是将文件进行加载进来,并且new出该类的对象后,通过call_user_func进行方法的调用。

我们可以在/app/system/include/module目录下寻找到符合xxx.class.php的文件,如:/app/system/include/module/loadtemp.class.php 在给文件中存在doviewHtml方法是我们可以通过web进行调用的:

该自研框架通过$_M['form']['path'];等方式获取到用户的输入,等同于$_POST['path']

最后一路执行会来到$view->dofetch的地方:

这里我们完全可控$file参数:

继续跟进fetch方法:

跟进display方法:

重点关注$this->compile();//执行编译:

在执行编译中,将我们输入的文件路径进行了内容读取,将读取后的内容写入到了$this->view->compileFile文件中,返回到开始的display方法中:

通过include编译文件造成了任意代码执行漏洞。

文件上传处

/app/system/include/module/uploadify.class.php 文件中的doupfile方法:

可以直接上传白名单内的文件,配合上面的文件包含,造成任意代码执行漏洞。

漏洞复现:

修复建议:官网已经发布补丁,请及时更新补丁升级版本。

http://www.xdnf.cn/news/955873.html

相关文章:

  • UI 自动化测试工具推荐
  • [KCTF]CORE CrackMe v2.0
  • ​小学五年级的语言来解释符号​
  • ui框架-文件列表展示
  • 拉曼光谱效应:分子指纹的科学与应用
  • 视觉slam--三维刚体运动
  • java教程笔记(十四)-线程池
  • DAY 44 训练
  • RK3588开发笔记-wifi6 SDIO接口rtl8822cs调试笔记
  • Mysql故障排插与环境优化
  • ESP32-S3 IDF V5.4.1 LVGL 9.2.0 fatfs
  • RabbitMQ优先级队列的使用
  • 掌握业务三板斧:目标、过程、成果
  • 视频监控管理平台EasyCVR接入RTMP推流后FLV格式流高延时问题解决方案
  • 会计 - 股份支付
  • 六、接口关联
  • 对云边协同技术的理解
  • Python 协程全解析:async/await、asyncio.run、协程 vs 多线程、I/O 密集首选协程
  • EasyExcel读取csv文件乱码
  • 在 JavaScript中编写 Appium 测试(入门)
  • 【后端】单点登录
  • BI系统帮助企业释放数据价值
  • 技术突破与落地应用:端到端 2.0 时代辅助驾驶TOP10 论文深度拆解系列【第二篇(排名不分先后)】
  • Zabbix 高可用架构部署方案(2最新版)
  • DAY 45 超大力王爱学Python
  • JAVA实战开源项目:经方药食两用服务平台 (Vue+SpringBoot) 附源码
  • day030-Shell自动化编程-函数
  • Ubuntu Linux环境查看服务器资源,查询CPU,内存,环境变量等命令
  • 标注工具核心代码解析——load_image【canvas.py]
  • NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合