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

ctf show web入门260

这是一道反序列化题,让我们先看代码

这串代码前面告诉我们flag在flag.php中,后面才是校验
要想拿到 $flag,必须满足 if 语句。也就是说:把你通过 GET 传入的 ctfshow 参数进行序列化(serialize)后,得到的字符串里必须包含 ctfshow_i_love_36D 这个子串
但是 PHP 标识符的命名规则为: * PHP 的类名、变量名不能以数字开头,而36D是以数字开头,不符合标识符命名规则

利用 PHP 内置的原生类 Exception 或 Error
PHP 自带的内置类(如 Exception 或 Error)在被序列化时,会把传入的错误/异常信息(Message)原封不动地序列化进去。而这个 Message 只是一个普通的字符串,字符串里包含数字和字母是完全合法的

当我们把这个 Exception 对象送去 serialize() 序列化时,PHP 会把这个对象的所有内部属性和它们对应的值全部转换成文本
序列化后的真实文本结构:

O:9:“Exception”:7:{s:7:“*message”;s:19:“ctfshow_i_love_36D”;s:9:“*string”;s:0:“”;s:7:“*code”;i:0;s:7:“*file”;s:18:“D:\phpstudy_pro\WWW\test.php”;s:7:“*line”;i:3;s:9:“*trace”;a:0:{}s:11:“*previous”;N;}

O:9:“Exception”:这里的类名是 Exception,符合 PHP 命名规范
s:19:“ctfshow_i_love_36D”:题目要找的字符串,作为 message 属性的具体值,完完整整地保存在了整个序列化结果中

所以现在我们在本地构造payload:

<?php// 实例化一个 PHP 内置的 Exception 类,把题目要求的字符串作为报错信息传进去$a=newException("ctfshow_i_love_36D");// 序列化看看结构echourlencode(serialize($a));?>

url编码前:


url编码后:

我们现在只需要把生成的payload:传给ctfshow
就拿到flag
flag为:ctfshow{690aced9-44d5-4241-bfb7-e34a558c2b4d}

http://www.jsqmd.com/news/905870/

相关文章:

  • LangGraph 动态工作流:如何在运行时修改 Agent 的执行图谱?
  • 基于Arduino的智能冰箱门未关提醒系统DIY全攻略
  • 火灾动力学方向核心期刊及文献阅读方法整理
  • 基于Arduino与蓝牙模块的无线LCD显示系统:从串口通信到物联网终端实践
  • Plc编程教程
  • Veo 2超分重建失效真相(RAW域预处理黑箱深度拆解):实测显示Luma权重偏移超17.3%即触发细节坍缩
  • 2026赤峰汽车贴膜/车衣门店靠谱排行|首选推荐榜单 - 资讯快报
  • Arduino驱动WS2812制作彩虹氛围灯:从硬件搭建到FastLED编程全解析
  • 为你的代码助手切换稳定后端,Claude Code 接入 Taotoken 配置指南
  • 基于Arduino与红外传感器的非接触式数字转速计设计与实现
  • Universal x86 Tuning Utility:智能硬件性能调优的终极解决方案
  • 日志与生活:技术人如何从日志中汲取生活智慧
  • 做跨境电商还在一张张手动改图?AI批量图片翻译帮你把效率提升10倍
  • 重学Qt——串口编程
  • SolidWorks_草图绘制9_草图性能优化
  • 脱离 CRUD 舒适区:硬核全栈实战项目
  • Rust配置管理:构建灵活的配置系统
  • 【零基础部署】Docker 部署 Nginx + SSL 保姆级教程
  • 别再只会apt-get了!Ubuntu 22.04上从源码编译安装Open vSwitch 3.2的完整指南
  • Socket BIO NIO AIO 基本概念
  • Open-Meteo:如何零成本获取专业级天气数据API的完整指南
  • 太和养老系统:打造智慧养老生态圈 #05272141
  • AI风口上,我靠“养猪”月入过万?算力副业真能躺赚吗?
  • 经典算法题之我能赢吗(二)
  • 【零基础部署】Docker 部署 Redis 保姆级教程
  • Claude集成测试的“最后一公里”难题:如何用确定性重放+语义断言替代传统JSON Schema校验(IEEE测试标准工作组推荐方案)
  • 小白也能看懂!AI大模型概念清单,收藏这份学习指南轻松入门
  • Python新手如何快速接入Taotoken调用大模型API完成第一个对话
  • 卖牛卡纸(原纸)怎么找客户?下游工厂都在哪里
  • 从Python列表切片到LLM接口实战:零基础AI编程落地教程