DVWA-5.File upload

news2024/9/27 12:15:30

前提

1、在实验时,需要在 DVWA Security模块,设置需要实验的级别,对于不同的级别,php会调用不同的代码去执行用户操作。对于low level,系统的安全性低,容易受到攻击。impossible级别,系统的安全性高,很难受到攻击。

2、在每个模块,右下角,可以看到设置的对应级别的php代码实现和对该模块的帮助。

 

 

File upload文件上传

lowlevel

低级别不会以任何方式检查正在上传的文件的内容。它只依赖于信任,任何文件都可以上传。

上传image

可见对上传文件的类型,内容都没有限制,jpeg,jmx都可以上传。 

medium level

使用中级时,它将在上传时检查客户端报告的文件类型。

提示只能上传jepg和png,其他格式文件会被拒绝上传。

上传jepg成功。 

 Hight level

从客户端收到文件后,服务器将尝试调整请求中包含的任何图像的大小

源码解析:

PHP语言编写的,用于上传图片文件。在上传文件之前,代码首先检查文件是否符合要求。要求包括文件类型必须为“jpg”、“jpeg”或“png”,文件大小应小于100KB,且必须是合法的图像文件。如果文件符合要求,代码将把文件移动到上传文件夹中并打印出上传成功的信息,否则,代码将打印出错误信息并拒绝上传该文件。

 impossible

这将检查到目前为止所有级别的所有内容,然后重新编码图像。这将创建一个新图像,从而剥离 任何“非图像”代码(包括元数据)。

(比上一个级别多了重新编码图像)

可以看到文件被重新命名了。 

 源码解析:

实现了一个文件上传功能,主要功能包括:

- 检查 Anti-CSRF 令牌,确保表单提交来源正确。
- 获取上传文件的相关信息,包括文件名、扩展名、大小、类型、临时文件路径等。
- 定义上传文件的目标路径和文件名,将上传文件转移到目标路径下。
- 对上传的图片进行转换和处理,去除元数据信息。
- 对上传文件进行格式和大小的校验,只接受 JPEG 或 PNG 格式,大小不超过 100KB。
- 最终输出上传结果,包括成功或失败的提示信息,以及上传成功后的文件下载链接。

其中主要函数和方法的作用如下:

- `checkToken`:检查 Anti-CSRF 令牌,确保表单提交来源正确。
- `getimagesize`:获取图片的尺寸和类型。
- `imagecreatefromjpeg`:从 JPEG 格式的文件中创建一个新的图像。
- `imagecreatefrompng`:从 PNG 格式的文件中创建一个新的图像。
- `rename`:将文件重命名或将一个文件移动到新位置。
- `unlink`:删除文件。

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

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

相关文章

STM32——06-STM32电动车报警器

项目需求 点击遥控器 A 按键,系统进入警戒模式,一旦检测到震动(小偷偷车),则喇叭发出声响报警, 吓退小偷。 点击遥控器 B 按键,系统退出警戒模式,再怎么摇晃系统都不会报警&#xff…

SD va01/02 保存时,产生销售订单号后的增强

业务对接外围系统,在SAP下销售订单,要求实时传递到外围系统。要求先要有销售订单编号 策略 在销售订单保存后找一处增强,并做一个日志。 日志如下: 对象类型,凭证编号序列,外围系统编号,状态…

如何快速完成TensorRT模型生成和加速

0. 简介 之前作者在《深度学习之从Python到C》介绍了一些比较传统的方法,主要侧重介绍了如何将pth和pytorch传统形式文件转化为onnx的文件,这个部分的内容,也可以主要看一下《PyTorch模型部署:pth转onnx跨框架部署详解代码》这个…

江山变压器:以数据驱动决策,CRM铸就智能制造之「变」

浙江江山变压器股份有限公司(以下简称“江变”),创始于1969年,全国变压器行业协会理事单位、全国输配电“十三五”规划的5家起草单位之一,被列入国家千家名牌培育工程。 公司主要客户为国家电网、南方电网、五大发电集团,产品远销…

微信小程序设置 本地图片为背景图

微信小程序 通过wxss进行设置 背景图报错 经查询,发现微信小程序中,将网络图片或base64图片设置为背景图片可正常显示,将本地图片设置为背景图片则不能显示,解决方法有三种,个人采用的是第三种方法。 1. 本地图片转换…

私有云和公有云是什么?有什么区别?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、私有云和公有云是什么? 1、私有云是什么? 2、公有云是什么? 二、举个例子 1、私有云 2、公…

内网渗透—Linux上线

