pwntools에서 send와 sendafter 함수의 차이가 뭔지 모르겠어요

익스코드 다 짜고 플래그도 얻었습니다. 근데 마지막 페이로드 보낼 때가 문제입니다. send 함수로 보낼 때는 EOF가 발생하고 sendafter 함수로 보낼 때는 정상적으로 쉘을 얻을 수 있었습니다. 앞에 "Buf : " 라는 문자열이 있긴 했지만 카나리릭 할 때는 아무 문제 없이 릭이 됐어요. 근데 왜 마지막에서 이런 차이가 발생하나요?

#pwnable
작성자 정보
답변 1
Hmin
강의 수강: 10

sandafter(b"Buf : ", payload)
이렇게 보내면 "Buf : " 가 출력된 send를 하기 때문에
정상적으로 입력 함수가 호출되었을 때 입력을 줄 수 있습니다.
하지만 그냥 send를 사용하게 되면 서버 입력 함수가 호출되기 전에
send를 해버릴 수 있습니다.

만약 저런 뭘 출력하고 입력받는게 아니라면
import time을 하고
time.sleep(1) 로 잠깐의 딜레이를 만들어 주어
입력을 주면 됩니다.

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