canary 값이 왜 출력이 안되는지 궁금합니다

일단 canary 값이 제대로 출력되는지 확인해보려고 했는데, 아래와 같이 실행 결과가 나옵니다

# python ssp_001.py 
[+] Starting local process './ssp_001': pid 35290
[F]ill the box
[P]rint the box
[E]xit
> 
Name Size : 
Name : 
*** stack smashing detected ***: terminated

[*] Stopped process './ssp_001' (pid 35290)

강의 보면 canary+1까지 값을 채워넣으면 뒤에 값이 같이 출력되서 65개를 넣은건데 제가 잘못 이해했나요?

파이썬 코드는 아래와 같습니다

from pwn import *

p = process("./ssp_001")

payload = “A”*65

print(p.recvuntil("> "))
p.sendline(“E”)
print(p.recvuntil("Name Size : "))
p.sendline(“1024”)
print(p.recvuntil("Name : "))
p.sendline(payload)
print(p.recv(1024))
#pwnable
작성자 정보
답변 2
Karatus
워게임: 50

pwntools 쓸 때 항상 마주치는 문제에 부딪히신 것 같습니다.
payload 길이가 65면 카나리 값을 읽어들일 수 있는건 맞는데, sendline으로 보낼 때의 페이로드 상태를 점검해보셔야 할 것 같습니다.

2021.03.13. 07:15
avatar
T@ke_it_EZ
질문 등록: 10

20210317_160854.png

말씀해주신대로 payload 확인해봤는데 별 문제가 없어보여서 더 답답하네요..

snedline으로 보내면 \n가 추가되는데 찝찝해서 send로 보내봐도 마찬가지로 안되고

직접 실행해서 a 65개 직접 입력해봐도 안됩니다

아예 다른 방법으로 접근해야하나요..?

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