tmxklab
[Web] pathtraversal 본문
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