웹 사이트 파일은 /usr/share/nginx/html/ 에 있으며 플래그는 /flag.txt에 위치한다.
그러나 웹 사이트는 절대 파일 경로를 필터링 하고 있다. 필터를 통과하여 flag를 읽을 수 있는가? 하는 문제이다.
페이지를 보면 .txt 파일을 Read하면 읽을 수 있는 페이지 인 것 같다.
예시로 되어 있는 3개의 텍스트 파일 중에 하나를 골라서 보면,
테스트 파일의 내용이 그대로 보여진다.
Read 버튼을 눌렀을 때의 Request 값을 보면,
POST 방식으로 전달하고, filename과 read 파라미터 값으로 전달하는 것을 확인할 수 있다.
filename은 텍스트 파일의 이름을, read 는 확인해본다.
문제에서 텍스트 파일들은 /usr/share/nginx/html 에 위치한다고 하였으니 read에 경로를 넣어주고 Response 해보면,
정상적으로 Response 되는 것을 알 수 있다. 즉, read는 절대 경로를 전달하는 파라미터 값이다.
read에는 경로의 값을 넣고, filename에는 flag.txt를 넣는다.
그렇지만 문제에서, 절대 경로가 필터링 된다고 했으므로 ../../../../../../../../../../flag.txt 로 넣으면서 필터링을 우회한다.
변조한 파라미터 값으로 Response 하면 flag.txt가 읽히면서 flag를 획득할 수 있다.
picoCTF{7h3_p47h_70_5ucc355_32e3a320}
'Wargame > picoCTF' 카테고리의 다른 글
Roboto Sans (0) | 2022.03.25 |
---|---|
Power Cookie (0) | 2022.03.25 |
Search source (0) | 2022.03.25 |
Local Authority (0) | 2022.03.23 |
Inspect HTML (0) | 2022.03.23 |
댓글