메인 화면입니다.

소스보기를 통해 소스를 확인해보면....

하....

난독화 되어 있습니다 ~ 뭔가 모르게 귀업네요ㅋㅋㅋ

무엇으로 인코딩되어 있는지 잘 모르겠어서 구글링을 통해 알아본 결과 aaen_code로 인코딩 되었는 걸 확인 할 수 있었습니다.

크롬 개발자 도구의 console을 통해 디코딩을 진행해보면 아래와 같습니다.

왜 그런지 잘 모르겠는데 크롬 개발자 도구로 결과확인시 마지막 줄의 "('_')"를 제거해주셔야 동작합니다.

내용이 잘렸는네요 더블클릭하면 전체 내용을 볼 수 있습니다.

크롬 개발자 도구 이외에 디코딩 사이트를 통해 디코딩을 진행할 수 도 있습니다.

위는 디코딩 사이트를 통해 출력한 결과입니다.

aaen_code의 경우 마지막에 ('_')으로 끝나는 것이 특징인 것 같습니다.

이제 소스코드를 천천히 하나씩 분석해 보겠습니다.

이 부분의 경우 URL문자열의 '='문자를 포함하여 이후의 문자열을 추출하는 역할을 합니다.

document.write()를 통해 문자열을 한번 출력해보았습니다.

위에서 보는 것 과 같이 '=1'이 출력되는 것을 확인 할 수 있습니다.

이제 반복문을 살펴보겠습니다.

String.fromCharCode()함수의 인자로 i 값을 넣어주고 있습니다.

여기서 String.fromCharCode()의 의미는 인자로 유니코드 10진수 값을 대입하면 문자로 표현해주는 함수입니다.

위의 코드를 이용하여 enco변수에 저장된 문자열을 출력해보겠습니다.

위와 같이 문자열이 저장된 것을 확인 할 수 있습니다.

String.charCodeAt(x)함수의 경우 x는 인덱스를 의미하며 String에 저장된 인덱스의 유니코드 값을 추출하는 역할을 합니다.

그 다음 ck변수와 비교하는 부분을 출력해보았습니다.

결과는 아래와 같습니다.

이를 토대로 결과를 도출해내자면 ck 변수의 값은 입력한 URL의 '='문자를 포함한 이후의 문자열을 저장하고 있고 위에서 출력한 "=youaregod~~~~~~~!"문자열에서 '='문자를 없애고 ".php"를 붙여서 그 URL에 해당된 페이지를 호출 할 것으로 예상되었습니다.

최종 URL "https://webhacking.kr/challenge/code-3/youaregod~~~~~~~!.php"을 입력해보겠습니다.

챌린지 12 클리어!

'WAR GAME > Webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level14 (old)  (321) 2020.04.27
[webhacking.kr] Level13 (old)  (318) 2020.04.27
[webhacking.kr] Level11 (old)  (360) 2020.04.27
[webhacking.kr] Level10 (old)  (587) 2020.04.27
[webhacking.kr] Level9 (old)  (752) 2020.04.27

+ Recent posts