본문 바로가기
Web/Webhacking.kr

Webhacking.kr Challenge RPG1 문제 풀이

by jh117jh 2024. 3. 22.
728x90

 

이번 문제는 신기하게 게임형식으로 이루어져 있다.

 

게임을 시작하면 

 

캐릭터를 움직일 수 있고 상자를 먹어야지 flag를 알려주는 것 같다.

하지만 물로 막혀있는 부분은 캐릭터가 지나가지 못해 상자까지 이동할 수 없다.

 

그래서 생각한 게 

1. 캐릭터의 위치를 위로 옮긴다.

2. 상자의 위치를 위로 옮기다.

3. 물을 없앤다.

 

3가지 방법을 생각하고 코드를 봤다.

 

 

문제에는 여러 개의 js파일이 보이고 게임 구성 코드가 적혀있다.

하지만 코드가 너무 길어 캐릭터나 상자의 위치를 정의하는 코드를 찾기 쉽지 않았다.

 

 

그래서 다른 방법을 찾기 위해 네트워크를 봤더니

다양한 데이터들을 json형태로 불러오지만

맵이 로드될 때 Map001.json파일이 로드되는 걸 확인했다.

 

 

많은 데이터중에 "data"라는 키값의 데이터가 있는데 이게 맵을 구성하는 코드 같다.

이 값을 바꿔서 맵이 로드될 때 물이 없게 만들 수 있지 않을까 하여 여러 시도를 해봤지만 응답값을 바꾸는 게 쉽지 않았다.

 

그래서 코드를 둘러보던 중 

 

chest이미지 데이터 아래 익숙한 코드가 보였다.

헥스값으로 46 4c 41 47이 flag인 것은 많은 워게임을 풀어보면서 익숙해져 있었다.

혹시 하고 아래 헥스값들을 텍스트로 변환해 봤더니 

 

flag값이 나왔다.

 

아마 json 데이터를 가져오는 방법에서의 취약점을 요구하는 문제인 것 같다.

728x90