从某CMS来看不安全的UNZIP操作

前言

这里对本人简单测试过的phpok6.0的后台文件上传的功用点做个小结, 总的来说就是不平安的unzip操作, 相关破绽均已提交至CNVD.

文件上传破绽

文件上传, 望文生义就是上传文件的功用行为, 之所以会被开展为危害严重的破绽, 是由于程序没有对提交的数据停止检验或者过滤不严, 招致能够直接歹意文件或者提交修正过的数据绕过扩展名的检验. 文件上传破绽是破绽中最为简单猖獗的应用方式, 普通只需能上传获取地址, 可执行文件被解析就能够获取系统WebShell.

文件上传破绽的常见上传点有:

  • 上传头像
  • 上传相册
  • 上传插件
  • 上传附件
  • 添加文章图片
  • 前台留言材料上传
  • 编辑器文件上传
  • ……

随着防护手腕的不时增加, 直接上传歹意PHP文件来停止getshell的概率越来愈小, 但是不平安的unzip招致的getshell问题照旧还是存在于许多的CMS当中.

破绽点

插件中心

导出一个已装置的插件, 接着修正一下文件的名字以及添加歹意代码, 再本地上传插件, 访问上传后的歹意文件即可getshell.

抓包看看恳求的内容: /phpok6/admin.php?c=upload&f=zip&PHPSESSION=9ff1mj7tdjnnru3uahmdfg6nh5&id=WU_FILE_0&name=shell.zip&type=application/x-zip-compressed&lastModifiedDate=Tue+Mar+15+2022+12:20:22+GMT+0800+(中国规范时间)&size=10022

phpok框架中c是控制器, f是办法, 且相关代码都在framework文件夹下面. 因而跟进framework/admin/upload_control.php中的zip_f办法.

public function zip_f()
{
    $rs = $this->lib('upload')->zipfile('upfile');
    if($rs['status'] != 'ok'){
        $this->json($rs['error']);
    }
    $this->json($rs['filename'],true);
}
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像谨代0