워게임/CTFlearn

[CTFlearn] What could this be? - MISC / 자바스크립트

SecurityMan 2022. 12. 24. 11:00

 

CTFlearn의 마흔여덟번째 문제

 

이번 문제는 MISC 카테고리의 문제이다.

 

MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.

 

뭔가 MISC 치고는 점수가 높은데다 Medium 난이도의 문제라 살짝 쫄았다.

 

반응형

 

문제에서 제공되는 주소로 접속하면

 

 

what_can_this_be.txt 파일을 다운로드 받을 수 있다.

 

 

해당 파일을 열어보면 이런 내용이 들어있다..

 

괄호와 대괄호, 더하기와 느낌표로 이루어진 엄청나게 긴 내용이다.

 

사람이 인지할 수 있는 알파벳이나 숫자는 전혀 없이 이렇게만 나와있다.

 

이걸 어떻게 풀어야 하나 고민하다가

 

예전에 어떤 CTF에서 Javascript 를 이런식으로 난독화 하는걸 본 적이 있는것 같아

 

일단 시도해보기로 했다.

 

 

크롬에서 새 탭을 연 뒤, 바로 F12를 눌러 개발자도구의 콘솔 탭으로 이동했다.

 

콘솔에 주어진 이상한 문자열을 통채로 넣고 엔터를 쳤더니

 

위처럼 빨간 경고문구가 떴다.

 

내용을 보니 unsafe-eval 속성때문에 자바스크립트를 실행할 수 없으니

 

Chrome://webui-test 로 이동해서 실행해보라는 것이었다.

 

 

시킨대로 chrome://webui-test 로 이동해서

 

다시한번 콘솔을 켜고 입력을 해봤더니

 

 

알람창이 뜨면서 플래그가 나오는 것을 확인할 수 있었다.

 

 

 

또 다른방법으로도 풀 수 있다.

 

de4js(https://lelinhtinh.github.io/de4js/) 라는 사이트인데

 

Online Javascript Deobfuscator 사이트이다.

 

각종 난독화된 자바스크립트를 가독성 있게 바꿔주는데

 

문제파일의 내용을 복붙한 뒤 Auto Decode 버튼을 누르면

 

저렇게 아래쪽에 플래그가 출력되는것을 볼 수 있다.

 

 

이게 대체 무슨 난독화인가 찾아봤더니

 

JSFuck 라는 esoteric javascript 였다.

 

위처럼 alert(1) 을 JSFuck 으로 바꾸면 저렇게 길게 바뀌게 된다.

 

 

기본 문법은 이렇다고 한다.

 

이런걸 만든 사람은 뭐하는 사람인지...

반응형