UPLOAD-LABS靶场[超详细通关教程,通关攻略]
----------------------------------------
靶场环境:
下载链接:
https://codeload.github.com/c0ny1/upload-labs/zip/refs/heads/master
使用小皮集成环境来完成这个靶场 将文件放到WWW目录下就可以进行访问
----------------------------------------
靶场简介:
Upload-labs是一个使用PHP语言编写,专门用于渗透测试和CTF中遇到的各种文件上传漏洞的靶场。目前一共20关,每个关都包含着不同上传方式。
文件上传漏洞:用户可以越过其本身权限,向服务器上传可执行的动态脚本文件,例如木马、病毒、恶意脚本或者WebShell等。文件上传漏洞本身就是一个危害巨大的漏洞,WebShell更是将这种漏洞的利用无限扩大。
----------------------------------------
目录
靶场环境:
靶场简介:
less1:
less2:
less3:
less4:
less5:
less6:
less7:
less8:
less9:
less10:
less11:
less12:
less13:
less14:
less15:
less16:
less17:
less18:
less19:
----------------------------------------
less1:
上传我们的php一句话木马文件
发现不允许我们上传此类型的文件,我们尝试burp抓包试试
发现抓不到数据包,查看下源代码,发现我们可以修改我们的php文件为jpg格式再试试
发现可以提交,我们在抓一下jpg的包
发现可以抓到,然后在将后缀改回php格式然后放包试试看
上传成功,右击图片新窗口打开得出php一句话木马文件内容
----------------------------------------
less2:
上传我们的php一句话木马文件:
提示我们文件类型不正确,所以我们继续改为jpg格式开启抓包
修改格式为image/jpeg 后缀为php
上传成功,右击图片打开新窗口打开得出php一句话木马文件内容
----------------------------------------
less3:
上传我们的php一句话木马文件
发现不允许我们上传以下格式文件所以我把php文件改为php3/php5 进行绕过
上传成功,右击图片新建窗口打开得到我们的php一句话木马文件内容
----------------------------------------
less4:
查看源码我们发现可以看到,这关的黑名单过滤的是相当的多,基本将我们的后缀都过滤掉了这时候该怎么进行绕过呢
这时候补充一个知识点: .htaccess文件解析漏洞,.htaccess参数常见配法有以下几种:
AddHandler php5-script .jpgAddType application/x-httpd-php .jpgSethandler application/x-httpd-php
Sethandler
将该目录及子目录的所有文件均映射为php文件类型。Addhandler
使用 php5-script 处理器来解析所匹配到的文件。AddType
将特定扩展名文件映射为php文件类型。
简单来说就是,可以将我们所的文件都解析成php或者是特定的文件解析为php
那么我们创建一个.htaccess文件写上内容进行上传
AddType application/x-httpd-php .jpg
上传成功
那么我们再将我们的一句话木马上传,当然在这我们将文件后缀改为jpg格式,反正我们上传后的文件都会被解析为php,而且jpg也不会被过滤掉
右击图片新建窗口查看得到我们的php一句话木马文件内容
----------------------------------------
less5:
查看源码发现少了大小写.
那我们就将我们的文件后缀改为Php试试看
上传成功,右键图片查看得到php一句话木马文件内容
----------------------------------------
less6:
查看源代码发现少了首尾去空
因为windows的系统是自动去除空格的,所以我们开启抓包
在php后面加上空格然后放包然后上传成功
右击图片新建窗口查看得到php一句话木马文件内容
----------------------------------------
less7:
查看源代码发现少了删除文件名末尾的点
所以我们上传文件然后开启抓包
在php文件末尾加上点
放包发现上传成功
右击图片新建窗口发现得到php一句话木马文件内容
----------------------------------------
less8:
查看源代码发现少了去除字符串::$DATA
上传我们的文件,开启抓包
在php文件末尾加上::$DATA
然后放包,发现上传成功
右击图片新窗口查看得到php一句话木马文件内容
----------------------------------------
less9:
查看源码发现有删除文件名末尾的点和首尾去空
所以我们开启抓包
在文件末尾加上点 空格 点 因为末尾的点会被去除,php后面的点会被windows默认为空
放包,发现上传成功
右击图片新建窗口打开得到php一句话木马文件内容
----------------------------------------
less10:
查看源代码发现定义了好多黑名单
所以我们先正常上传一个php文件
发现上传成功右击图片看看
发现php文件后缀没了 所以我们开启抓包
在php里面在嵌套一个php进行绕过
放包查看
上传成功,右击图片新建窗口查看得到php一句话木马文件内容
----------------------------------------
less11:
这一关需要用%00截断,发现环境有问题,不显示结果,所以我们借助一下ctfhub里面的文件上传漏洞;来解这道题
打开ctfhub打开环境
ctfhub.com/
访问环境页面
我们开启抓包试试
发现指定了文件保存地址,那我们给他一个1.php,在使用%00将他截断
放包后上传成功
访问upload/2.php得到一句话木马文件内容
在使用系统命令查找文件发现flag文件
cat查看右键查看源代码发现flag
----------------------------------------
less12:
查看源代码,和第十一关对比,发现接受值变成了post,那么思路就和第十一关一样,不过post方式不会自行解码,所以要对%00进行urldecode编码
编码后放包上传成功
右击图片新建窗口查看得到php一句话木马文件内容
----------------------------------------
less13:
题目说让我们上传图片马我们访问一下(图片马自行获得)
右键新建窗口查看
只能查看图片,所以我们要配合文件包含漏洞去解
变量file就是我们要给的值所以我们访问图片地址
以post传输数据参数为pass执行看看
----------------------------------------
less14:
14关15关都和13关一样 上传我们的图片马
右键新建窗口打开
访问我们的文件包含 包含上传的图片信息
以post传输数据参数为pass执行看看
----------------------------------------
less15:
按照上面步骤即可
----------------------------------------
less16:
上传发现不行了,上传不了了
因为我们的图片有一句话木马,这关他会把我们的文件顺序打乱在重新组合成一张图片然后在返回回来 这里我们使用二次渲染
发现上传成功右键查看地址访问文件包含
执行成功 我们访问文件试试
访问成功,我们连接一句话木马使用中国菜刀app
添加查看信息
----------------------------------------
less17:
我们查看源码看到一个时间
发现是判断我们的文件符不符合要求而需要时间
所以我们去找一个php代码进行条件竞争
上传我们创建的2.php
发现不行尝试抓包
发送到intruder
无限上传:这时候我们去upload里面去访问它
来到浏览器一直刷新访问直到创建成功123.php
创建好123.php之后访问即可
----------------------------------------
less18:
题目为上传一个图片马 尝试上传图片马来看看
可以上传成功 来看看文件包含
可以访问试试访问文件信息
----------------------------------------
less19:
尝试上传文件看看
发现都不行
试试在文件后面加入一个点呢
上传成功右键新建窗口查看图片得到php一句话木马文件内容
----------------------------------------
文件上传本身是一个正常的业务需求,对于网站来说,很多时候也确实需要用户将文件上传到服务器,比如:上传图片,资料。
文件上传漏洞不仅涉及上传漏洞这个行为,还涉及文件上传后的进一步解析和处理,以及文件的下载,如果服务器的处理逻辑设计的不够全面,就会导致严重的后果
最简单的文件上传漏洞是指用户上传了一个可执行的脚本文件,并且根据此脚本获得了执行服务器命令的能力。
相关文章:

