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

format string 0 题解

一、题目概况

format string 0picoCTF 2024Binary Exploitation题。公开writeup给出的题面提示是“Can you use your knowledge of format strings to make the customers happy?”,并提供二进制文件、源码和远程连接方式。[1]

二、漏洞直觉

格式化字符串漏洞的典型危险写法是把用户输入直接交给printf当作格式模板。安全写法通常是printf("%s", input),危险写法则是printf(input)。当input中包含%s%x%n等格式符时,程序会把它们解释为指令,而不是普通文本。

格式化字符串漏洞的触发逻辑

三、解题过程

题目第一轮给出三个汉堡选项:Breakf@st_BurgerGr%114d_CheeseBac0n_D3luxe。只看格式化字符串特征,最可疑的是带有%Gr%114d_Cheese。公开writeup显示,输入该选项后程序继续进入下一轮。

Please choose from the following burgers:

Breakf@st_Burger, Gr%114d_Cheese, Bac0n_D3luxe

Enter your recommendation: Gr%114d_Cheese

%114d的含义可以理解为按十进制整数格式输出,并至少占114个字符宽度。如果程序内部刚好把输入当格式模板,输出就会出现被填充后的奇怪结果。

第二轮选项中,Cla%sic_Che%s%steakPe%to_Portobello更值得关注,因为%s会让printf尝试把栈上的某个值当作字符串地址读取。公开writeup记录,输入Cla%sic_Che%s%steak后程序打印出flag

Please choose from the following burgers:

Pe%to_Portobello, $outhwest_Burger, Cla%sic_Che%s%steak

Enter your recommendation: Cla%sic_Che%s%steak

输出中的异常片段并不是噪声,而是漏洞发生的证据:格式符影响了程序对内存和参数的解释方式。最终得到的flag为:

picoCTF{7h3_cu570m3r_15_n3v3r_SEGFAULT_f89c1405}

四、复盘

这道题把格式化字符串漏洞包装成菜单选择题,降低了二进制题的门槛。真正要记住的是:printf家族函数的第一个参数如果来自用户输入,就必须高度警惕。

要点:%d%x常用于观察输出异常,%s可能触发非法地址读取或泄露字符串。

要点:真实程序中应固定格式模板,把用户内容作为后续参数传入。

要点:CTF中遇到菜单选项含%,优先考虑格式化字符串路径。

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

相关文章:

  • Boss-Key老板键:3分钟掌握一键隐藏窗口的终极技巧
  • 深入掌控AMD Ryzen处理器:SMU Debug Tool终极使用指南
  • AD74413R与PIC18LF4550的硬件协同设计与优化实践
  • IS31FL3731与PIC18F2680的LED矩阵驱动优化实践
  • SPI扩展IO方案:MC74HC165A与TM4C129ENCPDT实战
  • microLog 后端开发指南
  • AMD Ryzen处理器深度调校工具:解锁隐藏性能的完整指南
  • TPAFE0808与PIC24FV16KA301的多通道信号采集系统设计
  • Boto3生产实践指南:AWS自动化运维的Python核心工具
  • WarcraftHelper完整指南:魔兽争霸3现代系统兼容性终极解决方案
  • 招聘测评考试系统选型参考指南
  • PCF8591 ADC/DAC模块与PIC18F67K40的工业应用实战
  • OneDragon:让重复操作智能退场的绝区零自动化引擎
  • 入门摄影买什么相机好?
  • 5分钟精通AMD Ryzen调试:SMUDebugTool终极指南
  • Python路径优先级问题解决方案核心原因
  • 【OpenHarmony/HarmonyOs 】数学学习 App 隐私保护实践:禁止 AI 识图、最小权限与精细化权限管控
  • 手机号逆向查询QQ号:Python3实现的完整技术解析与实战应用
  • 设计模式——代码的“经典套路“
  • 单卡部署ERNIE-4.5大模型:五分钟打造本地心理健康对话机器人
  • 魔兽争霸3终极优化指南:WarcraftHelper让经典游戏重获新生
  • 东莞电源线工厂企业众多,怎样判断是否靠谱?
  • 工业级条码扫描模块LV30与PIC18F4585嵌入式方案解析
  • KMR221+PIC32MZ2048EFH144实现精密电压管理方案
  • TB9051FTG与PIC18F25K42实现低噪声直流电机控制方案
  • 别再瞎找了!一行代码让HTML秒变MP4,爽到飞起
  • STM32与DC-DC降压转换器的硬件设计与I2C控制
  • 工业通信模块UG95与dsPIC33FJ256GP710A的硬件设计与优化实践
  • STM32与IS31FL3731驱动LED矩阵的硬件设计与动画实现
  • 基于Exo零信任架构构建安全AI集群:从认证冲突到统一访问控制