题目描述:只要知道你的年龄就能获得flag,但菜鸡发现无论如何输入都不正确,怎么办
0x01
checksec
IDA
尝试运行
0x02
从伪代码分析程序,程序接收用户输入的两个变量v5和v4分别使用判断语句判断内容是否符合条件,最终输出flag
程序的用意是v5等于1926时就执行cat flag命令,但如果v5等于1926就会被一个if拦下来,v5在第一个判断时不能等于1926否则程序就会退出
在栈空间里观察从v4到v5只有8个字节(0x20-0x18=0x8),可以实现在输入v4值时从v4的空间覆盖到v5使得第二个判断语句判断v5时等于1926,第一个v5我们输入任意值就可以跳过第一个判断条件
0x03
构造exp
1 | from pwn import * |