Wargame/Root-me = Web - Client
-
<Root-me> Javascript - Obfuscation 2Wargame/Root-me = Web - Client 2021. 12. 19. 17:35
빈 페이지만 출력된다. 페이지 소스 코드를 살펴보면 var pass = unescape("unescape%28%22String.fromCharCode%2528104%252C68%252C117%252C102%252C106%252C100%252C107%252C105%252C49%252C53%252C54%2529%22%29"); 개발자 도구 Console 탭에 unescape()문을 그대로 입력하면 결과로 나온 문자열에서 다시 unescape()문을 Console 탭에 입력하면 String.fromCharCode()문을 Console 탭에 입력하면 더이상 함수의 형태가 아닌 일반 문자열이 출력된다. 이 값을 문제 페이지에 입력하면 문제를 해결할 수 있다. ※ unescape() : URL 인코딩 문자열을 AS..
-
<Root-me> Javascript - Obfuscation 1Wargame/Root-me = Web - Client 2021. 12. 19. 17:17
비밀번호를 입력하라고 한다. 페이지 소스 코드를 살펴보면 /* */ h는 입력받는 값이다. 이 h가 unescape(pass)와 같으면 "패스워드가 승인되었다"라는 메시지를 띄우는 것으로 보아 unescape(pass)가 찾는 비밀번호인 것 같다. unescape(pass)를 해보면 "cpasbiendurpassword"이 나온다. 이 값을 문제 페이지에 입력해보면 문제가 해결된다.
-
<Root-me> Javascript - WebpackWargame/Root-me = Web - Client 2021. 12. 19. 16:16
오리와 원앙 사진을 볼 수 있다. 문제 제목으로 보아 Webpack에 관련된 문제인 것 같다. Webpack은 모듈 번들러로, 각각의 리소스 파일을 합쳐서 사용자에게 전달하기 좋은 형태로 만들어주는 역할을 한다. 모듈은 각 리소스 파일을 뜻하고, 번들은 웹 팩 실행한 후 나오는 결과 파일을 말한다. 개발자 도구 Sources 탭을 보면 webpack:// 부분을 찾을 수 있다. 그리고 내부에 "YouWillNotFoundThisRouteBecauseItIsHidden.vue"라는 파일을 찾을 수 있다. 그리고 빨간 줄 부분에 flag 값이 들어있다. 이 값을 이용해 문제 페이지에서 입력하면 문제를 해결할 수 있다.
-
<Root-me> Javascript - Authentication 2Wargame/Root-me = Web - Client 2021. 12. 18. 23:39
로그인 버튼을 누르면 username을 입력하는 창이 뜬다. 페이지 소스 코드를 살펴보면 "login.js"를 찾을 수 있다. "login.js"를 살펴보면 function connexion(){ var username = prompt("Username :", ""); var password = prompt("Password :", ""); var TheLists = ["GOD:HIDDEN"]; for (i = 0; i < TheLists.length; i++) { if (TheLists[i].indexOf(username) == 0) { var TheSplit = TheLists[i].split(":"); var TheUsername = TheSplit[0]; var ThePassword = TheSp..
-
<Root-me> Javascript - AuthenticationWargame/Root-me = Web - Client 2021. 12. 18. 23:08
관리자 계정으로 로그인하면 되는 것 같다. 개발자 도구의 Elements 탭에서 태크를 살펴보면 "login.js"를 찾을 수 있다. "login.js"를 살펴보면 function Login(){ var pseudo=document.login.pseudo.value; var username=pseudo.toLowerCase(); var password=document.login.password.value; password=password.toLowerCase(); if (pseudo=="4dm1n" && password=="sh.org") { alert("Password accepté, vous pouvez valider le challenge avec ce mot de passe.\nYou an val..
-
<Root-me> HTML - disabled buttonsWargame/Root-me = Web - Client 2021. 12. 18. 14:42
웹 사이트가 일시적으로 닫혔다고 한다. Member access 버튼이 비활성화된 것을 확인할 수 있다. 문제 제목이 "disabled buttons"인 것으로 보아 버튼을 활성화시키면 문제가 풀리는 것 같다. 페이지 소스 코드를 살펴보면 input 태그에 disabled 속성이 추가되어있다. input 태그에서 disabled 속성은 말 그대로 입력 필드가 사용불가임을 뜻한다. 개발자 도구 Elements에서 위의 form 부분을 찾아 disabled를 지울 수 있다. 그럼, 두 입력 필드가 활성화된 것을 볼 수 있다. 별다른 말이 없으니 아무거나 입력하고 Member access를 누르면 인증 키값을 찾을 수 있다.