Basic Q. pathtraversal
Path traversal 취약점이란?
간단히만 설명하자면, 사용자가 경로 형태의 입력값을 넣어 경로를 조작할 수 있게 된다. 경로, 디렉터리를 조작하여 서버 내부 다른 파일까지 사용자가 확인할 수 있게 된다.
일단 문제의 페이지를 들어가본다.
User의 info를 얻을 수 있는... 사이트인 것 같다. 마음이 시키는대로 admin도 입력해봤다.
문제 풀이엔 도움은 안 되는 것 같다. 당연하겠지만...
이제 문제파일을 다운받아 살펴보기로 한다.
그러니까 입력된 값은 /api/user/{userid}
에 저장된다는 건데... flag는 /api/flag
에 있다고 했으므로 ../flag
를 입력하면 flag를 볼 수 있으리라 생각했다.
그러나 이런 결과만이 나를 반겼고... 왜 안 되는 거지?
뭐가 문제인지를 알아야겠다. burp suite를 켠다.
아래처럼 userID가 undefined라고 뜨는 것을 확인할 수 있었다.
그럼 이걸 ../flag
로 바꿔버린다면?
찾아낼 수 있었다.
🐟 사담
코드를 좀 더 분석해보고 싶어졌다. 단순히 문제풀이 목적으로 필요한 부분만 슥 보고 풀었더니
userid = undefined
가 찍히는 이유를 알아내지 못했으므로 내일은 잠깐 코드를 들여다보는 시간을 가지는 걸로!