본문 바로가기

웹해킹/webhacking.kr

old-54 롸업(webhacking.kr)

처음에 접속하면 password is 뒤의 문자가 이리저리 바뀌더니 조금 지나니까 ?에서 더 이상 안 바뀐다.

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

script 안의 코드이다.

20ms마다 answer함수로 재귀적으로 요청을 보내면서 값을 받아온다.

html 코드 안에 작성되어 있기 때문에 마음대로 코드를 바꿔서 console 창에서 실행을 할 수 있다.

20ms를 1000ms로 바꿔서 해도 되지만 하나씩 기록하기 귀찮아서 innerHTML에 = 대신 +=으로 값을 누적시켰다.

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를 얻었다.

 

'웹해킹 > webhacking.kr' 카테고리의 다른 글

old-51 롸업(webhacking.kr)  (0) 2023.12.10
old-50 롸업(webhacking.kr)  (0) 2023.12.10
old-34 롸업(webhacking.kr)  (0) 2023.12.10
old-33 롸업(webhacking.kr)  (0) 2023.12.08
old-32 롸업(webhacking.kr)  (0) 2023.12.08