41번 문제를 보면 아래와 같이 파일을 입력받는다.
아래는 index.phps 코드이다.
코드를 보면, 파일을 입력 받은 뒤 hidden_dir 폴더에 필터링을 거친 파일 이름으로 파일을 생성한 뒤 pw를 write한다.
따라서 hidden_dir의 이름을 알 수 있으면 해당 파일을 열어 pw를 읽을 수 있을 듯하다.
이 때, 입력한 파일 이름이 필터링 되는 것을 이용하여
파일 이름이 공백이 될 경우를 시도해 보았다.
입력 시에 공백을 입력하지는 않았지만 필터링 된 값에 대한 검증이 없는 경우 문제가 될 수 있다.
공백으로 replace되는 >를 이름으로 하는 파일을 업로드 하였다.
그 결과 Warning 메세지를 통해 hidden_dir을 알 수 있다.
이제 해당 경로를 통해 pw를 읽기 위해 임의의 파일을 업로드 하였다.
위에서 알게 된 hidden_dir 경로의 aaa 파일을 읽으면 아래와 같이 플래그를 얻을 수 있다.
이 플래그를 이용하여 인증하면 clear할 수 있다.
'Wargame > webhacking.kr' 카테고리의 다른 글
webhacking.kr 32번 (0) | 2019.01.29 |
---|---|
webhacking.kr 48번 (0) | 2019.01.29 |
webhacking.kr 51번 (0) | 2019.01.29 |
webhacking.kr 53번 (0) | 2019.01.29 |
webhacking.kr 60번 (0) | 2019.01.29 |
댓글