-
<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 = TheSplit[1]; if (username == TheUsername && password == ThePassword) { alert("Vous pouvez utiliser ce mot de passe pour valider ce challenge (en majuscules) / You can use this password to validate this challenge (uppercase)"); } } else { alert("Nope, you're a naughty hacker.") } } }
TheSplit은 TheLists의 배열을 ':'을 기준으로 구분한다.
TheUsername은 TheSplit[0]로 "GOD"을 뜻한다.
ThePassword는 TheSplit[1]로 "HIDDEN"을 뜻한다.
그리고 username이 TheUsername과 같고, password가 ThePassword와 같으면
이 비밀번호의 대문자로 검증할 수 있다고 한다.
따라서, 문제 페이지에서 ThePassword인 "HIDDEN"을 입력하면 문제를 해결할 수 있다.
'Wargame > Root-me = Web - Client' 카테고리의 다른 글
<Root-me> Javascript - Obfuscation 1 (0) 2021.12.19 <Root-me> Javascript - Webpack (0) 2021.12.19 <Root-me> Javascript - Source (0) 2021.12.18 <Root-me> Javascript - Authentication (0) 2021.12.18 <Root-me> HTML - disabled buttons (0) 2021.12.18