이번엔 사용자의 정보를 조회하는 API서버이다. Path Traversal 취약점을 이용해 /api/flag 에 있는 플래그를 확인하면 된다.
Path Traversal 취약점은 말 그대로 경로를 조작하여 의도한 구역을 벗어난 다른 곳의 파일을 읽거나 수정 등을 하는 취약점이다.
일단 사이트의 정상적인 활동을 확인해보자.
기본값으로 userid 에 guest 를 넣으니 잠깐 userid 값이 0으로 보여지고 다시 guest 로 바뀐다. 이게 뭔가 의미가 있는걸까?
일단 시간도 줄일겸 혹시나 해서 제공한 문제 파일을 확인했다.
위에서 확인한 0은 guest을 나타내는 것이고 admin 이란 계정이 있으며 이는 1이라는 값을 가진다.
또 계속 소스코드를 보면 현재 위치가 /api/user/ 라는 것을 확인할 수 있고,
/api/flag 로 가려면 결국 /api/user/../flag 로 가면 되는것을 알 수 있다.
../flug 를 입력해보자.
어떤 코드가 막고 있어 undefuned 로 반환되고 있다.
burp suite 쓰기 싫은데… 쓸수밖에 없구만…
내 컴퓨터는 소중하니까 ms sandbox 에 설치하려고 했더니 프록시 설정이 없다.. 이건 처음알았네
ㅎㅎ 클래식 제어판에 설정 있길래 해보려했더니 적용이 안되네… 시바거…
뭐.. 결국 전달되는 값을 burpsuite 통해 넣으니 플래그가 나왔다.
끗.