main() 함수를 먼저 보면 putenv() 함수로 PATH 환경 변수를 임의로 설정한다. 또한 argv[1]을 매개 변수로 한 filter() 함수를 호출하는데 filter() 함수를 보면 전달받은 매개 변수에(문자열) "flag", "sh", "tmp" 가 포함되면 안된다.
즉, argv[1]에 "flag", "sh", "tmp"가 들어가지 않도록 전달해서 system() 함수를 이용해 flag 파일을 출력해 내야 한다.
작성한 파이썬 스크립트이다. PATH 환경 변수의 영향을 받기 때문에 각 명령어와 파일의 경로는 '/'부터 시작하는 절대 경로로 써야 한다. 그리고 문자열 검사를 회피하기 위해 마지막 "flag" 대신 와일드 카드를 이용해 "fla?"로 표기한다.
위와 같이 flag를 출력했다.
'Wargame > Pwnable.kr' 카테고리의 다른 글
Pwnable.kr asm-6pt (0) | 2017.04.23 |
---|---|
Pwnable.kr cmd2-9pt (0) | 2017.04.19 |
Pwnable.kr shellshock-1pt (0) | 2017.04.17 |
Pwnable.kr lotto-2pt (0) | 2017.04.17 |
Pwnable.kr passcode-10pt (0) | 2017.04.15 |