728x90
반응형

100점인 54번 문제를 풀어보자.

소스코드에 들어가보면 자바스크립트 소스가 쓰여있다.

setTimeout("answer(0), 1000) : 1000ms(1초) 후에 answer함수에 인자값 0을 넣어 실행해라. 

 

해당 스크립트 코드를 콘솔을 이용해 돌려보니 한 글자씩 문자가 나타났다가 사라진다.

aview.innerHTML을 통해 x.responseText에 저장된 값이 출력이 되는데, 이 함수를

aview.innterHTML=x.responseTexst; -> aview.innterHTML+=x.responseTexst; 로 수정하고
마지막 조건문의 if(x.responseText=="") aview.innerHTML="?";
-> if(x.responseText=="") aview.innerHTML;

로 수정하여 콘솔에서 재실행해보자.

 

 

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);

FLAG값이 출력된 것을 확인했다. Auth 페이지로 이동해 값을 제출해보자.

728x90
반응형

'CTF & WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] 56번 문제  (0) 2020.03.16
[webhacking.kr] 55번 문제  (1) 2020.03.16
[webhacking.kr] 53번 문제  (0) 2020.03.16
[webhacking.kr] 52번 문제  (0) 2020.03.16
[webhacking.kr] 51번 문제  (0) 2020.03.15

+ Recent posts