前台会员头像上传任意文件,finecms v5.2及之后的版本已修复此漏洞,大家可以对比一下代码确认

涉及文件:/finecms/dayrui/controllers/member/Account.php

public function upload() {

// 创建图片存储文件夹
$dir = SYS_UPLOAD_PATH.'/member/'.$this->uid.'/';
@dr_dir_delete($dir);
!is_dir($dir) && dr_mkdirs($dir);if ($_POST['tx']) {$file = str_replace(' ', '+', $_POST['tx']);if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){$new_file = $dir.'0x0.'.$result[2];if (!@file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))) {exit(dr_json(0, '目录权限不足或磁盘已满'));

接收txt的参数.然后匹配了正则.最后取出内容和文件后缀部分。再直接存盘.文件名都是统一的0x0

仅仅是需要记住当前用户的id就可以搞定了

网络修复方案:

if (preg_match('/^(data:\s*image\/(png|jpg|jpeg);base64,)/', $file, $result)){

官方修复方案:升级到最新版,或手动替换代码

public function upload() {

    // 创建图片存储文件夹$dir = dr_upload_temp_path().'member/'.$this->uid.'/';@dr_dir_delete($dir);!is_dir($dir) && dr_mkdirs($dir);if ($_POST['tx']) {$file = str_replace(' ', '+', $_POST['tx']);if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){$new_file = $dir.'0x0.'.$result[2];if (!in_array(strtolower($result[2]), array('jpg', 'jpeg', 'png', 'gif'))) {exit(dr_json(0, '目录权限不足'));}if (!@file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))) {exit(dr_json(0, '目录权限不足'));} else {list($width, $height, $type, $attr) = getimagesize($new_file);if (!$type) {@unlink($new_file);exit(function_exists('iconv') ? iconv('UTF-8', 'GBK', '图片字符串不规范') : 'error3');}$this->load->library('image_lib');$config['create_thumb'] = TRUE;$config['thumb_marker'] = '';$config['maintain_ratio'] = FALSE;$config['source_image'] = $new_file;foreach (array(30, 45, 90, 180) as $a) {$config['width'] = $config['height'] = $a;$config['new_image'] = $dir.$a.'x'.$a.'.'.$result[2];$this->image_lib->initialize($config);if (!$this->image_lib->resize()) {exit(dr_json(0, '上传错误:'.$this->image_lib->display_errors()));break;}}// ok$my = SYS_UPLOAD_PATH.'/member/'.$this->uid.'/';@dr_dir_delete($my);!is_dir($my) && dr_mkdirs($my);$c = 0;if ($fp = @opendir($dir)) {while (FALSE !== ($file = readdir($fp))) {$ext = substr(strrchr($file, '.'), 1);if (in_array(strtolower($ext), array('jpg', 'jpeg', 'png', 'gif'))) {if (copy($dir.$file, $my.$file)) {$c++;}}}closedir($fp);}if (!$c) {exit(dr_json(0,  fc_lang('未找到目录中的图片')));}}} else {exit(dr_json(0, '图片字符串不规范'));}} else {exit(dr_json(0, '图片不存在'));}

转载于:https://blog.51cto.com/13785115/2128603

finecms V5 会员头像任意文件上传漏洞 附修复代码相关推荐

  1. php.ini 米拓_MetInfo(米拓) v5.1.3任意文件上传漏洞分析附利用EXP | CN-SEC 中文网

    摘要 MetInfo 23号发布了新版本5.1.5,修补了本文提到的漏洞,当然严格来说应该是任意变量覆盖漏洞-. ps:欢迎各种形式转载,首发t00ls.net MetInfo 23号发布了新版本5. ...

  2. 畅捷通T+ v17任意文件上传漏洞复现

    1.前言 8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足.第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如 ...

  3. 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  4. php上传漏洞绕过gd库,jQuery File Upload任意文件上传漏洞

    事件背景 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个JavaScript代码库(或JavaScript框架).jQuery File Upload一个jQ ...

  5. 某office前台任意文件上传漏洞分析

    X微e-office的那个前台任意文件上传漏洞已经被爆出一段时间了,相关的漏洞利用脚本甚至是漏洞批量利用脚本 也有很多.在这里根据系统代码结合POC来分析一下这个漏洞点. 定位漏洞点 [私信回复&qu ...

  6. 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞

    发布日期:2012-11-28 更新日期:2012-12-04 受影响系统: ozerov BigDump 0.29b 描述: ------------------------------------ ...

  7. vc++ 6.0 创建程序快捷方式的一个例子源码_漏洞复现:phpcms v9.6.0任意文件上传漏洞(CVE201814399)...

    文章说明 漏洞复现是为了学习漏洞利用所写,漏洞都是互联网上以流传已久的各种漏洞的利用及原理,用来增强自己见识,培养自己动手能力,有兴趣的朋友可自行搭建环境练习.源码下载连接在文章最后. 漏洞说明 PH ...

  8. 织梦guestbook.php漏洞,DEDE:织梦漏洞修复(含任意文件上传漏洞与注入漏洞)

    这几天阿里频繁提醒网站有漏洞,搞得我不胜其烦,好吧,我修复还不行吗?搜索之后整理如下,仅供参考(5.7以上版本适用): 任意文件上传漏洞修复 一./include/dialog/select_soft ...

  9. 详细分析 Sonlogger 任意文件上传漏洞 (CVE-2021-27964)

     聚焦源代码安全,网罗国内外最新资讯! 概述 Sonlogger 是土耳其SFC 公司 开发的一款应用软件,兼容土耳其<第5651号法>,是一款基于 Web 的 SonicWall 防火墙 ...

  10. FireEye 红队失窃工具大揭秘之:分析复现 Zoho 任意文件上传漏洞(CVE-2020-8394)

     聚焦源代码安全,网罗国内外最新资讯! 前言 最近,全球领先的网络安全公司 FireEye 疑遭某 APT 组织的攻击,其大量政府客户信息遭越权访问,且红队工具被盗.虽然目前尚不清楚这些红队工具将被如 ...

最新文章

  1. 重要的是改变命运,而非升职加薪
  2. php+原生代码+赋值,js重新赋值原生的方法
  3. JavaScript之array
  4. RESTFfu l规范 以及理解
  5. 实现微信文章页面 http://mp.weixin.qq.com/s?__biz=MjM5MDI3OTAwMg==amp;mid=200337417amp;idx=1amp;sn=5959ed1...
  6. composer全局 linux_Linux下全局安装composer方法
  7. samba (centos6.5)服务
  8. linux还原系统_Linux Kernel 5.5 最终删除 SYSCTL 系统调用
  9. java 基本语法 二_java基础语法2
  10. 有序表归并算法(数据结构学习笔记)
  11. BTA12A-ASEMI的IGBT管BTA12A
  12. bzoj2827: 千山鸟飞绝 平衡树 替罪羊树 蜜汁标记
  13. 移动硬盘提示格式化解决办法,未正确删除导致不能读取文件提示格式化解决方案
  14. ActiveSync 与 Pocket PC 2003 仿真器 建立同步
  15. 中国传统的节日(端午节)
  16. 纯CSS实现对话气泡(MD.5)
  17. 视频监控远程传输方案
  18. 凡事预则立不预则废---20180112
  19. 3.4.8nbsp;拉里·佩奇和谢尔盖·布林
  20. android 电池电量广播,Android查看电池电量的方法(基于BroadcastReceiver)

热门文章

  1. Apple Pay 究竟是什么
  2. 订单管理_02修改订单信息流程
  3. XSS修炼之独孤九剑——笔记
  4. php的implode函数的作用是,PHP函数implode介绍
  5. 单页面应用首页白屏时间过长和SEO不友好的问题的一些技术的优缺点和原理
  6. 吸人大法!最吸引人气的网吧LOL活动策划方案,此秘籍值得收藏!
  7. 《大数据架构和算法实现之路:电商系统的技术实战》——3.2 案例实践
  8. 【Windows11+Ubuntu20.04】双系统安装及美化、优化记录
  9. V831——二维码识别
  10. 《中华颂》朗诵比赛准备