news 2026/7/5 6:46:24

format string 0 题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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中遇到菜单选项含%,优先考虑格式化字符串路径。

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

PIC18F46K42驱动WS2812B LED灯带的实践指南

1. 从零开始搭建WS2812智能灯光系统第一次接触WS2812 LED灯带时,我被它的神奇特性震撼到了——仅用一根数据线就能控制数百个独立寻址的RGB LED。这种被称为"NeoPixel"的智能灯带彻底改变了传统LED控制方式,不再需要复杂的布线矩阵。作为一位嵌…

作者头像 李华
网站建设 2026/7/5 6:43:52

台达伺服电机编码器功率参数修改实战指南

1. 台达A2/B2伺服电机编码器功率软件改造全解析 从事工业自动化这些年,伺服系统的参数调试一直是现场工程师的必修课。最近在几个设备改造项目中频繁遇到台达A2/B2系列伺服电机编码器与驱动器匹配问题,特别是更换不同功率编码器后的参数适配,…

作者头像 李华
网站建设 2026/7/5 6:43:04

TPFanCtrl2终极指南:让你的ThinkPad风扇控制更智能高效

TPFanCtrl2终极指南:让你的ThinkPad风扇控制更智能高效 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾被ThinkPad风扇的突然加速打扰了工作专注&a…

作者头像 李华
网站建设 2026/7/5 6:39:08

74HC32与PIC18F4553实现高效矩阵键盘方案

1. 项目背景与核心需求在嵌入式系统开发中,按键输入是最基础的人机交互方式之一。传统的矩阵键盘方案需要占用大量IO口资源,而简单的独立按键又难以扩展功能。这个项目展示了一种创新的解决方案:使用74HC32四输入或门芯片配合PIC18F4553微控制…

作者头像 李华