[SmashTheStack] Level4 문제 풀이
문제를 바로 보니까... 아주 재밌는 것 같군요 !
문제를 딱 보는데, popen 쪽에서 뭔가 취약한 것 같긴한데... 모르겠어서 그냥 검색했었습니다 -_-;;
근데 나오는게... 참... php에서 popen으로 인자를 전달할 때 | 와 ; 의 취약점들이더군요....
그래서 막 생각을 하다가 이렇게 해봤어요 !
근데 안됨;; 이런... alias로 하면 간단히 될 줄 알았는데 alias 단계에서 해석이 안되는 건가 봅니다...
그냥 그렇게 생각했죠. alias는 popen으로 실행될 때에는 상관없나보네... 하고요.
검색도 해보고, which alias 명령으로 위치도 찾아봤는데 alias라는 파일이 존재하지가 않네요 -_-;;
alias에 대해서 자세히 아는 분들 좀 알려주세요 ㅠㅠ...
아무튼, alias가 안되길래 gdb에서 set으로 값을 바꾸려고도 해보고 파을 작성해서 popen의 방향을 바꿀 수 있나 해보려는데 파일을 쓸 수 있는 곳도 없고 -_-;;
그렇게 막 고민하다가 / 밑에 tmp에는 w 권한이 있더군요....
그리고 또 막 생각하다가 프로그램이 실행되는 순서를 생각 해봤습니다.
popen 이 실행될 때에 alias를 거치지 않는다면 어쨋든 명령어는 실행해야 하니까 PATH를 살펴보자고 생각이 딱 들었습니다.
일단 /tmp 밑에 아래와 같은 소스를 컴파일해서 whoami로 넣어놓고요.
(중간에 find / -user level4 -perm +222 -type d 2> /dev/null 명령으로 나오긴하는데... 권한을 줘도 실행이 안되네요 -_-;;)
간단하게 그냥 읽어와서 내용만 뿌려주도록 했습니다.(왜냐면 popen에서 권한을 r만 주거든요 ^^..)
KGpWsju2vDpmxcxlvm 입니다 !