728x90
반응형

이번엔 250점인 12번 문제를 풀어보도록 하자.

첫 화면은 "javascript challenge"문구만 뜨게 된다. 개발자 도굴에 들어가 소스를 확인해보면 javascript가 난독화되어 있는 것을 볼 수 있다.

난독화를 unpack 하기 위해 해당 사이트를 이용했다.

https://lelinhtinh.github.io/de4js/

 

de4js

JavaScript Deobfuscator and Unpacker

lelinhtinh.github.io

인코드 방식을 AAencode로 체크한 후 해독해보면 아래와 같은 소스코드를 확인할 수 있다.

소스코드를 해석해 보면 URL의 "="문자부터 문자열을 잘라서 ck변수에 저장한다.

for문에서는 아스키 코드의 1~121 까지의 문자를 enco변수에 저장한다.

enco_(x)함수에서는 enco함수에서 x위치의 문자열을 반환한다.

마지막 조건문에서는 ck값과 =와 enco_(x)에 문자열을 합친 값이 동일하다면 문제가 풀리게 된다.

개발자 도구의 콘솔에 마지막 if문 안의 내용을 넣어보자.

이제 url의 인자값으로 제출해보도록 하자.

문제가 정상적으로 풀리는 것을 확인할 수 있다.

 

※ 추가 학습 내용

.substr()은 문자열에서 특정 부분만 골라낼 때 사용하는 메서드이다.
document.URL.indexOf('=') : URL 주소에서 indexof를 사용하면 '='가 몇번째에 위치하는지 반환
charCodeAt : 문자열 중 하나를 선태갛여 아스키코드 번호로 변환해주는 함수
fromCharCode : 아스키코드번호를 받아 문자열을 구성해주는 함수

728x90
반응형

'CTF & WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] 14번 문제  (0) 2020.03.05
[webhacking.kr] 13번 문제  (0) 2020.03.04
[webhacking.kr] 11번 문제  (0) 2020.03.02
[webhacking.kr] 10번 문제  (0) 2020.03.02
[webhacking.kr] 9번 문제  (0) 2020.03.01

+ Recent posts