内网渗透—Linux上线 1. 前言2. 下载插件3. CS配置3.1. 客户端配置3.1.1. 导入插件文件3.1.2. 配置监听 3.2. 服务端配置3.2.1. 导入配置文件 3.3. 生成木马3.3.1. 修改cna文件3.3.2. 修改后效果 3.4. 执行木马 1. 前言 默认情况下CS是不支持上线Linux的,只支持上线…

媒介易教你海外品牌推广:如何选择适合的新闻通稿发布平台?

在进行海外品牌推广时,选择合适的海外新闻通稿发布第三方平台是提高品牌曝光度和影响力的重要一环。这些平台可以帮助企业将新闻内容传播到全球范围内的媒体和受众,为品牌推广提供更广阔的机会。然而,选择合适的发布平台并不容易,…

乐盒开源盲盒uniapp源码系统

源码我也没测试过小白就不要尝试了 下载下来,之后,通过 node 安装如下依赖,即可查看效果: npm install uni-simple-router # 或者:yarn add uni-simple-router npm install uni-simple-router npm install uni-read…

图解数据结构--栈的实现-C语言版本--源码

目录-总 -分- 总结构 图片可视化 总源码1.头文件介绍---分2.节点的实现3.栈顶栈底4.函数的提前声明5. 栈 ---初始化栈6. 栈 ---进栈7.栈 --- 遍历8.栈 --- 是否为空9.栈 --- 出栈10总结 图片可视化 总 源码 /*time 2023年6月12日12:39:06auther yzmcntent stract 栈 */#inclu…

行业报告 | 企业AIGC商业落地应用研究报告

原创 | 文 BFT机器人 01 AIGC(生成式人工智能)定义 02 洞观:AIGC市场全貌与供应商的摩拳擦掌 生成式人工智能技术的落地已经远远超出了商业化的进程 在企业现有数字化作业体系中切入,成为AIGC率先落地的存量场景 和SaaS同根的生成…

破坏双亲委派机制(自定义类加载器)

jvm中讲过,一个类的创建是要经历类加载器的,那么我们来讲讲如何自定义类加载器。 jvm优先级最高的就是自定义类加载器,为什么这么说呢?我们来看看类加载器的源码: 首先我们解释一下这个方法做了什么,要求返…

网络套接字编程

之前我们粗浅的认识了一下网络的一些知识,比如OSI七层模型,TCP/IP四层模型,那么我们具体怎么实现两台主机的交互呢? 在学习这些之前,我们需要准备一些预备知识。 目录 预备知识 1:认识源IP地址和目的IP地址 2&…

matlab字符串的操作方法

一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符,字符串可以由0个或多个字符组成。下面是一些字符串的操作方法 (1)字符串的创建 MATLAB中创建字符串非常简单,将字符串中的字符放到一对…

Jmeter接口之间的动态关联(同一线程组和跨线程组)

目录 前言: 动态关联提取cookie 1.同一线程组里的请求之间进行动态关联 2.跨线程组之间的动态关联 前言: 在进行接口测试时,有时候需要将一个接口的返回值作为参数传递给另一个接口,这就需要用到动态关联。JMeter提供了丰富的…

Haproxy负载均衡集群(时间能回答少年的所有不解)

文章目录 一、Haproxy的基础了解1.常用的负载均衡调度器2.Haproxy 应用相比较其他的优缺点3.Haproxy的特性4.LVS、Nginx、HAproxy的区别 二、Haproy负载均衡部署1.实验前准备2.实验的具体操作步骤步骤一:部署haproxy负载均衡调度器步骤二:Nginx节点服务器…

MySQL——深入理解

前言 MySQL——深入理解主要包括MySQL的存储引擎、索引以及索引对数据库操作的性能优化、SQL优化、视图、存储过程、存储函数、触发器、锁、innoDB引擎的结构原理和数据库的相关管理操作。在这篇文章中,荔枝也是且学且整理,希望能帮助到有需要的小伙伴吧…

Esxi6给虚拟机磁盘扩容

需求 因为最初磁盘规划没想好,导致磁盘给的太小,很快磁盘被用满了,所以需要把该磁盘扩容。 我们这里尝试将/home分区由原来的45GB增加50GB,所以首先我们需要将整个虚拟机扩容50GB,然后再把这50GB全部分给/home分区&a…

前端网址收藏

1.图标库 ByteDance IconPark

WebGL的一些Bug

一、TypeErrpr,Cannot set properties of undefined("setting 1") at _JS_WebRequest_Create(...) 类似这样的问题 解决方案1:可能是BestHTTP插件导致的,打开BestHttp插件目录,找到BestHTTP/Plugins/WebGL目录文件夹下的&#xff…