phpcms v9文件上传漏洞复现

1.压缩包文件无递归删除

$file = $_FILES['file'];            #检查文件是否为空文件
if (!$file) {
    exit("请勿上传空文件");
}
$name = $file['name'];
$dir = 'upload/';
$ext = strtolower(substr(strrchr($name, '.'), 1));


function check_dir($dir)        #检查文件格式
{
    $handle = opendir($dir);
    while (($f = readdir($handle)) !== false) {
        if (!in_array($f, array('.', '..'))) {
            $ext = strtolower(substr(strrchr($f, '.'), 1)); #将文件后缀名分割出来
            if (!in_array($ext, array('jpg', 'gif', 'png'))) {        #检查文件格式                unlink($dir . $f); 
            }
        }
    }
}
// mkdir($dir);
if (!is_dir($dir)) {        #创建文件夹储存上传的文件
    mkdir($dir);
}

$temp_dir = $dir . 'member/1/';
if (!is_dir($temp_dir)) {
    mkdir($temp_dir);
}

        
        if ($archive->extract(PCLZIP_OPT_PATH, $temp_dir, PCLZIP_OPT_REPLACE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
修改内容列表: 1. 支持PHP8 2. 支持HTTPS环境 3. 支持MySQL8+ 4. 修改PHPCMS目录为CMS 5. 验证码修改 6. 支持H5上传,移除Flash上传 7. 修改后台缩略图裁切图片,移除Flash裁切改为H5裁切 8. 后台附件上传修改为H5上传,会员头像上传修改为H5上传 9. 修改后台界面,修改后台登录界面、后台锁屏界面、后台内容界面 10. 修改前台界面 11. 修复已知BUG 12. 修复已知安全漏洞 13. 增加安装时自定义后台管理登录地址 14. 去掉PHPSSO模块、去掉Video及视频库相关、去掉Upgrade在线升级 15. 去除了已被废弃的视频模块和视频模型 16. 修复安装时DNS解析错误提示 17. 手机电脑同时生成Html 18. 安装文件不检查index.html 19. 安装完删除安装目录 20. 安装删除友情链接、广告数据 21. 整合UEditor编辑器 22. UEditor整合上传水印 23. UEditor上传储存数据 24. 附件选择框UI 25. 优化附件选择器界面 26. 添加讯飞关键词获取API、百度关键词获取API,原官方关键词接口已失效 27. 后台添加复制,可复制一条新的到任何栏目或站点 28. 添加头像字段 29. 修改头像,重新写入库 30. 添加组图模式,图片模式、文本模式 31. 百度编辑器上传视频播放器由embed改成video标签 32. 添加本地关键词获取API,原官方关键词接口已失效 33. 添加站点自定义字段、栏目自定义字段、单网页自定义字段 34. 添加一键导入微信文章 35. 添加Word导入编辑器 36. 增加编辑器可下载微信图片本地化功能 37. 编辑器远程下载图片时加入对尺寸的压缩处理 38. 后台登录密码传输改为加密模式 39. 添加生成静态页进度条 40. 编辑器添加本地图片自动上传 41. 升级为CK4.16.1编辑器 42. 无用文件清理 43. 修改生成缩略图函数thumb 44. 修改获取用户头像函数get_memberavatar 45. 修改原来上传类处理文件,删除原上传类处理文件,新增Upload上传类处理文件 46. 修改原来图片处理类文件 47. 修改IP库类处理文件 48. 新增二维码处理类文件 49. 新增Input类处理文件 50. 新增判断是否是移动端终端is_mobile函数 51. 新增二维码qrcode函数 52. 新增秒转化时间sec2time函数 53. 新增友好时间显示函数dr_fdate 54. 新增时间显示函数dr_date 55. 新增递归创建文件夹create_folder函数 56. 新增调用远程数据dr_catcher_data函数 57. 新增获取远程附件扩展名get_file_ext函数 58. 新增栏目面包屑导航dr_catpos函数 59. 新增手机栏目面包屑导航dr_mobile_catpos函数 60. 新增手机分页函数mobilepages 61. 新增重新日志记录函数log_message 62. 新增目录扫描dr_dir_map函数 63. 新增文件扫描dr_file_map函数 64. 新增数据返回统一格式dr_return_data函数 65. 新增格式化输出文件大小format_file_size函数 66. 新增附件信息get_attachment函数 67. 新增统一返回json格式并退出程序dr_json函数 68. 新增将数组转换为字符串dr_array2string函数 69. 新增将字符串转换为数组dr_string2array函数 70. 新增根据文件扩展名获取文件预览信息dr_file_preview_html函数 71. 新增IP转为实际地址ip2address函数 72. 新增当前IP实际地址ip_address_info函数 73. 新增清除HTML标记clearhtml函数 74. 新增提取关键字dr_get_keywords函数 75. 新增提取描述信息dr_get_description函数 76. 新增获取内容中的缩略图get_content_img函数 77. 新增HTML实体字符转换code2html函数 78. 新增判断存在于数组中dr_in_array函数 79. 新增字符长度dr_strlen函数 80. 新增将路径进行安全转换变量模式dr_safe_replace_path函数
PHPCMS v9 是一种流行的网站内容管理系统,用于创建和维护网站。它有一个功能强大的图片上传功能,但目前是基于Flash的。然而,随着技术的发展和浏览器对Flash支持度的下降,越来越多的开发者将图片上传功能改为HTML5。 将PHPCMS v9的图片上传改为HTML5有许多好处。首先,HTML5支持跨平台和跨浏览器,几乎所有现代浏览器都支持HTML5。相比之下,Flash对某些平台和设备的支持可能有限。其次,HTML5无需用户安装任何插件或软件,使得用户使用更加便捷。最后,使用HTML5可以提供更好的用户体验,例如拖放上传、实时预览和进度条等。 要将PHPCMS v9的图片上传改为HTML5,首先需要更新后端代码,以便支持新的上传方式。PHPPHPCMS的后端语言,可以使用PHP文件上传函数来处理HTML5的文件上传。其次,需要更新前端代码,以便替换掉原来的Flash上传组件。在HTML5中,可以使用input标签的type属性设置为file来创建一个文件上传表单控件,并使用JavaScript监听文件选择或拖放事件,实现实时预览和进度条功能。 除了修改代码,还需要更改PHPCMS的配置文件,以便将上传存储路径更改为服务器上合适的文件夹。同时,需要相应地更改数据库中存储图片信息的表结构,以适应新的图片上传方式。 总结而言,将PHPCMS v9的图片上传改为HTML5是一个重要的升级步骤,可以提供更好的用户体验和更广泛的平台兼容性。需要改动后端和前端代码,并相应地更新配置文件和数据库表结构。这样做可以使得网站更加现代化和可访问,适应不断变化的技术环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值