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.rhkb.cn/news/276689.html

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

相关文章

(三)丶RabbitMQ的四种类型交换机

前言:四大交换机工作原理及实战应用 1.交换机的概念 交换机可以理解成具有路由表的路由程序,仅此而已。每个消息都有一个称为路由键(routing key)的属性,就是一个简单的字符串。最新版本的RabbitMQ有四种交换机类型&a…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Grid)

网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 仅支持GridItem…

【算法专题--双指针算法】leetcode--283. 移动零、leetcode--1089. 复写零

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 前言1. 移动零&#xff0…

使用opencv进行图片分析

opencv学习 一、配置环境并打开编译器 配置opencv在你的任意一个盘里创建一个专属于opencv的文件夹便于学习与整理 打开控制台winr输入cmd,进入后输入conda activate opencv,进入环境以后进入你所设置的opencv文件的盘,我的是D盘&#xff0…

C++_学习String

1.标准库中的string类 1. 字符串是表示字符序列的类 2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性 3. string 类是使用 char( 即作为它的字符类型,使用它的默…

MATLAB编译器配置:MinGW

使用 MATLAB 2022b版本,查询编译器时如上,想安装个MinGW编译器,自带的附加资源管理不好使,只能换个别的法子,经过一些参考,总结如下。 步骤1.在这里下载一个MinGW.最新版本是10.3.0.然后默认安装&#xff…

音频占用磁盘空间太多 需要把mp3音频转aac音频缩小占用空间 应该怎么操作?

一:什么是aac格式? aac是一种音频压缩格式,它是MPEG-2标准下的一种音频压缩方式,也可以作为HE-AAC,AAC或AAC-LC格式使用,是音频压缩领域中的一种重要格式。与MP3的比较,aac在保证音质的同时可以…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十五)-UL-TDOA 定位

前言 3GPP NR Positioning 5G定位标准:3GPP TS 38.305 V18 3GPP 标准网址:Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读(一)-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读(…

jenkin部署spring boot项目【从0到1】

写在前面,遇到的很多错误 本来想用docker启动Jenkins的,也这样做了,但是遇到了一个非常严重的问题,就是mvn命令在docker里面不生效,然后就修改文件,但是发现vi不存在,好的。接着用yum安装vi工具…

Windows蓝牙驱动开发之模拟HID设备(一)(把Windows电脑模拟成蓝牙鼠标和蓝牙键盘等设备)

by fanxiushu 2024-03-14 转载或引用请注明原作者 把Windows电脑模拟成蓝牙鼠标和蓝牙键盘,简单的说,就是把笨重的PC电脑当成鼠标键盘来使用。 这应该是一个挺小众的应用,但有时感觉也应该算比较好玩吧, 毕竟实现一种一般人都感觉…

Selenium 自动化 —— 使用WebDriverManager自动下载驱动

上一篇文章 入门和 Hello World 实例 中,我们提供了一个最简单的 Selenium 上手的例子。 但是某一天,突然发现相同的代码居然运行报错了。这是怎么回事呢? 日志排查 日志中其实提示的很明显了:Chrome浏览器和Chrome WebDriver的…

国产Copilot--通义灵码安装教程

文章目录 在 Visual Studio Code 中安装通义灵码步骤1步骤2步骤3步骤4 参考 在 Visual Studio Code 中安装通义灵码 通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解…

Unity开发一个FPS游戏之二

在之前的文章中,我介绍了如何开发一个FPS游戏,添加一个第一人称的主角,并设置武器。现在我将继续完善这个游戏,打算添加敌人,实现其智能寻找玩家并进行对抗。完成的效果如下: fps_enemy_demo 下载资源 首先是设计敌人,我们可以在网上找到一些好的免费素材,例如在Unity…

NCV7356D1R2G接口集成芯片中文资料PDF数据手册参数引脚图规格书价格图片

产品概述: NCV7356 是一款用于单线数据链路的物理层器件,能够使用多种具碰撞分解的载波感测多重存取 (CSMA/CR) 协议运行,如博世控制器区域网络 (CAN) 2.0 版。此串行数据链路网络适用于不需要高速数据的应用,低速数据可在物理介…

nginx gzip性能优化 —— 筑梦之路

对比使用和不使用gzip static处理 1. 不使用 gzip static 时的 gzip 处理 如果你不使用 gzip_static 而只是 "gzip on",它每次都会被压缩并发送。 虽然它实际上可能缓存在内存中,但传统观点是 "每次都会执行压缩处理,因此 CP…

Hello,Spider!入门第一个爬虫程序

在各大编程语言中,初学者要学会编写的第一个简单程序一般就是“Hello, World!”,即通过程序来在屏幕上输出一行“Hello, World!”这样的文字,在Python中,只需一行代码就可以做到。我们把这第一个爬虫就称之为“HelloSpider”&…

Kotlin:runBlocking导致App应用出现ANR问题实例

runBlocking简介 runBlocking 是常规函数; runBlocking 方法会阻塞当前线程来等待; runBlocking 的主线程会一直 阻塞 直到 runBlocking 内部的协程执行完毕。 runBlocking导致App应用出现ANR问题实例的效果 点击页面上的 刷新按钮 调用 refreshByrunBlo…

【云原生-kubernetes系列】--kubernetes日志收集

1、ELK架构 1.1、部署ES集群 https://mirrors.tuna.tsinghua.edu.cn/elasticstack/apt/7.x/pool/main/e/elasticsearch/ 1、下载软件包 rootes-server1:~# wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/apt/7.x/pool/main/e/elasticsearch/elasticsearch-7.12.0-…

媒体播放器及媒体服务器软件Plex

什么是 Plex ? Plex 是一套媒体播放器及媒体服务器软件,让用户整理在设备上的有声书、音乐、播客、图片和视频文件,并通过流式传输至移动设备、智能电视和电子媒体播放器上。Plex 可用于 Windows、Android、Linux、OS X和 FreeBSD。 在接触 N…

基于SpringBoot和Echarts的全国地震可视化分析实战

目录 前言 一、后台数据服务设计 1、数据库查询 2、模型层对象设计 3、业务层和控制层设计 二、Echarts前端配置 1、地图的展示 2、次数排名统计 三、最终结果展示 1、地图展示 2、图表展示 总结 前言 在之前的博客中基于SpringBoot和PotsGIS的各省地震震发可视化分…