UPLOAD-LABS靶场[超详细通关教程,通关攻略]

devtools/2024/11/15 4:08:05/

 ----------------------------------------

靶场环境:

下载链接:

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一句话木马文件内容 

 ----------------------------------------

            文件上传本身是一个正常的业务需求,对于网站来说,很多时候也确实需要用户将文件上传到服务器,比如:上传图片,资料。

            文件上传漏洞不仅涉及上传漏洞这个行为,还涉及文件上传后的进一步解析和处理,以及文件的下载,如果服务器的处理逻辑设计的不够全面,就会导致严重的后果

            最简单的文件上传漏洞是指用户上传了一个可执行的脚本文件,并且根据此脚本获得了执行服务器命令的能力。


http://www.ppmy.cn/devtools/86438.html

相关文章

Java面试八股之简述spring boot的目录结构

简述spring boot的目录结构 Spring Boot 项目遵循标准的 Maven 或 Gradle 项目布局,并且有一些约定的目录用于组织不同的项目组件。下面是一个典型的 Spring Boot 项目目录结构: src/main/java:包含所有的 Java 源代码,通常按包组…

新手必看:Elasticsearch 入门全指南

Elasticsearch 入门介绍 Elasticsearch 是一个开源的分布式搜索和分析引擎,广泛应用于处理大规模数据和实时搜索需求。它基于 Apache Lucene 构建,具备高可扩展性和分布式特性,能够快速、可靠地存储、搜索和分析大量数据。本文将介绍 Elasti…

使用Safari中的WebDriver进行测试

启用WebDriver并运行测试。 概述 本文将指导您完成设置WebDriver和运行用Python编写的测试的过程。当测试调用一个命令时,该命令按照以下步骤执行: 客户端库将每个命令翻译成REST API命令。REST API命令向Safari的驱动程序托管的本地web服务器发送相应…

leetcode日记(51)不同路径Ⅱ

和上一道题(无障碍物的最短路径)很像,但事实上比上一题多了优化方法 根据上一题改的代码如下,添加了对障碍物的判定,如果有障碍物则将数组值设为0。 class Solution { public:int uniquePathsWithObstacles(vector&l…

golang websocket 手写研究机制

// 处理ws请求 func WsHandler(w http.ResponseWriter, r *http.Request, id string) {var conn *websocket.Connvar err errorpingTicker : time.NewTicker(time.Second * 10)conn, err wsupgrader.Upgrade(w, r, nil)if err ! nil {log.Printf("Failed to set websocke…

CANoe在使用时碰到的一些很少见的Bug

CANoe作为一款成熟且稳定的总线仿真与测试工具,深受汽车工程师们的喜爱。CANoe虽然稳定,但作为一个软件来说,在使用中总会出现一些或大或小的Bug。最近全球范围内的大规模蓝屏事件,是由某个安全软件引起的。而很多CANoe使用者最近…

钉钉小程序内部跳转

1.跳转小程序携带参数 //触发跳转事件的方法 handleJump() {dd.navigateToMiniProgram({// 需要跳转的小程序的appIdappId: XXXXXXXXXXXXXXX,//需要跳转的小程序的页面path: pages/func/camera/camera,//参数extraData: {isOutSide: "1"},success: (res) > {cons…

ComfyUI插件:ComfyUI Impact 节点(四)

前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用&#xff0…