728x90
포너블 15번 cmd2 문제를 풀어볼 것이다.
아빠가 나에게 시스템 명령 쉘을 사주셨다고 한다.
하지만 그는 그의 허락없이 노는 것을 막기 위해 어떠한 필터를 걸어놨다.
하지만 나는 내가 원할때 언제든 하고 싶다!
...라고 한다.
일단 서버에 접속해주었다.
이번엔 독특하게 이전 문제의 flag 값을 입력해야했다.
ls 명령어를 통해 cmd2, cmd2.c, flag 파일을 확인하였다.
cmd2 실행이 안되었기 때문에 바로 소스코드를 출력했다.
cmd1과 filter 과정을 거치는 것은 동일해보인다.
이번엔 필터링을 하는 것이 =, PATH, export, /, `, flag로 늘어났따.
그리고 /가 포함되어 있기 때문에 와일드카드를 사용하는 것도 불가능해진 상황이다.
또한, 메인함수를 보면 환경변수를 초기화하는 것을 확인할 수 있다.
이를 해결하기 위해서는 문자열을 포함하지 않고 system 함수에 전달해야하는데
help 명령어로 써볼만한 명령어도 찾아보고 command로도 시도해봤는데, 풀리지 않았다.
결국 다른 사람의 라업을 보고 도움을 받았다.
환경변수가 초기화되고 있는 상황이기 때문에 bash의 read를 사용해야한다고 한다.
read 함수 명령어와 함께 입력 받는 프롬프트 상태가 되기 때문에 flag 파일을 읽으면 그대로 답을 출력할 수 있다.
728x90
'CTF 스터디' 카테고리의 다른 글
[pwnable.kr] 14번_cmd1 풀이 (0) | 2021.05.17 |
---|---|
[pwnable.kr] 13번_lotto 풀이 (0) | 2021.05.12 |
[pwnable.kr] 12번_blackjack 풀이 (0) | 2021.05.12 |
[pwnable.kr] 11번_coin1 풀이 (0) | 2021.05.03 |
[pwnable.kr] 10번_ shellshock 풀이 (0) | 2021.05.03 |