나는 다음과 같이 바이트코드를 netcat()으로 파이프하려고 했습니다 nc
:
python3 -c "import sys;bof='a'*16;bof2='a'*8;sys.stdout.buffer.write(bof.encode('ascii')+b'\xef\xbe\xad\xde'+bof2.encode('ascii')+b'\x21\x52\x54\x55\x55\x35')" | nc example.com 1337
그러나 이를 실행하면 터미널은 마치 입력을 기다리는 것처럼 프로그램의 출력을 인쇄하지만 텍스트를 입력하고 Enter를 누르면 아무 일도 일어나지 않습니다. 여전히 입력을 기다리고 있습니다. 종료하기 위해 Ctrl+D를 시도했고 '
, '"', ')'를 시도했습니다. 작동하지 않습니다. 이유가 무엇인지 단서가 있습니까? Ctrl+C로 실행을 종료했지만 아무 것도 전송되지 않는 것 같습니다. , 또는 적어도 아무것도 출력되지 않습니다. 출력이 인쇄되지 않으므로 나에게는 아무 소용이 없습니다.
나는 또한 오류가 있는지 확인하기 위해 xxd로 파이핑을 시도했지만 아니요, 괜찮아 보입니다.
인터넷 검색을 시도했지만 결과가 없는 것 같습니다.
답변1
그래서 나는 그것을 알아냈습니다:
xxd 및 기타 유사한 프로그램에서 볼 수 있듯이 개행 문자가 누락되었습니다! \n
닫는 바이트 문자열 리터럴( ) 앞에 를 추가하기 만 하면 '
됩니다!
경우 폐쇄!