<문제>
<풀이>
문제 사이트에 접속하면 처음으로 보이는 페이지이다.
문제에 나와있는대로 자바스크립트로 만든 게임인 것 같다.
클릭해서 게임을 플레이해본다.
우주선이 터널 벽에 닿으면 Game over가 되면서
YOU NEED GET THE SCORE 31337 이라는 메시지가 뜬다.
SCORE가 31337이 될 때까지 플레이하려면 아주 많은 시간과 노력이 걸리므로
javascript 코드를 수정해서 SCORE 값을 저장하는 변수에 임의로 31337을 입력해줄 것이다.
개발자도구(F12)를 열어서 Elements 탭에서 script 코드가 있는 <script>태그를 살펴보았다.
<head></head> 안에서 난독화 되어있는 script 코드를 찾을 수 있었다.
난독화되더있는 javascript를 디코딩해주는 사이트가 있다.
Online JavaScript beautifier
Beautify JavaScript, JSON, React.js, HTML, CSS, SCSS, and SASS
beautifier.io
사이트에 코드를 붙여넣고 Beautify Code를 클릭했다.
251행의 긴 코드가 나왔다.
score라는 문자열을 검색해보니 getScore 함수를 찾을 수 있었다.
_0x8618x7() 함수의 반환값을 return하는 것을 보니 _0x8618x7() 함수의 return 값이 score와 관련이 있는 것 같다.
_0x8618x7를 검색해보니 _0x8618x6이라는 변수를 return하고 있다.
개발자도구의 Console에 secureGame() 함수 전체를 복붙하고
_0x8618x7() 함수를 찾아서 return 값을 31337로 바꾼 뒤 적용해줬다.
다시 게임을 시작하고 GAME OVER 시키자 FLAG가 출력되었다.
'드림핵' 카테고리의 다른 글
[드림핵 워게임] file-csp-1 (0) | 2023.08.27 |
---|---|
[드림핵 워게임] mongoboard (0) | 2023.08.22 |
[드림핵 워게임] [wargame.kr] strcmp (0) | 2023.08.19 |
[드림핵 워게임] [wargame.kr] type confusion (0) | 2023.08.19 |
[드림핵 워게임] [wargame.kr] login filtering (0) | 2023.08.19 |