첫 화면은 이렇게 빈화면이다가
?자리에 여러 숫자와 문자가 하나씩떴다가 사라지고
?만 남는다.
아마 그것들이 곧 비밀번호일 것 같다.
하지만 너무 빨리 지나가기 때문에 먼저 소스를 보았다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <html><head> <title>Challenge 54</title> </head> <body> <h1><b>Password is <font id="aview">?</font></b></h1> <script> function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i) { x.open('GET','?m='+i,false); x.send(null); aview.innerHTML=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",100); if(x.responseText=="") aview.innerHTML="?"; } setTimeout("answer(0)",10000); </script> </body></html> |
소스를 보니 answer 함수에서
?m=값으로 넣어주면 안되게 되어 있다.
그리고 x.responseText값을 aview.innerHTML에 넣어주고
그 값을 출력시켜주는 것 같다.
그리고 이제 x.responseText값이 없어지니 그제서야 ?를 띄워주는 소스이다.
따라서 계속 지나가는 값을 다 출력시켜주면 될 것 같다.
따라서 콘솔창에서
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i) { x.open('GET','?m='+i,false); x.send(null); aview.innerHTML+=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",100); } answer(0); |
즉 aview.innerHTML += x.responseText로 고쳐주면
그 값이 출력 될 것이다.
그러면 답이 출력
54번 클리어!!
'WebHacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 4번 (0) | 2017.10.22 |
---|---|
Webhacking.kr 20번 (0) | 2017.10.16 |
webhacking.kr 10번 (0) | 2017.10.15 |
Webhacking.kr 12번 (0) | 2017.09.24 |
Webhacking.kr 16번 (0) | 2017.09.23 |