첫 화면은 이렇게 빈화면이다가

?자리에 여러 숫자와 문자가 하나씩떴다가 사라지고

?만 남는다.

아마 그것들이 곧 비밀번호일 것 같다.

하지만 너무 빨리 지나가기 때문에 먼저 소스를 보았다

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

+ Recent posts