Web Hacking/webhacking.kr 풀이

old-54 write-up

박연준 2024. 1. 8. 00:45

문제 정보

https://webhacking.kr/challenge/bonus-14/

 

Challenge 54

 

webhacking.kr

 

풀이

 

문제에 접속하면 ? 문자의 위치에 flag 값을 빠르게 한 글자씩 보여준다. 

 

여기서 개발자 도구에서 콘솔 창에 소스 코드를 수정해서 다시 출력하면 flag 값을 획득할 수 있을 것이라고 생각했다. 

 

다음은 f12를 눌렀을 때 나오는 소스 코드이다.

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

 

 

이 부분에서 answer 함수를 보면 aview.innerHTML을 사용해서 페이지에 flag 값을 출력해주는 것을 알 수 있다. 여기서 flag 값을 알기 위해서는 innerHTML 다음의 = 문자를 +=으로 바꿔주면 ?문자 다음에 flag값이 출력될 것이다.

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

 

 

다음과 같이 개발자 도구의 console 창에서 이 함수 부분을 그대로 넣어주면 ? 문자 뒤에 flag 값이 지워지지 않고 이어서 출력되는 것을 확인할 수 있다.

'Web Hacking > webhacking.kr 풀이' 카테고리의 다른 글

old-16 write-up  (0) 2024.01.10
old-17 write-up  (0) 2024.01.10
old-18 write-up  (0) 2024.01.10
old-26 write-up  (0) 2024.01.08
old-24 write-up  (0) 2024.01.08