12
자바스크립트 문제다
바로 소스코드를 확인하였다
String.fromcharcode가 유니코드나 아스키코드를 문자로 바꾸는 함수기 때문에 괄호안의 코드를 바꿔보았다.
var enco='';
var enco2=126;
var enco3=33;
var ck=document.URL.substr(document.URL.indexOf('=')); /*현재 페이지의 URL의 일부를 추출한다. 이 때 URL의 =가 나타나는 인덱스부터 추출한다.*/
for(i=1;i<122;i++) { /*1부터 122의 아스키코드에 해당하는 문자를 enco 변수에 추가한다*/
enco=enco+String.fromCharCode(i,0);
}
function enco_(x) { /*enco_함수를 정의한다*/
return enco.charCodeAt(x); /*enco를 아스키코드로 변환한다*/
}
if(ck=="="+String.fromCharCode(enco_(240))+String.fromCharCode(enco_(220))+String.fromCharCode(enco_(232))+String.fromCharCode(enco_(192))+String.fromCharCode(enco_(226))+String.fromCharCode(enco_(200))+String.fromCharCode(enco_(204))+String.fromCharCode(enco_(222-2))+String.fromCharCode(enco_(198))+"~~~~~~"+String.fromCharCode(enco2)+String.fromCharCode(enco3)) {
/*만약 ck가 "=(해석된 값)"과 같다면*/
alert("Password is "+ck.replace("=","")); /*"Password is "+ck에 =를 제거한 값을 출력한다*/
}
한 번 실행해서 어떻게 되는지 파악하려고 해보았다. if문을 개발자도구로 출력하였다.
밑의 if문도 해석하기 어려울 거 같아서 출력하였다. 비밀번호를 획득하였다!
생각해보니 자바스크립트 전부 출력해도 될 거 같아서 개발자도구로 실행해보았다. 실행하면 eval(WorkTimeFun) 함수도 실행되어 WorkTimeFun에 저장되어 있던 코드들까지 실행되면서 경고창으로 비밀번호가 출력된다
비밀번호를 challange-auth에 입력하였다
'wargame > WEBHACKING.kr' 카테고리의 다른 글
[WEBHACKING.kr]20 (0) | 2019.05.13 |
---|---|
[WEBHACKING.kr]14 (0) | 2019.05.06 |
[WEBHACKING.kr]8 - fail (0) | 2019.05.06 |
[WEBHACKING.kr]10 (0) | 2019.04.29 |
[WEBHACKING.kr]6 (0) | 2019.04.29 |