자바스크립트 난독화와 관련된 MISC 카테고리의 문제
MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.
문제파일로 Canvas.zip 파일이 주어진다.
압축을 풀면 위에 보이는 네 개의 파일/폴더가 나온다.
index.html 파일을 열어보면 이렇게 로그인 창이 하나 뜬다.
정황상 비밀번호를 알아내거나 로그인을 우회해야 할 듯 하다.
F12를 눌러 개발자도구에서 HTML코드를 보니
로그인 버튼을 누르면 validate() 함수가 실행된다는 것을 알았다.
위쪽에 script 태그로 js/login.js 에서 스크립트가 실행되도록 해놓았으니
login.js 파일을 살펴본다.
login.js 파일을 봤더니 난독화가 되어있었다.
길어서 캡쳐가 짤렸는데,
자바스크립트 길이가 총 147줄이다.
이걸 일일이 비교해가면서 찾는건 불가능에 가깝다..
아까 봤던 validate() 함수를 컨트롤 + f 로 찾아보니
거의 마지막쯤에 있었다.
보다보니 맨 마지막 줄이 눈에 띄었는데
res 라는 변수에 어떤 값을 담고 있는게 보였다.
res 바로 뒤에있는 String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'] 에서
16진수 부분을 CyberChef(https://gchq.github.io/CyberChef)에서 문자로 바꿔보니 fromCharCode 가 나왔다.
fromCharCode 는 유니코드 값을 문자열로 바꿔주는 역할을 한다.
어떤 값을 문자열로 바꿔서 res 변수에 담고 있는것이다.
res 에 어떤 값이 들어갔는지 확인하는 방법은 아주 간단하다.
개발자도구의 콘솔 탭에서
res 라고 입력하고 엔터를 치면 된다.
그럼 res 변수에 들어있던 플래그가 출력되는것을 볼 수 있다.
'워게임 > HackTheBox' 카테고리의 다른 글
[HackTheBox] Weather App - 웹해킹 / SSRF / SQL Injection (70) | 2023.01.05 |
---|---|
[HackTheBox] Easy Phish - OSINT / nslookup / dig (74) | 2022.12.28 |
[HackTheBox] The secret of a Queen - 암호학 / Mary Queen of Scots Cipher (61) | 2022.12.16 |
[HackTheBox] petpet rcbee - 웹해킹 / Command Injection / Pillow (56) | 2022.12.12 |
[HackTheBox] Illumination - 포렌식 / git (54) | 2022.12.08 |