tmxklab

[Web] pathtraversal 본문

War Game/dreamhack

[Web] pathtraversal

tmxk4221 2021. 6. 7. 20:55

1. 문제확인

접속해서 userid에 guest에 대해 View버튼을 누르면 위와 같이 key-value형태로 나온다.

문제 정보에서는 Path Traversal 취약점을 이용하여 /api/flag에 있는 플래그를 획득할 수 있다고 나온다. 

 

2. 접근방법

이번에도 마찬가지로 문제 파일을 다운로드하여 코드를 확인해보자

먼저 FLAG변수에 flag값이 담긴다.

get_info()에서는 request의 method형식에("GET", "POST") 따라 다르게 처리되는데 POST형식인 경우 '{API_HOST}/api/user/{userid}'형식으로 요청을 보낸다. 마지막으로 밑에 빨간색 박스를 보면 '/api/flag' 형식의 요청이 들어온경우 flag()를 호출하여 우리가 원하는 flag값을 return한다.

혹시나... 바로 '/api/flag'를 붙였지만, 위와 같이 'Unauthorized'가 뜨게 된다. 

 

따라서, 문제에서 요구하는 path traversal를 사용하려면 위 코드에서 get_info()의 'POST'형식으로 요청할 경우 url 형식이 

'{API_HOST}/api/user/{userid}'이므로 이 점을 이용하도록 하자.

즉, userid에 뒤로 한번 갔다가 flag를 입력하면 될 듯하다. -> userid = "../flag"

 

 

3. 문제풀이

Burp Suite를 사용하여 userid에 "../flag"를 입력해서 요청하면

userid가 undefined로 뜬다. 따라서, Burp Suite에서 userid를 다시 바꿔보자.

 

'War Game > dreamhack' 카테고리의 다른 글

[rev] rev-basic-2  (0) 2021.06.10
[Web] command-injection-1  (0) 2021.06.10
[Web] proxy-1  (0) 2021.06.08
[Web] cookie  (0) 2021.06.07
Comments