UPLOAD-LABS靶场[超详细通关教程,通关攻略]
---------------------------------------- 靶场环境: 下载链接: https://codeload.github.com/c0ny1/upload-labs/zip/refs/heads/master 使用小皮集成环境来完成这个靶场 将文件放到WWW目录下就可以进行访问 ------------------------------------…...
测试面试宝典(三十七)—— 接口测试中的加密参数如何处理?
1)先了解接口使用的加密方式(md5、rsa...) 2)检查接口测试工具是否支持这种加密方式,如果支持的话,直接使用对应功能就行了(比如Jmeter支持md5);如果加密方式是公司内部特有的算法,可以在接口测试工具中调…...

秋招突击——7/23——百度提前批面试准备和正式面试
文章目录 引言一面准备面试预演一1、讲一下hashcode()和equals()关系2、equals()和有什么区别3、讲一下重载和重写的区别4、讲一下深拷贝、浅拷贝的区别5、讲一下Java异常的基类,运行时异常举几个例子,什么情况下会出现?6、讲一下Java中线程的…...

学习日记:数据类型2
目录 1.转义字符 2.隐式类型转换 2.1 强制类型转换 2.2 不同类型间赋值 3.运算符 表达式 3.1 算术运算符 3.2 算术运算优先级 3.3 赋值运算 3.3.1 不同类型间混合赋值 3.4 逗号运算 4.生成随机数 5. 每日一练 1.转义字符 \n 表示换行 \t …...
Django Web框架——05
文章目录 admin 后台数据库管理注册自定义模型类修改自定义模型类的展现样式模型管理器类再谈Meta类 数据表关联关系映射一对一映射一对多映射多对多映射 cookies 和 sessioncookiessessionCookies vs session admin 后台数据库管理 django 提供了比较完善的后台管理数据库的接…...

