当前位置: 首页 > news >正文

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&#xff0c;因为存在大于所有数的可能。 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 介绍与使用

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

java算法day26

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

docker笔记7-dockerfile

docker笔记7-dockerfile 一、dockerfile介绍二、dockerfile指令三、构建自己的镜像 一、dockerfile介绍 Dockerfile是用来构建Docker镜像的构建文件&#xff0c;是由一系列命令和参数构成的脚本。 以下是常用的 Dockerfile 关键字的完整列表和说明&#xff1a; 二、docker…...

Spring-cloud Alibaba组件--Dubbo

远程调用技术 RestFul风格 基于HTTP协议实现&#xff0c;而HTTP是一种网络传输协议&#xff0c;基于TCP&#xff0c;规定了数据传输的格式。 RPC协议 Remote Produce Call 远程过程调用&#xff0c;类似的还有 RMI &#xff08; remote method invoke&#xff09;。自定义数…...

右值引用--C++11

左值引用和右值引用 传统的C语法中就有引用的语法&#xff0c;而C11中新增了的右值引用语法特性&#xff0c;所以从现在开始我们 之前学习的引用就叫做左值引用。无论左值引用还是右值引用&#xff0c;都是给对象取别名。 什么是左值&#xff1f;什么是左值引用&#xff1f;…...

这样做外贸报价表,客户看了才想下单

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

Swift学习入门,新手小白看过来

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…...

如何学习java?

目录 一. 初识Java 1. Java语⾔概述 1.1 Java是什么 1.2 什么是JavaSE&#xff1f;什么是JavaEE? JavaSE(JavaStandardEdition): JavaEE(JavaEnterprise Edition): 主要区别: 1.3 Java语⾔重要性 1.4 Java语⾔发展简史 1.5 Java语⾔特性 1.6 Java开发环境安装 1. …...

2026十大建议考的经济学专业证书有哪些

2026年十大经济学专业证书推荐经济学专业证书能够提升职业竞争力&#xff0c;尤其在数据分析、金融和经济预测领域。以下是2026年值得考取的十大经济学专业证书&#xff0c;包括CDA数据分析师证书等热门选择。1. CDA数据分析师证书CDA数据分析师证书是数据分析领域的权威认证&a…...

ABAP选择屏幕进阶:基于用户交互的动态字段控制

1. 动态选择屏幕的核心价值 在ABAP开发中&#xff0c;选择屏幕&#xff08;Selection Screen&#xff09;是与用户交互的重要界面。传统的静态选择屏幕往往无法满足复杂业务场景的需求&#xff0c;比如当用户选择不同查询维度时&#xff0c;需要展示完全不同的筛选条件。这时候…...

别再纠结剪胀角了!用Abaqus CAE五分钟搞定库伦摩尔模型的材料卡设置(含黏土/砂土参数模板)

别再纠结剪胀角了&#xff01;用Abaqus CAE五分钟搞定库伦摩尔模型的材料卡设置&#xff08;含黏土/砂土参数模板&#xff09; 岩土工程仿真中&#xff0c;材料参数设置往往是新手的第一道门槛。当你在Abaqus中面对十几个输入框时&#xff0c;是否也曾困惑&#xff1a;摩擦角和…...

Ctool JSON工具完全指南:从格式化到Schema生成的完整流程

Ctool JSON工具完全指南&#xff1a;从格式化到Schema生成的完整流程 【免费下载链接】Ctool 程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac 项目地址: https://gitcode.com/gh_mirrors/ct/Ctool Ctool是一款功能强大的程序开发常用工具&…...

LVGL Canvas画布实战:5分钟教你制作一个可交互的简易绘图板

LVGL Canvas画布实战&#xff1a;5分钟教你制作一个可交互的简易绘图板 在嵌入式GUI开发领域&#xff0c;LVGL因其轻量级和高度可定制性成为众多开发者的首选。而Canvas画布控件作为其核心组件之一&#xff0c;能够实现从简单图形绘制到复杂交互界面的各种功能。今天&#xff0…...

Unitree GO2 ROS2 SDK完整指南:5步实现四足机器人智能控制与自主导航

Unitree GO2 ROS2 SDK完整指南&#xff1a;5步实现四足机器人智能控制与自主导航 【免费下载链接】go2_ros2_sdk Unofficial ROS2 SDK support for Unitree GO2 AIR/PRO/EDU 项目地址: https://gitcode.com/gh_mirrors/go/go2_ros2_sdk Unitree GO2 ROS2 SDK为四足机器人…...

如何利用TortoiseSVN高效生成分支对比与历史变更的差异报告

1. TortoiseSVN简介与差异报告的价值 版本控制系统就像代码的时光机&#xff0c;它能完整记录每次修改的"快照"。我在团队协作中深刻体会到&#xff0c;没有比清晰的变更记录更能提高代码审查效率的工具了。TortoiseSVN作为Subversion的Windows客户端&#xff0c;最…...

APP加固后审核被拒怎么办?iOS上架失败紧急解决流程与性能排查

花了大量心血开发的应用&#xff0c;提交到App Store后&#xff0c;等来的不是上架成功的邮件&#xff0c;而是一封来自苹果的审核拒绝信&#xff0c;理由还是“元数据被拒”或“二进制文件被拒”。更让人崩溃的是&#xff0c;排查下来&#xff0c;问题很可能指向刚做的iOS应用…...

ARM TRCCNTCTLR寄存器详解与调试技巧

1. ARM Trace Counter控制寄存器TRCCNTCTLR深度解析在嵌入式系统调试和性能分析领域&#xff0c;硬件计数器是不可或缺的关键工具。作为ARM架构调试系统的重要组成部分&#xff0c;Trace Counter Control Register&#xff08;TRCCNTCTLR&#xff09;系列寄存器为开发者提供了精…...