해킹을 배우는 사람의 입장에서 자세하게 풀이법을 정리하고자 합니다. 


WOWHACKER WEBGAME SEASON2  Level 6 풀이법입니다. 


링크: http://webgame.wowhacker.com/AnTsGam3/


주어진 링크를 따라 들어가봅시다. 



크롬(chrome)으로 들어가면 달팽이 이미지가 보이고, 'Target Point' 에 매우 큰 숫자가 보입니다. 

그리고 저절로 숫자가 올라가면서 'Target Point' 뒤에 글자가 바뀌는군요. 


그런데 무슨 의도인지 알기가 애매합니다. 


혹시 모르니 익스플로러(Explorer)로 들어가봅시다. 


아..마우스로 개미를 클릭 할 때마다 숫자가 올라가는 개미 잡기 게임이였군요. 


자! 단계별로 차근 차근 풀어봅시다.



추천은 저를 춤추게 합니다 ^^



  • 1단계: 자바스크립트 내용 보기 


화면에서 마우스 우 클릭 후 'View Page Source'를 선택합니다. 


소스를 보면 매우 긴 자바 스크립트가 보이게 되죠. 

<script language=javascript>document.write(unescape('%3C%73%63%72%69%70%74%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%63%72%69%70%74%22%3E%66%75%6E%63%74%69%6F%6E%20%64%46%28%73%29%

.. 중략 ..

%2636372C%2636372F%2636372C2%2638%263%3A%264D0tdsjqu%264F1')</script>


그런데 내용은 매우 길지만 난독화가 되어 있어서 도무지 알아볼 수가 없네요. 



  • 2단계: 난독화된 코드 복호화 하기 - 크롬


크롬은 기본적으로 자바스크립트 난독화 코드에 대해 복호화 해주는 기능을 제공해줍니다. 

'F12'키를 눌러 봅시다. 



화면 하단부에 html 소스가 보입니다. 

'<html>'의 '<head>'에 자바스크립트가 나와있는게 보입니다. 


자바스크립트에서 'Target Point'인 '4294967296' 검색해봅시다. 


point별로 화면에 보이던 문자가 보이는걸 보니 우리가 찾던 소스인것 같네요. 

그리고, point가 'Target Point'보다 클 경우에 대한 내용도 나와 있습니다. 



  • 2단계: 난독화된 코드 복호화 하기 - 파이어폭스(Firefox)


파이어폭스에서는 마우스 우 클릭 후 'Inspect Element(Q)'를 선택하면 됩니다. 



역시나 하단부에 스크립트 내용이 보이게 되고 크롬브라우저와 동일하게 point를 계산하는 코드를 찾아보시면 됩니다. 



  • 3단계: 정답 페이지 찾기 - 크롬


위에 코드를 보니 point 값을 넣어주는 부분이 보이는 군요. 


var point = document.wow.WoWPoInT.value;


크롬의 훌륭한(?) 기능을 활용해서 이 값을 변경해 봅시다. 

브라우저의 주소 입력창에 아래와 같이 입력해봅시다. 


javascript: document.wow.WoWPoInT.value=4294967296


앞에 'javascript:'를 붙여서 자바스크립트의 특정 값을 지정해줄 수 있는 기능입니다. 


잠시후.. 



다른 페이지로 이동되면서 화면에 답이 똭~! 나오네요. 



  • 3단계: 정답 페이지 찾기 - 파이어폭스


문제의 코드를 자세하게 살펴 봅시다. 


if (point >= 4294967296) {

var o = "";

o += document.b.a.value;

o += document.e.a.value;

o += document.c.a.value;

o += document.a.a.value;

o += document.d.a.value;

document.wow.MSG.value = "Bingo!";

location.href="wOwLevel6.php?msg=" + o + "!";

}


point가 목표 수치에 도달하면 'o'라는 변수에 a,b,c,d,e 각각의 'a.value'를 붙이도록 되어 있군요. 

그리고 나선 'location.href'로 링크를 현재 페이지의 뒷 부분을 지정해주도록 해줬네요. 


그럼, a,b,c,d,e라는 변수에 어떤 값이 들어있는지를 찾으면 되는 거네요. 


자, 자바스크립트를 보여주는 화면의 끝으로 이동해봅시다. 



<form name="a"> 가 보이고..  값이 "Crazy"라고 나오는군요. 

그 아래로 b,c,d,e가 모두 보입니다. 


위에서 봤던 코드에서 b,e,c,a,d 순서로 문자를 더했으니 우리도 그 순서대로 더해봅시다. 

'IdontLikeCrazyCow'가 되는군요. 


이제 주소창에 구한 답을 가지고 링크를 아래와 같이 입력해봅시다. 



역시 정답 페이지가 나옵니다. 


스마트한 브라우저 덕분에 난독화된 자바스크립트 보는거 참 쉽죠? 굿잡


Posted by KT한
,