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

news/2024/12/12 21:31:20/

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

靶场环境:

下载链接:

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/news/1554590.html

相关文章

docker 拉取镜像报错: missing signature key解决-以Minio为例

摘要 遇到 missing signature key 错误时,问题通常是 Docker 客户端版本较旧导致的签名验证失败。通过更新 Docker 版本可以快速解决问题。如果更新过程中遇到问题,可参考相关教程进行卸载重装。 一、报错信息 平平无奇的下午,心血来潮&am…

css 权重

发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 CSS 权重(或称为 CSS 优先级)决定了当多个 CSS 规则作用于同一元素时,哪一条规则会被应用。…

输入url到显示主页的详细过程

从浏览器地址输入url到显示主页的过程? 主要分为:DNS解析,TCP连接,发送HTTP请求,服务器处理请求,浏览器接收HTTP响应,断开连接 DNS解析: 浏览器发起一个DNS请求到DNS服务器&#…

fastadmin框架同时使用 阿里云oss和阿里云点播

背景 项目的实际需求中既要用到阿里云oss产品又用到阿里云点播系统&#xff0c;实现完美的统一。设置两个地址downUrl&#xff0c;thirdCode。分别代表阿里云oss上传路径和阿里云点播系统vId。 实现 默认框架你已经集成好阿里云oss集成工作&#xff0c;前端html页面实现 <…

MySQL Binlog 日志监听与 Spring 集成实战

MySQL Binlog 日志监听与 Spring 集成实战 binlog的三种模式 MySQL 的二进制日志&#xff08;binlog&#xff09;有三种常见的格式&#xff1a;Statement 模式、Row 模式和Mixed 模式。每种模式的设计目标不同&#xff0c;适用于不同的场景&#xff0c;以下是它们的详细对比和…

【通俗理解RNN】

1.从单层网络到经典的RNN结构 首先要了解一下最基本的单层网络&#xff0c;它的结构如下图所示&#xff1a; 输入是x&#xff0c;经过变换Wxb和激活函数f&#xff0c;得到输出y。 在实际应用中&#xff0c;我们还会遇到很多序列形的数据&#xff1a; 如&#xff1a; 自然语…

前端如何实现签名功能

1.JS实现 前端实现签名功能&#xff0c;通常是通过在页面上创建一个可绘制的区域&#xff0c;用户可以用鼠标或触摸设备进行签名。这个区域通常是一个<canvas>元素&#xff0c;结合JavaScript来处理绘制和保存签名。下面是一个简单的实现步骤&#xff1a; 1.1. 创建HTM…

【SH】微信小程序调用EasyDL零门槛AI开发平台的图像分类研发笔记

文章目录 微信小程序字符串字符串模板字符串拼接 上传图片编写JS代码编写wxml代码编写wxss代码 GET请求测试编写测试代码域名不合法问题 GET和POST请求测试编写JS代码编写wxml代码编写wxss代码 效果展示 微信小程序字符串 字符串模板 这是ES6引入的特性&#xff0c;允许你通过…