티스토리 뷰
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로 바꿔서 실행하면 된다.