WarGame/Webhacking.kr

old-54

cyanhe_wh 2020. 12. 26. 22:51
반응형

풀이

페이지를 열면 9 부분자리에 Flag 값이 한자리씩 노출된다. 그런데 금방 없어져서 놓치게 된다.

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 값을 하나씩 출력시킨다.
스크립트를 조작해서 사라지지 않고 계속 값이 더해지게 만들면 될 것같다.

수정 후

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{a7981201c48d0ece288afd01ca43c55b}

반응형

'WarGame > Webhacking.kr' 카테고리의 다른 글

old-47  (0) 2020.12.26
old-33  (0) 2020.12.24
old-6  (0) 2020.02.20
old-5  (0) 2020.02.20
old-26  (0) 2020.02.17