-
pathtraversal개인공부/드림핵 2024. 11. 22. 22:13
이번 문제는 경로 이동 취약점을 이용해 /api/flag 디렉터리에 존재하는 FLAG를 획득하는 문제이다.
[문제 풀이]
1. 문제 서버 접속

서버 접속 시 위의 화면을 볼 수 있다. 이때 Get User Info를 눌러 유저 정보를 가져오는 화면으로 이동한다.
2. 동작 확인

유저 정보를 가져오는 화면의 userid 값은 이미 guest로 채워져있다. 이때 1번 View를 클릭 할 시 2번의 내용처럼 guest 유저에 대한 정보를 가져온다.
동작 방식을 확인하기 위해 문제 파일을 다운로드 하여 분석한다.
3. 문제 파일 분석

코드 확인 시 users 딕셔너리가 정의되어 있으며 여기서 정보를 가져오는 것을 알 수 있다.


이러한 딕셔너리 안의 값들은 internal_api라는 함수로 정의된 api를 이용해 동작하는 것을 확인 가능하다.

확인된 취약점은 위 사진과 같다.
입력받은 user에 대한 정보를 가져올때 사용자의 입력값에 대한 검증 없이 그 값을 그대로 이용하여 요청을 진행한다.
이럴경우 ../ 와 같은 경로 이동 구문을 이용하여 경로 이동 취약점을 야기할 수 있다.
4. Exploit

BurpSuite를 이용해 요청을 가로채 userid 값을 변조한다.
5. FLAG 획득

FLAG를 획득하였다.
'개인공부 > 드림핵' 카테고리의 다른 글
command-injection-1 (0) 2024.12.08 file-download-1 (0) 2024.12.08 cookie (0) 2024.11.21 🌱 simple-web-request (0) 2024.11.21 ex-reg-ex (0) 2024.11.18