复现文件上传漏洞

一、搭建upload-labs环境

将下载好的upload-labs的压缩包,将此压缩包解压到WWW中,并将名称修改为upload,同时也要在upload文件中建立一个upload的文件。

然后在浏览器网址栏输入:127.0.0.1/upload进入靶场。

第一关

选择上传文件,这时我们会发现此时有提示框弹出,在弹框中说明请上传.jpg|.png|.gif类型的文件

这时我们可以查看代码

通过代码我们可以看出该用于限制文件过滤的函数是通过JavaScript运行的,所以我们可以通过浏览器的设置-->隐私和安全--->找到Javascript将其关掉

此时,我们会发现显示源码什么的都是点不动的,但是选择文件是可以点的动的,所以此时我们可以上传文件,会发现上传成功。

第二关

我们试着上传一下第一关所用的web.php,这时会给我们提示:文件类型不正确,请重新上传!,说明这一关不是通过JavaScript运行的,同时在代码里面也没有找到checkFile(),所以第二关有很大的概率是在后端验证的。我们通过Burp Suite进行抓包

这里我们可以看到内容协议是 Content-Type: application/octet-stream,所以我们可以传到Repeater对Content-Type进行修改,并将内容协议改为image/jpeg,在尝试是否上传成功

可见这是成功的。

第三关(黑名单)

查看提示信息,不允许上传.asp,.aspx,.php,.jsp后缀文件!

 查看代码

php文件的后缀一般为:phtml、php、php3、pHtml。

此时我们可以使用Burp Suite进行抓包,并对文件后缀进行修改为php3就可以成功。

第四关

查看提示

基于黑名单的方式,这一关利用重写文件解析规则绕过    上传.htaccess文件

在文件中书写“Sethandler application/x-httpd-php”,然后进行上传.htaccess文件,但是该文件和.jpg要在同一个文件夹下。

第五关

查看提示

 将后缀.php修改为.PHP,然后进行上传

第六关

查看提示

用Burp Suite中进行抓包,并且在Burp Suite中修改其上传名加上 “空格” 进行绕过代码

 ​​​​​​

第七关

查看提示

这一关还是比较好过的,可以在Burp Suite中对文件的后缀加一个点,例如:“.php.. ”就可以绕过。

 

第八关

查看提示

这里没有过滤 ::$DATA 利用 Windows文件流特性绕过 构造8.php::$DATA 会被保存为8.php

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

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

相关文章

浅易理解:卷积神经网络(CNN)

浅易理解卷积神经网络流程 本文的目录: 1 什么卷积神经网络 2 输入层 3 卷积层 4 池化层 5 全连接层 传统的多层神经网络只有 输入层、隐藏层、输出层 卷积神经网络(CNN): 在多层神经网络的基础上,加入了更加有效的特征学习部分…

spacy进行简单的自然语言处理的学习

自然语言处理基本概念 概念:自然语言处理,是让机器理解人的语言的过程。 作用:通过使用自然语言处理,机器可以理解人的语言,从而进行语义分析,例如:从一句话中判断喜怒哀乐;从一段文…

汽车电子零部件(3):ADAS前视感知系统FLC

前言: 比如车道保持和车道改变这种场景,如何进行车道的识别,如何进行周围车辆的识别,这算是ADAS中的一个场景,其中就会用到FLC前视感知系统。还有比如前向物体识别,前向车辆识别等。 再往大里说那就是车联网了: 除了前向也可能有其他部位

opencv安装(C++)并配置vs

准备工作: 1.opencv安装包(此教程使用4.9) 2.visual studio(此教程使用vs2019) opencv安装: 1、下载opencv: 1.1 官网下载:Releases - OpenCV 1.2 百度网盘:链接:https://pan.baidu.com/s/1NpEoFjbbyQJtFD…

【Java】List, Set, Queue, Map 区别?

目录 List, Set, Queue, Map 区别? Collection和Collections List ArrayList 和 Array区别? ArrayList与LinkedList区别? ArrayList 能添加null吗? ArrayList 插入和删除时间复杂度? LinkedList 插入和删除时间复杂度&…

