(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)
ASCII 텍스트, 16 진수, 이진, 10 진수, Base64 변환기
없음 우주 반점 사용자 정의
www.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 |