이번 대회는 대회 이름(EZCTF) 처럼 아주 쉬운 문제들로 구성된 대회였다.
그중 가장 쉬웠던 포너블 문제
슈퍼마리오 컨셉으로 만들어진 문제였다.
바이너리 파일은 따로 주어지지 않고
서버에 원격 접속할 수 있는 주소와 포트만 주어져 있다.
리눅스 환경에서 nc 명령어를 이용해서 원격 접속을 할 수 있다.
원격으로 접속하면 Are you root? 라고 물어보는데
시험삼아 yes 라고 입력했더니
내가 입력한 yes를 그대로 다시 echo 해주고, lol ur not root! 라는 문자열을 출력시킨다.
어떻게 풀어야 하나 고민하다가, 문제 제목을 보고 느낌이 팍 왔다.
슈퍼마리오를 한번이라도 플레이해본 사람은 이게 뭔지 알거다.
슈퍼마리오가 맵을 이동할 때 쓰는 파이프인데,
리눅스에서도 똑같이 파이프가 존재한다.
키보드에서 엔터 키 위에있는 | 기호인데,
이 파이프를 쓰면 앞에있는 명령어의 출력을 뒤에있는 명령어의 입력으로 넣어준다.
시험삼아 다시 원격 접속을 한 뒤에 Are you root? 에 대한 응답으로
파이프(|) 를 보내보았다.
그랬더니 아까 yes를 보냈을 때랑 다르게 echo가 오지 않았다.
뭔가 확실히 파이프가 먹히고 있는것 같다.
이번엔 | ls 를 보내보았다.
그랬더니 ls 명령어가 정상적으로 수행되면서
현재 디렉토리에 있는 파일 목록들이 출력되었다.
출력된 파일 목록에서 flag.txt 를 찾을 수 있었고
| cat flag.txt 를 이용해 flag.txt 파일 내용을 읽어주면
플래그를 획득할 수 있다.
'CTF > 포너블' 카테고리의 다른 글
[ImaginaryCTF] ret2win - 포너블 / 버퍼오버플로우 (40) | 2022.07.22 |
---|---|
[EZCTF] Save peach! - 포너블 / Pyjail (86) | 2022.05.25 |
[DwagCTF] bof to the top - 포너블 / 버퍼오버플로우 / Pwntool / gdb (28) | 2022.04.17 |
[DwagCTF] Tom Nook the Capitalist Racoon - 포너블 / Pwntool (46) | 2022.04.16 |
[TGHACK] Boofy - 포너블 / 버퍼오버플로우 (48) | 2022.04.15 |