Wargame.kr

Web_500

fly me to the moon





이번에는 자바스크립트로 만들어진 게임이네요. 치팅 방지 시스템을 우회하여 게임을 클리어하는 것이 우리의 목표입니다.




저기서 클릭하여 게임을 시작하고, Score를 31337점까지 올리는 것이 우리의 목표입니다.

물론 직접 31337점을 만들어도 되지만... 힘들잖아요?

소스를 확인해봅시다.



윗부분에는 style에 관련된 코드이고, 우리에게 중요한 부분은 역시 스크립트쪽이죠!



packing 되어 있는 자바스크립트를 언패킹 해주는 웹페이지에 복사하여 언패킹 해봅시다. 여기에 추가적으로 JSBeautifulier를 적용하여 예쁘게 만들어줍시다.




sublime text로 열어 확인해보는데, 중간에 type, url, data를 어딘가로 보내는 부분이 있습니다. 수상하지 않나요?

그리고 token이 변수이기 때문에 어디서 값을 할당받는지 확인해봅시다.



updateToken 함수에서 할당을 해주네요. 이제 이 값들이 어떤 값인지 확인 해 봅시다. _0x32bb 배열은 스크립트 시작부분에 고정값으로 선언되어있습니다.



첫 번째로 봤던 코드에서 type은 POST, url은 high-scores.php, data는 token=토큰&score=점수(BTunnelGame[getScore]()) 인 것을 알 수 있습니다.

더불어, 토큰은 token.php에서 받아오네요.



token.php에 접근하면, 이 때마다 랜덤한 숫자 값이 할당됩니다.




하지만 할당받은 직후 그 값으로 high-scores.php에 접근하면 PARAM ERROR가 나타나네요. token 부분이 아마 시간에 따라 값이 변화하며, 일정 시간 안에 해당하는 토큰을 high-scores.php에 넣어줘야만 flag가 출력되는 형식인 것 같습니다. 이 부분이 바로 prevent cheating system인 것 같네요.

python으로 스크립트를 작성해줍시다.




token.php에 먼저 접근하여 token을 받아 준 후, high-scores.php에 접근하여 score 값을 넘겨줍시다.




Flag를 깔끔하게 뱉어주네요.


'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Web_500_md5 password  (0) 2016.05.18
[Wargame.kr] Web_500_md5_compare  (2) 2016.05.18
[Wargame.kr] Web_500_DB is really GOOD  (0) 2016.05.17
[Wargame.kr] Web_450_login filtering  (0) 2016.05.17
[Wargame.kr] Web_450_WTF_CODE  (0) 2016.05.17

Wargame.kr

Web_450

flee button



450점짜리 문제네요. 바로 봅시다.



화면은 이렇지만 문제에 접속해서 마우스를 움직여보면 click me!라는 버튼이 마우스에서 멀찍이 떨어져서 이동합니다.

이를 클릭하는게 이 문제의 핵심입니다.

소스를 확인해보죠.



p8.js를 불러오네요.



맨 아래 escdiv() 함수에서 거리를 늘려주네요.

i 값과 sw 값이 늘어나지 않게 큰 값으로 넣어줍시다. 그리고 ax와 ay의 값도 0으로 바꿔주도록 하죠.



현재 마우스가 click me!에 있는 상태입니다.




'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Web_500_DB is really GOOD  (0) 2016.05.17
[Wargame.kr] Web_450_login filtering  (0) 2016.05.17
[Wargame.kr] Web_450_WTF_CODE  (0) 2016.05.17
[Wargame.kr] Web_300_QR CODE PUZZLE  (0) 2016.05.16
[Wargame.kr] Web_200_already got  (0) 2016.05.16

Wargame.kr

Web_300

QR CODE PUZZLE



QR코드 관련 문제인 것 같습니다. 확인해보죠.



자바스크립트 퍼즐이라고 합니다.


접속 하니 QR코드가 우릴 반겨주네요. 퍼즐처럼 뒤섞여있습니다.

소스를 한번 확인해보죠.




저기가 수상해보이네요. 디코딩 해봅시다.



/img/qr.png라는 그림 파일을 불러오는 함수입니다.



접속 하니 퍼즐로 만들어지기 이전의 QR코드가 복원되었습니다.

스마트폰으로 스캔해서 접속 해 보면 FLAG를 얻을 수 있습니다.

'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Web_500_DB is really GOOD  (0) 2016.05.17
[Wargame.kr] Web_450_login filtering  (0) 2016.05.17
[Wargame.kr] Web_450_WTF_CODE  (0) 2016.05.17
[Wargame.kr] Web_450_flee button  (0) 2016.05.16
[Wargame.kr] Web_200_already got  (0) 2016.05.16

SuNiNaTaS

Web Level2




2번째 문제입니다. 겉으로만 보면 SQLi 문제로 보이는데.. Join밖에 없네요. 소스를 한번 확인 해 보도록 하죠.



소스상에는 js로 가입 하는 부분이 구현되어있습니다. 따로 db에 저장하거나 하진 않고, id와 pw가 같을 경우 해당 값들을 초기화시키는 부분이 있습니다.

그런데 아래 힌트를 보니 id와 pw가 같게 만들라고 합니다.

chrome의 개발자 도구를 이용하여 직접 때려박으면 쉽게 우회가 가능합니다.



위와 같이 직접 js 코드를 때려박아주면 Authkey를 뱉어줍니다.


'Wargame > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS Web Level6  (0) 2016.05.09
SuNiNaTaS Web Level5  (0) 2016.05.09
SuNiNaTaS Web Level4  (3) 2016.05.07
SuNiNaTaS Web Level3  (0) 2016.05.06
SuNiNaTas Web Level1  (0) 2016.05.06

+ Recent posts