본문 바로가기
카테고리 없음

[Pwnable.kr] Toddler's Bottle_cmd2

by Y06 2021. 5. 19.

문제를 보면 cmd2의 비밀번호가 cmd1의 플래그인 것을 알 수 있다. 즉, 1을 풀어야 2를 알 수 있다.

접속한 후, ls -l 명령어를 통해 확인해보면 다음 사진과 같은 파일이 나온다.

cmd2.c 파일을 읽어보면 다음과 같은 소스코드가 있다.

cmd1보다 훨씬 더 많은 필터가 걸려 있고, 환경변수를 이용한 필터 우회를 사용할 수 없도록 delete_env라는 환경변수를 없애는 함수가 있다.

 

따라서 이번에는 1과 다른 방식을 사용해서 문제를 풀어야 한다. command 함수를 사용한 우회 방법이 있다.

 

command의 옵션 중 우리가 사용할 것은 -p 옵션이다. 이 옵션은 PATH를 현재 프로그램의 PATH를 기본값으로 사용하는 옵션이다.

이 옵션을 사용하면 cat 함수의 경로를 입력할 필요 없이 바로 "cat flag"를 실행할 수 있다.

이때 flag라는 문자는 필터가 걸려있기 때문에 이를 우회해줘야 하는데 이를 우회할 수 있는 방법이 바로 *이다.

 

플래그 값이 나왔다.

 

FLAG: FuN_w1th_5h3ll_v4riabl3s_haha