10 코인 cat /flag 명령에 대한 출력을 recvline 을 이용하는것에 대한 질문

payload를 제출한 후에 read_flag 함수가 실행되면서 flag가 출력이 되기 때문에

p = remote('','')
p = remote('')
.. 생략 ..
flag = p.recvline()
print(flag)

이렇게 했는데

Traceback (most recent call last):
  File "ex.py", line 12, in <module>
    flag = p.recvline()
  File "/usr/local/lib/python3.8/dist-packages/pwnlib/tubes/tube.py", line 496, in recvline
    return self.recvuntil(self.newline, drop = not keepends, timeout = timeout)
  File "/usr/local/lib/python3.8/dist-packages/pwnlib/tubes/tube.py", line 339, in recvuntil
    res = self.recv(timeout=self.timeout)
  File "/usr/local/lib/python3.8/dist-packages/pwnlib/tubes/tube.py", line 104, in recv
    return self._recv(numb, timeout) or b''
  File "/usr/local/lib/python3.8/dist-packages/pwnlib/tubes/tube.py", line 174, in _recv
    if not self.buffer and not self._fillbuffer(timeout):
  File "/usr/local/lib/python3.8/dist-packages/pwnlib/tubes/tube.py", line 153, in _fillbuffer
    data = self.recv_raw(self.buffer.get_fill_size())
  File "/usr/local/lib/python3.8/dist-packages/pwnlib/tubes/sock.py", line 56, in recv_raw
    raise EOFError
EOFError

이렇게 오류가 발생했습니다.
어차피 입력을 받아오는것인데 왜 오류가 발생하는건가요??
찾아보니 프로세스에서 데이터를 보내지 않는다고 하긴 합니다만..

  • 혹시 stdout과 관련이 있는건 아닌가 조심스럽게 추측해 보겠습니다.
#pwnable
작성자 정보
답변 1
질문자가 채택한 답변입니다. 좋은 지식을 공유해줘서 고마워요!
avatar
wyv3rn
무플 방지 위원회장

음... recvline이 아니라 recv나 recvn으로 해보시겠어요
\n이 없어서그럴 것 같은데...

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