728x90

소스코드를 보면 이상한 코드가 보인다. 일부만 구글링 해보면 aaencode라는 것을 알 수 있다.

aaencode decoder이다.

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

 

aadecode - Decode encoded-as-aaencode JavaScript program. ['_']

aadecode - Decode encoded-as-aaencode JavaScript program. (゚Д゚) ['_'] Enter ...

cat-in-136.github.io

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

decode 결과이다.

URL에서 '=' 문자부터 끝까지 문자열을 떼어 변수 ck에 저장한다.

String.fromCharCode() 메서드는 UTF-16 코드 유닛의 시퀀스로부터 문자열을 생성해 반환한다. enco에는 \x01\x00\x02\x00...a\x00b\x00... 이런식으로 저장된다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

 

String.fromCharCode() - JavaScript | MDN

String.fromCharCode() 메서드는 UTF-16 코드 유닛의 시퀀스로부터 문자열을 생성해 반환합니다.

developer.mozilla.org

charCodeAt 메서드는 index에 해당하는 문자의 unicode 값을 리턴한다.

https://opentutorials.org/course/50/87

 

charCodeAt - 생활코딩

요약 index에 해당하는 문자의 unicode 값을 리턴 문법 string.charCodeAt(index) 인자 index - 필수, 0보다 큰 정수 설명 유니코드는 모든 시스템에서 일관되게 문자를 표현하기 위한 산업표준이다. charCodeAt

opentutorials.org

테스트해보면 알파벳의 경우는 String.fromCharCode() 메서드는 숫자를 문자로 바꾸고, charCodeAt 메서드는 문자를 다시 숫자로 바꾼다.

이 문제의 코드를 전문 용어로 설명하기보다 간략하게 설명하자면 먼저 숫자를 문자로 바꾸어 enco 변수에 저장한다. 마지막 if 문에서 ecno_ 함수에 의해 문자를 숫자로 변환 후 fromCahrCode 메서드로 다시 숫자를 문자로 변환한다.

개발자 옵션의 콘솔에 들어가서 자바스크립트 코드를 복붙한다.

youaregod~~~~~~~!을 url 쿼리의 인자로 전달하자.

url 뒤에 ?hi=youaregod~~~~~~~! 로 전달하면 풀린다. hi는 임의의 값이다. 따라서 다른 문자(열)로 대체가능하다.

728x90

'webhacking.kr' 카테고리의 다른 글

old-14  (0) 2023.02.21
old-13  (0) 2023.02.21
old-11  (0) 2023.02.20
old-10  (0) 2023.02.20
old-09  (0) 2023.02.20

+ Recent posts