【C++】string进一步介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 迭代器2.1 反向迭代器2.2 const对象迭代器 3. Capacity3.1 size和length3.2 max_size3.3 capacity3.4 clear3.5 shrink_to_fit (了解即可)3.6 reserve3.7 resize 4. Element access4…

Java面向对象案例之描述专业和学生(4)

类的方法图 学生类: 属性:学号,姓名,年龄,所学习的专业方法:学习的方法,描述学习状态。描述内容包括姓名、学号、年龄、所学习的专业信息 专业类: 属性:专业编号&#xf…

Vue 3中的reactive:响应式状态的全面管理

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【计算机视觉】二、图像形成——实验:2D变换编辑(Pygame)

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)2D变换编辑器0. 程序简介环境说明程序流程 1. 各种变换平移变换旋转变换等比缩放变换缩放变换镜像变换剪切变换 2. 按钮按钮类创建按钮 3. Pygam…

基于PHP的数字化档案管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的数字化档案管理系统 一 介绍 此数字化档案管理系统基于原生PHP,MVC架构开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 php(mvc)mysqlbootstrapphpstudyvscode 二 功能 …

SwiftUI的Alert使用方式

SwiftUI的Alert使用方式 记录一下SwiftUI的Alert使用方式,比较简单直接上代码 import SwiftUIstruct AlertBootCamp: View {State var showAlert falsevar body: some View {Button {showAlert.toggle()} label: {Text("alert show")}/// 单按钮 // …

python知识点总结(一)

这里写目录标题 一、什么是WSGI,uwsgi,uWSGI1、WSGI2、uWSGI3、uwsgi 二、python中为什么没有函数重载?三、Python中如何跨模块共享全局变量?四、内存泄露是什么?如何避免?五、谈谈lambda函数作用?六、写一个函数实现字符串反转,尽可能写出你知道的所…

面试官:volatile如何保证可见性的,具体如何实现?

写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码…

电脑自带dll修复在哪里打开呢?马上教会你

由于各种原因,电脑可能会出现一些问题,其中之一就是dll文件丢失。Dll文件是动态链接库文件,它们包含了许多程序运行所需的函数和资源。当这些文件丢失或损坏时,可能会导致程序无法正常运行或出现错误提示。本文将介绍电脑dll文件丢…

Fork - 将 GitHub 的某个特定仓库复制到自己的账户下

Fork - 将 GitHub 的某个特定仓库复制到自己的账户下 1. ForeverStrongCheng/OpenCV-tutorials2. Fork -> ForeverStrongCheng/R2CNN_Faster-RCNN_TensorflowReferences 访问仓库页面,点击 Fork 按钮创建自己的仓库。 Fork 是将 GitHub 的某个特定仓库复制到自己…

C语言内存函数详解

文章目录 前言一、memcpy函数(内存拷贝函数)二、memmove重叠拷贝函数三.memset内存设置函数四.memcmp内存比较函数总结 前言 我们之前按学习了C语言标准库中提供了一系列的字符和字符串库函数,接下来我们就学习一下关于内存相关的一些函数。…

LeetCode 面试经典150题 26.删除有序数组中的重复项

题目: 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量…

AVCE - AV Evasion Craft Online 更新 8 种加载方式 - 过 WD 等

免责声明:本工具仅供安全研究和教学目的使用,用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任,且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规,并理解并同意本声明…

【Linux-网络编程】

Linux-网络编程 ■ 网络结构■ C/S结构■ B/S结构 ■ 网络模型■ OSI七层模型■ TCP/IP四层模型 ■ TCP■ TCP通信流程■ TCP三次握手■ TCP四次挥手 ■ 套接字:socket 主机IP 主机上的进程(端口号)■ TCP传输文件 ■ 网络结构 ■ C/S结构…

基于java+springboot开发的计算机毕业设计网文论坛管理系统设计与实现【附源码】

基于javaspringboot开发的计算机毕业设计网文论坛管理系统设计与实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联…