반응형

1. 문제 설명

 

문제를 클릭해보자.

 

클릭하면 화면에 javascript challenge라는 문구 말고는 아무것도 없다.

 

쿠키값을 봤을때도 아무것도 없어 페이지 소스보기를 눌러보았다.

 

페이지 소스를 봤을때 딱히 다른건 없었지만 <script> 태그에 이상한 이모티콘이 존재했다.

 

따라서 뭔가 이번 문제는 <script> 태그에 난독화 되어 있는 코드를

 

복호화하는것이 우선일 것이라는 생각이 들었다.

 

따라서 구글에 다음과 같이 입력해보았다.

 

 

검색을 해보니 제일 위에 aaencode라는 것이 나온다.

 

클릭해보자.

 

 

클릭해 보니 alert("Hello, JavaScript")이 위의 이모티콘과 같다고 한다.

 

브라우저 콘솔에 넣어보자.

콘솔에 넣고 입력해보니 바로 alert가 떴다.

 

따라서 이번 문제를 풀기 위해 사이트에서 소개하는 Decoder-aaEncode에 접속해보자.

 

Githtml 파일로 decoder가 있다.

 

다운로드 받아 보니 Input the aaencode here난독화된 코드를 넣으면

 

Decoded aaencode String복호화된 코드가 나온다. 

 

복호화 된 코드는 다음과 같다.

 

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";
}

 

이제 위의 코드를 보면 제일 마지막에

 

location.href로 문제에서 원하는 php 페이지로 가는것이 목적인것같다.

 

2. 문제 풀이

 

먼저 위의 복호화된 코드를 브라우저 콘솔 창에 넣고 어떤 값이 리턴되는지 보자.

 

먼저 문제에서 최종적으로 원하는 것은 원하는 php 사이트로 가는것이다.

 

마지막 if문을 살펴보면 ck라는 변수가

 

=+String.fromCharCode(enco_(240))+String.fromCharCode(enco_(220))...

 

완성된 문자열같아야한다.

 

여기서 + 는 문자나 문자열을 이어주는 역할을 한다.

 

따라서 String.fromCharCode(enco_(240))를 알기 위해서는 enco_라는 함수를 먼저 선언해주어야하며

 

enco_ 함수내에 enco.charCodeAt(x)라는 것을 실행하기 위해서는 enco를 먼저 선언해주어야한다.

 

선언 한 다음 String.fromCharCode(enco_(240))를 실행해보자.

 

y가 나온다.

 

남은것도 다해보면 youaregod~~~~~~~!이라는 문장이 나온다.

 

 

마지막 코드 if문안에 ck라는 변수에 선언해주고 replace로 해주는데

 

콘솔창에서 해보면 다음과 같이 나온다.

하지만 replace가 되려면 =가 ck라는 변수에 존재해야하고,

 

ck라는 변수는 다음과 같이 정의되어 있다.

 

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

 

따라서 URL에 12번URL/?=youaregod~~~~~~~!가 들어가야한다.

 

접속해보자.

 

 

 

반응형

'웹 해킹 > Webhacking.kr' 카테고리의 다른 글

11. old-11  (0) 2021.11.09
10. old-10  (0) 2021.11.08
9. old-09  (0) 2021.11.08
8. old-08  (0) 2021.11.05
7. old-07  (0) 2021.11.04

+ Recent posts