티스토리 뷰

12번 문제 : javascript를 이용


 


소스보기를 하면 다음과 같이 나온다.


문제를 풀기 위해서


String.fromCharCode와 eval함수가 뭔지 그래도 알고 넘어가자


String.fromCharCode : 숫자들을 아스키코드로 반환

eval : 문자열을 자바스크립트 코드로 변환시켜주는 함수


직접 저 구문을 스크립트로 돌려도 되지만

주소창에 

javascript:document.write(wtf); 를 치면 글로 나오고( 복사 가능 )

javascript:document.alert(wtf); 를 치면 경고창으로 나온다( 복사 못함 )

소스가 나온다.


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("=","")); }




복사를 해와서 긁어 왔다. 다시 보기 좋게 꾸미면





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("=","")); 

}





이와 같은 구문이다. 


password부분을 보면 ck.replace("=",""); 로 보아

빨간 부분을 없애고 다시 실행시켜서 alert 혹은 write로 출력하면 답이 나온다.


"="+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)


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)




아 그리고 중요한거!

wtf 는 단순히 소스만 있다


스크립트로 돌리기 위해서 html에서

상단 하단에 <script></script>를 해줘야 된다. 그래야 자바스크립트 소스로 인식을 한다.


괄호 주의도 잘 해주자.. 자바스크립트는 에러가 나면 어디서 났는지 도무지 찾을수가 없다.


파일은 txt로 되어있지만 html로 바꿔서 실행하면 된다.