본문 바로가기
[웹해킹]/[Webhacking.kr]

[Webhacking.kr] 54번

by Hevton 2020. 11. 23.
반응형

문제를 열면

 

Password is 

하면서 is 다음에 순식간에 촤르르르르륵 값이 한자리씩 보여지고 마지막에 ?로 바뀌어 멈춰있다.

 

소스보기

<html>
<head>
<title>Challenge 54</title>
</head>
<body>
<h1><b>Password is <font id=aview></font></b></h1>
<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);
</script>
</body>
</html>

 

이런상황이다. 우리가눈여겨보아야 할 곳은 answer인 것 같고, 답을 얻기 위해 여기서 조금 수정할 부분이 보인다

 

1.
aview.innerHTML=x.responseText; 를 
aview.innerHTML+=x.responseText; 로 변경

2.
if(x.responseText=="") aview.innerHTML="?"; 를 지움

 

이렇게 하면 촤르르륵 하면서 순식간에 한 자리씩 넘기지 않고 모두 모아서 출력해줄 수 있다.

두가지 방법이 있다.

 

한가지는 프록시툴 BurpSuite를 사용해서 Response값을 잡아준 뒤에 해당 부분을 변경

다른 한가지는 크롬 개발자도구의 Console창에서 answer 함수를 저렇게 수정하여 오버라이딩 시켜준 뒤 answer함수를 실행하는 것.

 

이렇게 해주면 한 자리씩 순식간에 지나가지 않고, 한 자리씩 모여서 전체를 볼 수 있게 된다.

Password is FLAG{a7981201c48d0ece288afd01ca43c55b}

 

이걸 Auth 메뉴에 갖다붙이면 끝.

반응형

'[웹해킹] > [Webhacking.kr]' 카테고리의 다른 글

[Webhacking.kr] 56번  (0) 2020.11.25
[Webhacking.kr] 55번 & 나중에 다시 보기  (0) 2020.11.24
[Webhacking.kr] 53번  (0) 2020.11.22
[Webhacking.kr] 52번 & 질문  (0) 2020.11.22
[Webhacking.kr] 51번  (0) 2020.11.15