본문 바로가기

웹해킹

webhacking.kr(old) 54번

반응형

54번에선 저 빨간색 부분이 바뀌다가

결국 마지막엔 ?로 바뀐다.

일단 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+")",20);
  if(x.responseText=="") aview.innerHTML="?";
}
setTimeout("answer(0)",1000);

로 되어있음을 확인할 수 있다.

try-catch문을 제외하고 아래만을 본다.

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+")",20); 
  if(x.responseText=="") aview.innerHTML="?"; 
} 
setTimeout("answer(0)",1000); 

GET을 띄운다

0.02초 동안 답이 하나씩 띄워지는 듯하다.

answer을 1초 후에 인자 0을 넣으라는 것을 알 수 있다.

 

aview.innerHTML=x.responseText 부분 덕에 답이 한문자 한문자 계속 바뀜을 알 수 있다.

aview.innerHTML+=x.responseText 로 바꿈으로써 문제를 풀어보려고 한다.

마지막에 ?부분을 없애고 콘솔창에 띄워보겠다.


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+")",20);
} 
setTimeout("answer(0)",1000); 

 

이런 식으로 콘솔창에 띄워주면 된다.

 

그럼 password가

Password is ?FLAG{a7981201c48d0ece288afd01ca43c55b}

라고 한다.

해당 pw를 auth에 입력해준다

 

반응형

'웹해킹' 카테고리의 다른 글

Webhacking.kr(old) 24번  (0) 2020.05.31
webhacking.kr(old) 1번  (0) 2020.05.31
webhacking.kr(old) 19번  (0) 2020.05.24
webhacking.kr(old) 10번  (0) 2020.05.21
webhacking.kr(old) 6번  (0) 2020.05.21