(Obfuscation : 난독화)
문제를 들어가자마자 password를 입력하라고 한다.
역시나 아무값을 입력해보고 잘못됐다는 알림을 받는다.
페이지 원본보기를 통해 JS코드를 보면 pass값이 있다.
그리고 사용자의 입력값(h)가 pass를 unescape한 값과 같을 때 password가 맞다는 알림을 받게 되어있다.
escape함수는 영어 대소문자, 특수기호(*@-_+./), 숫자를 제외한 문자를 16진수의 형태로 바꿔준다.
1바이트 문자는 %XX의 형식, 2바이트 문자는 %uXXXX의 형식을 갖는다.
unescape함수는 escape된 문자열을 원래대로 돌려준다.
pass = %63%70%61%73%62%69%65%6e%64%75%72%70%61%73%73%77%6f%72%64이므로 %XX의 형태를 갖는다.
즉, escape되었다고 할 수 있다.
따라서 이 값들을 unescape한 값이 답이 된다.
ASCII 텍스트, 16 진수, 이진, 10 진수, Base64 변환기 (rapidtables.org)
해당 사이트에서 16진수 입력칸에 pass값을 입력하면 원래 문자열인 cpasbiendurpassword를 얻을 수 있다.
'보안 > Root Me' 카테고리의 다른 글
Root Me: Javascript - Obfuscation 3 (0) | 2022.03.08 |
---|---|
Root Me: Javascript - Obfuscation 2 (0) | 2022.03.08 |
Root Me: Javascript - Authentication 2 (0) | 2022.03.08 |
Root Me: Javascript - Source (0) | 2022.03.08 |
Root Me: Javascript - Authentication (0) | 2022.03.08 |