|  |
| |
letmeln |
간단히는 attackme 프로그램에 입력을 전달하려고 사용된다고 할 수 있을 것 같아요
attakme 소스코드에 어떤 함수가 사용됬는지 모르겠지만 strcpy(buf, argv[1]) 처럼 프로그램 인자를 버퍼에 받는게 아니고 버퍼에 스트림을 읽어서 복사하는 취약 함수가 사용됬을 건데요
# (echo "1234";cat) | binary
제가 처음 (echo "";cat)|binary 요런 명령을 봤을 때는 위 같은 예에서 echo 프로그램의 "1234" 출력을 cat 프로그램이 binary stdin 스트림에 연결해준다고 이해하고 더 안알아봤던 것 같아요.
더 상세하고 정확하게는 계속 공부하시면 어딘가에서 알 수 있게 되겠죠ㅎㅎ |
2014/03/27 |
|
letmeln |
위키피디아 Use case에 cat 명령이 "As cat simply catenates streams of bytes, it can be also used to concatenate binary files, where it will just concatenate sequence of bytes." 요렇게 설명되네요 |
2014/03/27 |
|
| zmmx019 |
정말 감사드립니다 ㅜㅜ |
2014/03/27 |
|
| cd80 |
파이프는 왼쪽프로그램의 출력을 오른쪽프로그램의 입력으로 보내주는 역할을 합니다
그래서 perl이 출력한것들이 오른쪽 프로그램의 입력으로 넘어간뒤에
오른쪽에선 쉘을 실행하는데 왼쪽에서 더이상 보내주는 문자가 없으면 EOF를 만나 쉘이 바로 종료되버립니다
그래서 계속 인풋을 보내줄수 있도록 cat을 붙여주는것입니다
cat은 입력값을 그대로 출력합니다 |
2014/03/27 |
|
letmeln |
아맞다 ↑ 이게 맞는 답변입니다. 쉘에서 입력없으면 죽는 이유로 cat 쓰는거에요 ㅋㅋ 괜히 나댓네ㅋㅋ |
2014/03/28 |
|