엄마! 리눅스 PATH환경이 뭐에요?? 하고 ssh연결 주소를 주니까 일단 접속해서 cmd1.c파일을 읽어보았다.

putenv함수는 환경변수를 추가해주거나 변경해주는 함수이다. c코드를 보면 main함수는 첫줄에서 PATH변수를 /thankyouverymuch라는 값으로 변경해준다. 

기존의 PATH환경변수는 이와 같이 설정되어있다. 여기서 PATH의 역할을 간단하게 설명하자면 그냥 명령어를 실행시켜주는 경로라고 생각하면 된다. 해당 경로가 변경되었으니까 일반적으로 치는 명령어는 인식하지 못하고 경로와 함께 명령어를 넘겨주면 실행될 것이다. 근데 system함수를 통해 명령어를 실행시키기 전에 filter함수를 통해 문자열 몇개를 필터링시킨다. 'flag' 'sh' 'tmp'를 필터링 시켜준다. flag라는 단어를 직접적으로 사용하지 못하므로 와일드카드를 쓰면 된다. 인자로 "/bin/cat fla*"라고 넘겨주면 flag가 읽힐 것이다.

잘 읽힌다!!

플래그는 mommy now I get what PATH environment is for :)

'pwnable > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] lotto  (0) 2019.06.26
[pwnable.kr] blackjack  (0) 2019.06.26
[pwnable.kr] coin1  (0) 2019.06.25
[pwnable.kr] shellshock  (0) 2019.02.27
[pwnable.kr] mistake  (0) 2019.02.24

+ Recent posts