upload-labs通过思路记录

这篇博客详细记录了作者在upload-labs中的破解过程,包括前端验证绕过、MIME类型检查、大小写绕过、文件后缀过滤与Apache解析漏洞利用等,展示了多种上传漏洞的解决策略。

Pass-01

查看提示,有一个前端验证,那思路就是把shell文件后缀改为jpg,绕过前端,再通过修改包文件中的后缀还原。
在这里插入图片描述
在包中将yyds.jpg后缀换位yyds.php成功上传
在这里插入图片描述

Pass-02

MIME(Multipurpose Internet Mail Extensions)多用途网络邮件扩展类型,可被称为Media type或Content type,它设定某种类型的文件当被浏览器打开的时候需要用什么样的应用程序,多用于HTTP通信和设定文档类型例如HTML。之所以叫多用途网络邮件扩展类型,因为它最早被用于电子邮件系统,后用于浏览器。
简单来说就是有Content type检查。
那我们的思路就是在包中对Content type符合协议就行。
在这里插入图片描述
上传yyds.jpg,抓包Content type已经符合协议,修改文件后缀为php,成功上传php文件

Pass-03

看到这个提示,第一反应就是,大小写绕过,那就试试吧,结果是失败。
在这里插入图片描述
分析源码,果然是存在将str全部转为小写的操作。存在过滤
$deny_ext = array(’.asp’,’.aspx’,’.php’,’.jsp’);
这里明显存在过滤不全,因为php文件还可以为php2、php3、php4、php5。
前提是apache中允许,一般默认允许phtml,php3,php4,php5,pht
那修改后缀为php3,成功上传
在这里插入图片描述

Pass-04

看到这种过滤,有过滤php,pHp的通常不会有将str全部转为小写的操作。这里用phP试一试。失策了。。。
在这里插入图片描述
分析源码确实还是存在转换小写操作

在这里插入图片描述过滤是比较严谨的,我们可以采用apahce文件解析绕过。创建文件名为.htaccess的文件,编辑,保存。这是apahce一个白名单文件,作用是会将名为yyds.jpg的文件按php文件来解析。

<FilesMatch "yyds.jpg">

  SetHandler application/x-httpd-php

</FilesMatch>

先上传.htaccess文件,再上传yyds.jpg文件,访问yyds.jpg文件按php格式正常解析。

Pass-05

分析源码,第五关可以通过apache解析绕过,也可通过大小写绕过。上传一个yyds.Php文件,上传成功。
在这里插入图片描述

Pass-06

第六关相比前面少了个首位去空,那么上传yyds.php,抓包,在php后面加上一个空格,最后访问yyds.php可以成功访问。
在这里插入图片描述

Pass-07

在这里插入图片描述

### 部署和运行 `upload-labs` 的方法 #### 使用 Podman 安装 在 Linux Debian 12 上可以通过 Podman 来安装并运行 `upload-labs`。以下是具体的操作方式: 执行以下命令来启动容器: ```bash sudo podman run -d --name upload-labs -p 1026:80 docker.io/c0ny1/upload-labs [^1] ``` 此命令会拉取指定的镜像并将服务映射到本地端口 1026。 访问靶场的方式为打开浏览器输入 URL 地址: `http://<your-ip>:1026/` --- #### 使用 Docker 安装 如果系统已安装 Docker,则可以直接使用 Docker 进行部署。Docker 提供了一种轻量级的虚拟化技术,允许用户快速创建和管理容器化的应用程序[^3]。 执行以下命令以下载并运行 `upload-labs` 靶场环境: ```bash docker pull c0ny1/upload-labs docker run -d --name upload-labs -p 1027:80 c0ny1/upload-labs ``` 同样地,在浏览器中访问该靶场的方法如下: `http://<your-ip>:1027/` --- #### 基于 PHPStudy 或 LAMP 环境的手动部署 对于希望手动配置的情况,可以选择将 `upload-labs-master` 文件夹放置到 Web 服务器根目录下(例如 `/opt/lampp/htdocs/`),并通过网页访问。 ##### 步骤说明 1. **准备环境**:确保已经安装好 Apache 和 PHP 支持的服务框架,比如 XAMPP/LAMPP[^4]。 如果未安装 LAMPP,可以从官网获取最新版本进行安装: ```bash wget https://www.apachefriends.org/xampp-files/<version>/xampp-linux-x64-<version>-installer.run chmod +x xampp-linux-x64-<version>-installer.run sudo ./xampp-linux-x64-<version>-installer.run ``` 2. **解压项目文件**:将 `upload-labs-master.zip` 解压缩至 `/opt/lampp/htdocs/` 路径下: ```bash unzip upload-labs-master.zip -d /opt/lampp/htdocs/ mv /opt/lampp/htdocs/upload-labs-master/* /opt/lampp/htdocs/upload-labs/ rm -rf /opt/lampp/htdocs/upload-labs-master/ ``` 3. **重启服务**:重新加载 LAMPP 服务使更改生效: ```bash sudo /opt/lampp/lampp restart ``` 4. **验证访问路径**:通过浏览器访问目标站点即可测试是否正常工作: ``` http://<your-ip>/upload-labs/pass-11/index.php [^2] ``` --- #### 注意事项 - 若遇到错误提示如 “404 Not Found”,需确认项目的实际存储位置与访问链接的一致性。 - 对于某些特定功能模块可能还需要额外调整权限设置或者修改默认配置参数。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值