Webhacking Writeup RPG1문제입니다.
일단 문제 사이트에 접속해보면
쯔꾸르류 게임에서 많이본 템플릿인데 여기서보니 반갑군요
일단 continue는 없으니 new game로 들어가 보겠습니다.
캐릭터도 그렇고 보물상자도 그렇고 오픈소스라 그런지 너무 익숙합니다.
이런류는 마우스 좌 클릭으로 캐릭터 이동이 기본입니다.
일단 딱보니 캐릭터가 보물상자를 열면 문제가 해결될 것으로 보입니다.
강으로 막혀 캐릭터의 이동이 안됩니다.
대략 예상되는 해결방안은 몇가지가 생각납니다.
1. 캐릭터의 리스폰위치를 바꿔 상자바로 앞에 생성되게 하여 해결하는 방법
2. 상자의 리스폰 위치를 캐릭터 위치로 변경하는 방법
3. 맵에서 강을 지워버리는 방법
작성자의 개발쪽의 능력이 많이 부족한 상황이므로 가장 간단할 것으로 예상되는
3번 방법을 사용하기로 했습니다.
일단 웹게임 문제를 처음접해봐서 어디를 어떻게 어디서 부터 할지 감이 오지 않아
게임개발을 현업으로 하고 있는 친구의 도움을 조금 받았습니다.
친구의 말로는 map이라 이름붙은 파일이 있다면 그 안에 같은 값으로 나열된게 있을 것이고
그값이 맵의 땅, 강, 절벽일 것이라고 합니다.
그러면 가장많이 차지하고 있는 땅의 값으로 전부 변경해주면 강을 지울수 있다고 합니다.
그런데 파일 위치와 어디서 봐야 하는지 몰라
여기서 몇시간이나 막혔었습니다.
결국 도움을 요청했더니
친구 말로는 웹게임이 새로고침으로 전달이 되지 않는다면
개발자 모드에서 network부분을 보면 json파일을 볼 수 있다고 합니다.
(여러가지 내용을 들었지만 알아 들을 수 있는게 이정도 였습니다.)
해서 개발자 모드의 네트워크 부분을 들어가 보았습니다.
너무 많아서 어떻게봐야하나 했지만
친구의 조언으로 줄이 그어져 있는 부분을 잘라서 보면
문제사이트에 접속시 나오는 게임시작 애니메이션과 관련된 js라고 합니다.
보면 중간에 plugins 와 main등 이전에 봤던 new game을 클릭하기 이전에 대한 파일들이라고 볼 수 있습니다.
이것을 어떻게 구분했냐면
사진을 자세히 보면 우측끝에 미세하게 보이는데
시작 애니메이션과 그 이전까지는 어떠한 파일도 없습니다.
즉 어떠한 전송이나 파일을 읽어오는 것이 없다로 볼 수 있어서
new game클릭 이전과 이후로
구분이 가능했습니다.
그럼마지막으로
new game을 클릭한 이후는
그렇게 원하던 Map001.json 파일을 찾았습니다.
이제 이파일에서 땅, 강, 절벽, 값을 찾아 수정하면 문제가 해결되겠군요
다른 파일은 png형태로 보아 그림같은데 한번 보겠습니다.
역시 상자와 맵의 대한 그림파일 이였습니다.
그럼 찾느라 고생했던 Map파일을 보겠습니다.
data 부분을 보면 2816 ...으로 이루어진 부분 이부분이 예상되어
좀더 자세히 보려고 열어봤더니
네 더볼것도 없네요 이부분이 맵을 구성하는 값이 확실해졌습니다.
중간을 살펴보니
0과 2129가 강이든 절벽이든 땅은 아닌것이 확실해졌고 땅의 값은 2816으로 예상할 수 있었습니다.
이제 값을 변경하면 되는데...
안됩니다. 여기서 변경이 안되는건지 안됩니다.
진짜 여기서 한번 포기할까 했습니다.
도와주던 친구는 자신은 개발만 했다고 모른다고 알아서 하라하구요...
network부분에서 계속 삽집을 하다가
json파일이 전송되서 연결되는 거면 중간에 캡처가 되지 않을까?
라는 생각이 들어 버프스위트를 이용해봤습니다.
Map파일이 넘어가기전에 캡쳐해봤는데 원하던 소스부분이 안나옵니다.
다시 network부분으로 돌아갔다가
다시 버프스위트로 해봤다가
삽질을 하다가 history를 봤는데
네 전 멍청이였습니다.
Request만 캡쳐하고 Response는 그냥 넘겼던겁니다.
근데 Response는 캡쳐해본적이 없어서 어떻게 캡쳐가 가능한가
구글링을 좀했습니다.
아래 글을 참고 해서 Response를 캡쳐하는 법을 배웠습니다.
BurpSuit을 이용한 Response 패킷 변조 실습 : https://johyungen.tistory.com/25
이후 캡쳐를 하게되면
캡쳐에 성공했습니다.
이제 data값중 2816이 아닌 값을 전부 2816으로 변경해보겠습니다.
깔끔한 잔디밭땅이 되었습니다.
상자를 열어보면
플래그를 찾았습니다.
webhacking 사이트의 Auth에 전달해주면
문제가 해결되었습니다!
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
Webhacking Writeup 5번 문제 (0) | 2022.08.12 |
---|---|
Webhacking Writeup g00gle2 문제 (0) | 2022.08.10 |
Webhacking Writeup 33번 문제 (0) | 2022.07.28 |
Webhacking Writeup 38번 문제 (0) | 2022.07.28 |
Webhacking Writeup 23번 문제 (0) | 2022.07.28 |