文件上传-后端验证

embedded/2024/9/24 6:22:02/

以下全以PHP代码为例

1、Content-Type(MIME检测)

原理:

数据包会根据文件后缀来确定文件类型(Content-Type)

网站服务器(后端)通过Content-Type来验证文件是否合法

<?php
if($_FILES['a']['type'] != "image/gif")
{die("Sorry,we only allow uploading GIF images");
}    
?>

绕过:

修改Content-Type为允许的格式(常见image/png)

2、文件后缀

原理:

后端代码通过文件后缀来验证文件是否合法

绕过:

  • 大小写(有些情况无法解析.Php)

  • php5、php7(有些情况无法解析.Php)

  • .htaccess(限于Apache,Nginx很少支持)

  • .user.ini(PHP环境均可以)

    目标目录下index.php调用了.user.ini

    上传.user.ini(auto_prepend_file=1.png)

    上传允许的文件格式1.png(1.png中存在后门代码)

3、文件内容验证

**测试限制内容:**先随便输点数据(111能否上传)看是否为内容验证,依次去除一句话木马的各部分,判断限制了哪些内容。

**原理:**正则表达式匹配。

绕过:

  • 更换一句话木马写法(4种,待补充)
  • 命令变量分割( a = ‘ e v a ’ . ’ l ’ ; a=‘eva’.’l’; a=eva’.’l;a(POST[xxx]))
  • 尝试其他语言代码(不推荐,实在没办法了再尝试)
  • 日志+UA头木马
  • 远程包含绕过(过滤点,可以使用长地址)

4、文件头

前面测试都无法上传,尝试添加文件头

**绕过:**添加合法文件头(比如GIF89A)

5、删除上传文件

  1. 什么都删除
  2. 判断后门、删除
    • 上传.user.ini直接包含远程文件

绕过:

  • 条件竞争:上传前持续访问,上传一瞬间访问执行

    执行创建新文件的代码

    执行先读取再发送到远程服务器的代码


http://www.ppmy.cn/embedded/97152.html

相关文章

Visual Studio Code 使用Git详细教程

再集成之前请确保已经安装Visual Studio Code 和Git&#xff0c;并且可以找到Git文件地址。如果找不到可以在系统环境变量里面看一眼之前的配置-需要找到Git下面的cmd目录&#xff0c;一会配置使用。 打开 Visual Studio Code找到设置根据图片指引 1.找到左下角设置按钮 2.展开…

JavaScript AI 编程助手

JavaScript AI 编程助手 引言 随着人工智能技术的飞速发展&#xff0c;编程领域也迎来了前所未有的变革。JavaScript&#xff0c;作为全球最流行的编程语言之一&#xff0c;其与AI的结合为开发者带来了巨大的便利和无限的可能性。本文将探讨JavaScript AI编程助手的定义、功能…

SpringBoot + RabbitMQ + WebSocket + STOMP 协议 + Vue 实现简单的实时在线聊天案例

1. 什么是WebSocket&#xff1f; WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许客户端和服务器之间的实时、双向数据传输。与传统的HTTP请求/响应模型相比&#xff0c;WebSocket更加高效&#xff0c;因为它在初次握手后&#xff0c;连接保持打开状态&#xff0…

【Kubernetes】k8s集群安全机制

目录 一.认证 1.k8s集群内的三种认证方式 2.k8s集群内的认证说明 2.1.需要被认证的访问类型 2.2.安全性说明 2.3.证书颁发的方式 2.4.kubeconfig 2.5.Service Account 2.6.Secret 与 SA 的关系 二.鉴权 1.鉴权的方式 2.RBAC的角色与角色绑定 2.1.RBAC的角色 2.2…

C语言实现排序之插入排序算法

一、插入排序算法 基本思想 插入排序的基本思想是将未排序的元素逐个插入到已排序的序列中。初始时&#xff0c;假设序列的第一个元素已经被排序。然后从第二个元素开始&#xff0c;将其插入到已排序的序列中的适当位置&#xff0c;使得已排序的序列仍然有序。 步骤 初始化&…

探索腾讯云对象存储COS在Java中的实现:以实际项目为例

文章目录 背景介绍项目结构及关键依赖代码实现解析详细解析小结 在现代的互联网应用中&#xff0c;存储和管理大量的文件和数据是不可避免的。无论是图片、视频还是文档等&#xff0c;这些数据都需要一个安全且高效的存储方案。腾讯云对象存储&#xff08;COS&#xff09;作为一…

监控设备上云的方式有哪些?

监控设备上云主要有以下几种方式&#xff0c;各方式的区别如下&#xff1a; - 直接写入云存储&#xff1a; - 方式&#xff1a;监控设备将视频流等数据直接写入云服务提供商的云存储中&#xff0c;如腾讯云的对象存储&#xff08;COS&#xff09;、阿里云的对象存储&#xff08…

基于UDP的TFTP文件传输

1. tftp协议概述 简单文件传输协议&#xff0c;适用于在网络上进行文件传输的一套标准协议&#xff0c;使用UDP传输 特点&#xff1a; 是应用层协议 基于UDP协议实现 数据传输模式 octet&#xff1a;二进制模式&#xff08;常用&#xff09; mail&#xff1a;已经不再支持 2. t…