[해킹 대회 문제] wargame.kr - fly me to the moon 문제풀이(Write Up)
fly me to the moon 문제 또한 웹 해킹 문제 유형입니다. 자바스크립트(JavaScript) 클라이언트 단의 코드 분석을 통해 문제를 해결할 수 있습니다.
[Start] 버튼을 누르면 간단한 형태의 오락실 게임이 등장합니다.
게임을 대충 플레이한 뒤에 패배하시면, 다음과 같이 점수가 31337점이 되어야 한다고 합니다. 아무래도 고득점을 받아야 플래그(Flag) 값을 얻을 수 있을 것입니다. 어떻게 하면 플래그 값을 얻을 수 있을까요?
난독화가 되어 있는 자바스크립트(JavaScript) 소스코드를 확인해야 합니다.
이럴 때는 JS Beautifier를 이용할 수 있습니다. 매우 복잡한 난독화 기법이 사용되지 않은 경우, 간단한 형태의 난독화는 이러한 도구를 이용하면 풀리게 됩니다.
▶ JS Beautifier 홈페이지: https://beautifier.io/
위 사이트에 접속하여 난독화 된 소스코드를 풀어 본 뒤에, 확인을 해보시면 this['getScore']라는 함수는 _0x8618x7() 함수와 동일합니다. 또한 _0x8618x7() 함수는 _0x8618x6이라는 변수의 값을 가져오는 함수입니다. 다시 말해 _0x8618x6이 점수(Score)를 의미하는 함수일 것이라고 예상할 수 있습니다.
따라서 게임 페이지에서 개발자 도구(F12)를 실행하여, [Console] 탭으로 이동해서 다음과 같이 난독화가 풀린 소스코드를 통째로 복사한 뒤에 score에 해당하는 변수 값만 31,337로 변경하여 붙여넣기 할 수 있습니다.
이후에 엔터(Enter)를 입력하여 적용한 뒤에 다시 게임을 플레이하면 정상적으로 Flag가 등장합니다.
'해킹 방어 대회(CTF)' 카테고리의 다른 글
[해킹 대회 문제] wargame.kr - DB is really GOOD 문제풀이(Write Up) (0) | 2019.07.13 |
---|---|
[해킹 대회 문제] wargame.kr - md5 password 문제풀이(Write Up) (0) | 2019.07.13 |
[해킹 대회 문제] wargame.kr - WTF_CODE 문제풀이(Write Up) (0) | 2019.07.13 |
[해킹 대회 문제] wargame.kr - login filtering 문제풀이(Write Up) (1) | 2019.07.13 |
[해킹 대회 문제] wargame.kr - QR CODE PUZZLE 문제풀이(Write Up) (0) | 2019.07.13 |