uploads-labs靶场(1-10关)

一、搭建环境:

下载upload-labs源代码

下载链接:https://codeload.github.com/c0ny1/upload-labs/zip/refs/heads/master

将压缩包解压后的文件名改为upload-labs,然后放入phpstudy\www目录下

二、关卡通关:

1、pass-01(前端绕过):

本关我们需要上传一个webshell到服务器,首先我们先上传一个php文件尝试一下:

上传以后,我们发现此关不允许上传php相关类型的文件:

我们查看源码后:

 此关检验功能在于前端代码,JavaScript进行白名单验证,我们利用浏览器内置的功能禁止JavaScript的运行(我是用的是google浏览器)

随后上传文件:

可以看出来,上传成功。 

同时,我们查看后端源代码中的upload中也看到了web.php被上传进去了。

2、pass-02(对数据包的MIME进行绕过

第二关,我们继续使用第一关的同款方法,随后我们查看界面:

此关提醒文件类型不正确,让我们继续上传文件,所以我们由此猜测,此关的名单验证应该在后端代码中,我们查看源码进行:

分析代码,我们发现此关只允许我们上传代码有关的类型,所以我们使用Burpsuite完成下列关卡,将代理设置为8080端口:

随后我们上传我们的php文件进行抓包处理,

抓包处理后将其设置到repeter模块(以下为代码演示),我们将其类型设置为image/jpeg格式:

send过后我们查看burpsuit中的第二关:

已经上传成功,同时我们在vscode中查看upload文件夹,同样也被上传成功。

 3、pass-03(黑名单禁止):

第三关我们首先查看提示,发现禁止我们上传php,jsp等文件:

但通过查询资料我们可以了解,php的扩展名还有.php3和.php5以及.phtml的形式,我们上传web.php3后:

上传成功。

4、pass-04(.hataccess绕过):

首先查看提示,本关继续使用黑名单,禁止下列文件格式:

限制特别多,但是我们可以想到一种更奇特的方法(即.htaccss文件):

通过查询文件上传漏洞之.htaccess文件解析漏洞_.htaccess 漏洞-CSDN博客 的博主资料,我们找到了一句话:

Sethandler application/x-httpd-php

查看作用后,发现这句话的作用是将该目录所有文件均映射为php文件类型,所以我们先上传.htaccess文件,随后再上传我们的jpg文件(jpg文件要和.hataccess文件在同一个目录下),查看后我们发现uploads已经被传上去。

5、pass-05(大小写绕过)

首先查看提示,很明显绕过了上一关我们所用的.hataccess文件。

我们查看源码,发现尽管本关有许多限制,但他忘记绕过大小写:

 我们上传.PHP形式的代码:

 成功绕过。

6、pass-06(空格绕过):

第六关我们分析代码后,发现此关只有三处限制,相对于第五关来说, 没有限制空格

我们抓包进行处理,随后将web.php文件加空格:

此时,绕过成功。

7、pass-07(.绕过):

将第六关和第七关源码进行对比,我们看到第六关将.绕过,第七关并没有绕过,所以我们是否可以猜测,"."起的作用是否和第六关" "起的作用一样。

我们继续抓包进行尝试:

 8、Pass-08(::$DATA字符绕过)

继续对比,我们发现,相比于第六七关,此关没有进行data字符的绕过,所以我们继续抓包

 ​​​​​​​​​​​​​​​​​​​​​

成功。

9、pass-09:

这关我们结合五六七八关,几乎过滤了所以的条件绕过,所以我们考虑可以使用逻辑绕过,先绕过.再绕过空格。

web.php. .(文件格式) #先跳过".",再跳过" ",最后剩一个".",与第七关类似,绕过本关。 

 10、pass-10(双写绕过):

继续分析代码,我们可以看出,此关有一个替换代码,可以将php等关键字符用" " 替换。所以我们可以考虑使用之前在xss关卡中使用的双写方法:

修改文件类型为以下格式:

web.pphphp

随后,我们检查:

绕过成功。 

后续关卡会尽快补充。

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

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

相关文章

B. Array Fix

思路&#xff1a;我们倒着看&#xff0c;首先判断以下当前元素有没有被操作过&#xff0c;被操作过的话&#xff0c;那么需要改为操作后的数&#xff0c;然后跟当前数的前一个数进行比较&#xff0c;如果a[i] < a[i - 1]的话&#xff0c;那么需要将a[i - 1]拆分&#xff0c;…

【SpringBoot】头条新闻项目实现CRUD登录注册

文章目录 一、头条案例介绍二、技术栈介绍三、前端搭建四、基于SpringBoot搭建项目基础架构4.1 数据库脚本执行4.2 搭建SprintBoot工程4.2.1 导入依赖:4.2.2 编写配置4.2.3 工具类准备 4.3 MybatisX逆向工程 五、后台功能开发5.1 用户模块开发5.1.1 jwt 和 token 介绍5.1.2 jwt…

huawei services HK华为云服务

huaweiserviceshk是一种云计算服务&#xff0c;为华为云服务用户提供了多种服务&#xff0c;包括云服务器、数据库、存储、网络等&#xff0c;用户可以根据自己的需求选择不同的服务并支付相应的费用 如何付费呢&#xff0c;这里可以使用441112&#xff0c;点击获取 卡片信息在…

Makefile+OpenOCD开发STM32

准备工作 平台&#xff1a;Windows11&#xff08;Linux&#xff0c;MAC同理&#xff09; 编译链&#xff08;arm-none-eabi-gcc&#xff09;&#xff1a;Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer 下载对应平台工具链并添加到环境变量&#xff0c…

springboot+poi-tl根据模板导出word(含动态表格和图片),并将导出的文档压缩zip导出

springbootpoi-tl根据模板导出word&#xff08;含动态表格和图片&#xff09; 官网&#xff1a;http://deepoove.com/poi-tl/ 参考网站&#xff1a;https://blog.csdn.net/M625387195/article/details/124855854 pom导入的maven依赖 <dependency><groupId>com.dee…

hcie数通和云计算选哪个好?

1. 基础知识与技能要求 数通技术是网络技术的核心&#xff0c;它涉及到网络协议、路由交换、网络安全等多个方面。如果你是一名网络工程师或开发者&#xff0c;想要在数通领域有所建树&#xff0c;你需要具备扎实的基础知识和丰富的实战经验。 云计算则更注重于虚拟化、存储、网…

基于openCV实现的单目相机行人和减速带检测

概述 在计算机视觉项目中&#xff0c;相机标定是一项至关重要的任务&#xff0c;因为它可以校正相机内部参数&#xff0c;消除因镜头畸变等因素导致的图像失真&#xff0c;从而提高后续图像处理和分析的精度。在这个项目中&#xff0c;相机标定的核心功能集成在名为calibratio…

redis的安装与string类型

1. redis的安装 1.1 升级gcc版本 因为centos7.x的gcc版本还是4.8.5&#xff0c;而编译指定的版本是需要5.3以上。 环境部署与安装scl源 yum install gcc cmake -y --部署安装环境 yum install centos-release-scl scl-utils-build -y --安装scl源 安装gcc新版本 yum -y ins…

还原wps纯粹的编辑功能

1.关闭稻壳模板&#xff1a; 1.1. 启动wps(注意不要乱击稻壳模板&#xff0c;点了就找不到右键菜单了) 1.2. 在稻壳模板选项卡右击&#xff1a;选不再默认展示 2.关闭托盘中wps云盘图标&#xff1a;右击云盘图标/同步与设置&#xff1a; 2.1.关闭云文档同步 2.2.窗口选桌面应用…

Vue2+ElementUI表单、Form组件的封装

Vue2ElementUI表单、Form组件的封装 &#xff1a;引言 在 Vue2 项目中&#xff0c;ElementUI 的 el-form 组件是常用的表单组件。它提供了丰富的功能和样式&#xff0c;可以满足各种需求。但是&#xff0c;在实际开发中&#xff0c;我们经常会遇到一些重复性的需求&#xff0c…

16.WEB渗透测试--Kali Linux(四)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;15.WEB渗透测试--Kali Linux&#xff08;三&#xff09;-CSDN博客 1.crunch简介与使用 C…

分布式CAP理论

CAP理论&#xff1a;一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;和分区容错性&#xff08;Partition tolerance&#xff09;。是Eric Brewer在2000年提出的&#xff0c;用于描述分布式系统基本性质的定理。这三个性质在分布式系统…

SQLZoo:SELECT from WORLD Tutorial/zh

name continent area population gdp Afghanistan Asia 652230 25500100 20343000000 Albania Europe 28748 2831741 12960000000 … name:國家名稱 continent:洲份 area:面積 population:人口 gdp:國內生產總值 Country Profile 在這教程中&#xff0c;我們會使用SELECT語句&…

python pytest 最简单的接口自动化测试框架

最近由于工作的原因&#xff0c;需要开发一个接口自动化测试框架&#xff0c;使用pytest框架、数据驱动&#xff0c;并展示直观的测试报告。 具体的开发过程如下&#xff1a; 安装必要的库&#xff1a; pytest&#xff1a;用于编写和运行测试用例。requests&#xff1a;用于发…

FPGA静态时序分析与约束(一)、理解亚稳态

系列文章目录 FPGA静态时序分析与约束&#xff08;二&#xff09;、时序分析 FPGA静态时序分析与约束&#xff08;三&#xff09;、读懂vivado时序报告 文章目录 系列文章目录前言一、概述一、何为亚稳态&#xff1f;二、图解亚稳态三、什么时候亚稳态会导致系统失效&#xff…

Jsch实践(三):如何使用Jsch的ChannelShell类,在远程服务器上执行脚本命令?

如何使用Jsch的ChannelShell类&#xff0c;在远程服务器上执行脚本命令 要使用JSch的ChannelShell类在远程服务器上执行脚本命令&#xff0c;你需要创建一个shell通道&#xff0c;然后向这个通道的输入流发送命令&#xff0c;并读取输出流来获取命令的响应。下面是一个示例代码…

k8s部署hadoop

&#xff08;作者&#xff1a;陈玓玏&#xff09; 配置和模板参考helm仓库&#xff1a;https://artifacthub.io/packages/helm/apache-hadoop-helm/hadoop 先通过以下命令生成yaml文件&#xff1a; helm template hadoop pfisterer-hadoop/hadoop > hadoop.yaml用kube…

apache和tomcat的优化总结概述

一. tomcat 的优化 Tomcat 作为一款广泛使用的 Java Web 应用服务器&#xff0c;其性能优化可以从以下几个方面进行&#xff1a; ① 内存配置优化&#xff1a; 调整JVM堆内存大小&#xff08;-Xms和-Xmx参数&#xff09;&#xff0c;以确保Tomcat在处理大量并发请求时有足够…

Unity PS5开发 天坑篇 之 申请开发者与硬件部署01

腾了好几天终于把PS5开发机调试部署成功, 希望能帮到国内的开发者, 主机游戏PlayStation/Nintendo Switch都是比较闭塞的&#xff0c;开发者账号是必须的。 开发环境有两个部分&#xff0c;一是DEV Kit 开发机, TEST Kit测试机两部分组成&#xff0c;二是Unity的支持库(安装后…

vue3 ref 和 reactive 区别

Vue 3 引入了两种新的响应式 API&#xff1a;ref 和 reactive。这两个 API 都用于创建响应式数据&#xff0c;但它们的使用场景和行为有所不同。 ref 用途&#xff1a;ref 用于创建基本数据类型的响应式引用&#xff0c;如字符串、数字、布尔值等。 使用方式&#xff1a;在模…