fmt_fun
题目描述:
小 C 写了一个「简易留言板」程序,功能很简单 —— 接收用户输入的字符串,然后用 printf 直接打印出来展示。 小 C 觉得这代码简单到不可能有漏洞:「不就是读个字符串再打印嘛,连复杂逻辑都没有,安全得很!」 但他不知道,printf 函数藏着一个「格式化陷阱」:当直接把用户输入作为格式化字符串传入时,攻击者能通过精心构造的格式符,随意读取甚至修改程序内存里的数据。 程序所在服务器的 /home/ctf/flag.txt 文件里存着 Flag,你需要利用这个格式化字符串漏洞,突破程序限制,读取到这个 Flag。
- 连接方式:
nc 115.159.155.176 9994
题目提示:
%p %x %n 等格式符是突破这个漏洞的关键; 先找到输入内容在栈上的偏移位置,再构造精准的攻击载荷; 核心目标:利用格式化字符串漏洞读取 /home/ctf/flag.txt 的内容,或劫持程序执行流获取 shell。
题目解析
登录后查看题解