【React】项目的目录结构全面指南
文章目录 一、React 项目的基本目录结构1. node_modules2. public3. src4. App.js5. index.js6. .gitignore7. package.json8. README.md 二、React 项目的高级目录结构1. api2. hooks3. pages4. redux5. utils 三、最佳实践 在开发一个 React 项目时,良好的目录结构…...

Django学习(二)
get请求 练习: views.py def test_method(request):if request.method GET:print(request.GET)# 如果链接中没有参数a会报错print(request.GET[a])# 使用这个方法,当查询不到参数时,不会报错而是返回你设置的值print(request.GET.get(c,n…...
Java引用类型
强软弱虚 以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的 SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ? PhantomReference 和 WeakReference 究竟有何不同 ThreadLocal 和 Netty ByteBuf中使用到的引用类型 https://w…...
ubunto安装redis
更新包管理工具 sudo apt update 安装Redis sudo apt install redis-server Redis已经安装并且服务已启动 sudo systemctl status redis-server Redis开机启动项 sudo systemctl enable redis-server 可以编辑配置文件 /etc/redis/redis.conf,然后重启Redis服务 比如…...

【odoo17 | Owl】前端js钩子调用列表选择视图
概要 在我们选择多对一或者多对多字段的时候,经常看到可以弹出列表弹窗让人一目了然的效果,效果如下: 那么,这种效果是odoo本身封装好的组件,我们在平时的前端界面开发的时候,既不是后端视图的情况下&#…...

MATLAB基础:函数与函数控制语句
今天我们继续学习Matlab中函数相关知识。 API的查询和调用 help 命令是最基本的查询方法,可查询所有目录、指定目录、命令、函数。 我们直接点击帮助菜单即可查询所需的API函数。 lookfor 关键字用于搜索相关的命令和函数。 如,我们输入lookfor inpu…...

2024.7.30 搜索插入位置(二分法)
题解 二分法 left和right标记二分区间 ans标记n,因为存在大于所有数的可能。 var searchInsert function(nums, target) {const n nums.length;let left 0, right n - 1, ans n;while (left < right) {//计算中位数let mid ((right - left) >> 1)…...

Socket通信(C++)
文章目录 什么是SocketSocket通信过程C Socket通信APIint socket(int domain, int type, int protocol);int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);struct sockaddrstruct sockaddr_unstruct sockaddr_in / struct sockaddr_in6 int connect(int …...

小白学大模型:LLaMA-Factory 介绍与使用
最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…...

java算法day26
java算法day26 207 课程表208 实现Trie(前缀树) 207 课程表 这题对应的知识是图论里的拓扑排序的知识。从题意就可以感受出来了。题目说如果要学习某课程,那么就需要先完成某课程。 这里我描述比较复杂的情况:课程与课程之间也有可能是多对一的场景或者…...

docker笔记7-dockerfile
docker笔记7-dockerfile 一、dockerfile介绍二、dockerfile指令三、构建自己的镜像 一、dockerfile介绍 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。 以下是常用的 Dockerfile 关键字的完整列表和说明: 二、docker…...
Spring-cloud Alibaba组件--Dubbo
远程调用技术 RestFul风格 基于HTTP协议实现,而HTTP是一种网络传输协议,基于TCP,规定了数据传输的格式。 RPC协议 Remote Produce Call 远程过程调用,类似的还有 RMI ( remote method invoke)。自定义数…...
右值引用--C++11
左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现在开始我们 之前学习的引用就叫做左值引用。无论左值引用还是右值引用,都是给对象取别名。 什么是左值?什么是左值引用?…...

这样做外贸报价表,客户看了才想下单
报价,是外贸业务中最重要的一步,作为外贸人,不会做报价表可不行。有人说,直接在邮件里回复价格不就好了?是的,产品简单的可以这么做,但你也不能忽视报价表的价值,一份完美的价格表对…...

Swift学习入门,新手小白看过来
😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...