Wargame/Root-me = Web - Client
<Root-me> Javascript - Authentication 2
지우친구 웅이
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"을 입력하면 문제를 해결할 수 있다.