본문 바로가기

워게임/웹해킹kr

웹해킹kr 12번 문제 풀이

http://webhacking.kr/challenge/codeing/code3.html




링크로 들어가니 검은화면에 하얀글씨만 떠있습니다.

자바스크립트 문제는 여기서 처음푸는데 이 문제는 그다지 어렵지 않습니다.

먼저 페이지 소스 보기를 합니다.



WorkTimeFun이라는 곳에 String.fromCharCode 블라블라가 들어가고, 나중에 WorkTimeFun이 eval에 의해 실행되군요.

그럼 저 이상한 블라블라를 먼저 풀어봐야겠죠. 크롬 브라우저나 파이어폭스 등을 사용하고 계시다면 개발자도구(F12)의 콘솔에서 쉽게 자바스크립트 코딩이 가능합니다.


저는 크롬 개발자도구의 콘솔에서 입력했더니 아래처럼 나왔습니다.


var enco='';

var enco2=126;

var enco3=33;

var ck=document.URL.substr(document.URL.indexOf('='));

 

 

for(i=1;i<122;i++)

{

enco=enco+String.fromCharCode(i,0);

}

 

function enco_(x)

{

return enco.charCodeAt(x);

}

 

if(ck=="="+String.fromCharCode(enco_(240))+String.fromCharCode(enco_(220))+String.fromCharCode(enco_(232))+String.fromCharCode(enco_(192))+String.fromCharCode(enco_(226))+String.fromCharCode(enco_(200))+String.fromCharCode(enco_(204))+String.fromCharCode(enco_(222-2))+String.fromCharCode(enco_(198))+"~~~~~~"+String.fromCharCode(enco2)+String.fromCharCode(enco3))

{

alert("Password is "+ck.replace("=",""));

}


여러가지가 뜨는군요. 대충 해석하자면, 변수 enco에 1부터 121까지 문자유니코드를 더해서 저장합니다.

그 출력결과는 아래와 같습니다.


!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy


그다음 함수 enco_()는 이제 int형 숫자를 가져와서 원래있던 enco에서 골라 문자열로 출력합니다.

ck가 위의 문자열과 일치할 때, =를 뺀 문자열이 비밀번호가 되겠군요.

그럼 자바스크립트를 작성해보겠습니다.


if문의 위까지는 개별적인 코드들이니 복붙하여 입력해둡니다.

그리고 if문에서 따로 가져와야겠죠.

ck= "="+String.fromCharCode(enco_(240))+String.fromCharCode(enco_(220))+String.fromCharCode(enco_(232))+String.fromCharCode(enco_(192))+String.fromCharCode(enco_(226))+String.fromCharCode(enco_(200))+String.fromCharCode(enco_(204))+String.fromCharCode(enco_(222-2))+String.fromCharCode(enco_(198))+"~~~~~~"+String.fromCharCode(enco2)+String.fromCharCode(enco3)


이렇게하면 ck에 함수를 거친 데이터들이 저장될 것입니다.



답은 이렇게 출력됩니다.


ck.replace("=","")


마지막으로 치환을 거치면 답이 나옵니다.

이 답을 Auth에 입력하면 클리어





'워게임 > 웹해킹kr' 카테고리의 다른 글

웹해킹kr 38번 문제 풀이  (0) 2016.05.24
웹해킹kr 54번 문제 풀이  (0) 2016.05.23
웹해킹kr 28번 문제 풀이  (0) 2016.05.23
웹해킹kr 11번 문제 풀이  (0) 2016.05.03
웹해킹kr 33번 문제 풀이  (0) 2016.05.03