문제 접속 시,
Flag로 보이는 문자열들이 빠르게 지나가는 것을 볼 수 있었다.
요청 응답 히스토리를 살펴보니
m이라는 매개변수를 통해
Flag 문자열 값이 하나 씩
응답되고 있는 것을 볼 수 있다.
해당 응답 모두 확인해서 문자열을 합쳐보니
FLAG{a7981201c48d0ece288afd01ca43c55b}
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);
FLAG 문자열을 가져오는 듯한 answer 함수를 볼 수 있었다.
function answer(i){
x.open('GET','?m='+i,false);
x.send(null);
aview.innerHTML+=x.responseText; // innerHTML에 respnseText 값을 누적 저장
i++;
if(x.responseText) setTimeout("answer("+i+")",20);
}
answer(0);
FLAG 문자열로 보이는 responseText 값을 하나하나 가져올 때,
+= 연산자를 통해 innerHTML 값에 누적으로 문자열을 넣어주도록 코드를 수정했다.
그리고 responseText 문자열이 모두 불러와 졌을 시, ? 를 띄우는 코드를 삭제했다.

수정된 js 코드를 Console 기능을 통해 동작시키니
하나 씩 출력되던 FLAG 문자열이
화면에 누적되면서 출력되는 모습을 볼 수 있었다.
'WarGame > Webhacking.kr' 카테고리의 다른 글
old-15 (0) | 2024.06.04 |
---|---|
old-24 (0) | 2024.06.04 |