[webhacking.kr] 12번 문제 풀이[Javascript]

최대 1 분 소요

💡 Webhacking.kr challenge(old) 12번 문제에 대한 풀이입니다.

문제

문제 화면

image

대놓고 자바스크립트를 풀어보라는 문제입니다.

소스 코드

image

소스코드가 아주 괴랄하게 생겼습니다.. 일단 코드 언패킹 부터 해봤는데 별 차이가 없습니다.

image

일단 전체 코드중에 읽을 수 있는 글자가 한 글자도 없어서 그냥 맨처음 몇줄을 복사해서 구글에다 넣어봤습니다.

image

링크 : https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html

해당 사이트를 들어가보니 이런식으로 인코딩 하는걸 aaencoding이라고 하는것 같습니다. 어찌되었든 해당 사이트에서 디코딩을 해주니 스크립트를 디코딩을 해봅니다.

image

디코딩이 되었습니다. 이제 해당 내용을 개발자모드 > 콘솔에 입력해서 해석해 보겠습니다.

  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)){
    location.href="./"+ck.replace("=","")+".php";
  }

if문 안쪽을 보면 클리어 조건이 있습니다. if( ck == ‘= ~~~~~~~’ ) location.href = ~이런 식으로 되어 있습니다. if문 안의 복잡하게 구현된 조건을 입력해 보면

image

=youaregod~~~~~~~!~~이라는 문자열 입니다. 따라서 ck = 위의 문자열을 입력해 주고, location.href 부분을 실행해주면 다음과 같이 경로가 이동되면서 문제가 풀립니다.

image

image

댓글남기기