메인화면입니다.

'?' 부분에 계속해서 문자가 찍힙니다.

소스보기입니다.

엑티브엑스란?

웹브라우저와 연동되는 특정 프로그램을 사용자의 PC에 추가로 설치해 웹브라우저의 기능을 확장시키는 방법.

[소스해석]

1. window.ActiveXObject : 브라우저가 IE일 경우 XMLHttpRequest 객체 구하기

2. ActiveXObject('Msxml2.XMLHTTP') : 신버전

3. ActiveXObject('Microsoft.XMLHTTP') : 구버전

4. window.XMLHttpRequest : IE 외 파이어폭스 오페라 같은 브라우저에서 XMLHttpRequest 객체 구하기

- window.XMLHttpRequest : 페이지의 새로고침없이 URL 로부터 데이터를 받아올 수 있는 객체

5. x.open('GET','?m='+i,false) : GET방식으로 ?m=i URL을 동기식 방식으로 요청을 설청

6. x.send(null) : 요청 전송 , 파라미터가 없으면 null 값으로 전송

7. x.responseText : 서버에 요청하여 응답으로 받은 데이터를 문자열로 반환

8. aview.innerHTML=x.responseText : 응답받은 문자열을 id가 aview 태그에 출력

9. setTimeout("answer(0)",1000) : 1초후에 answer(0)을 실행

answer()함수에 인자를 1씩 증가하면 서버에 GET요청을 통해 결과값을 받아오고 화면에 출력해주고 있습니다.

aview.innerHTML=x.responseText 이부분을 살펴보면 결과값을 aview에 덮어 쓰는 형태이므로 연속적으로 문자열을 출력하기 위해서는 aview.innerHTML+=x.responseText 이와 같은 방법을 사용할 수 있습니다.

if(x.responseText=="") aview.innerHTML="?";이 부분은 응답이 없을 경우 '?'(물음표)를 aview에 덮어쓰기 때문에 위 부분은 삭제하면 우리가 원하는 문자열을 연속적으로 출력할 수 있습니다.

[소스코드 수정 후 console에서 실행]

[실행 결과]

플래그를 획득했습니다.

챌린지 54 성공!

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

[webhacking.kr] Level56 (old)  (7) 2020.04.28
[webhacking.kr] Level55 (old)  (95) 2020.04.28
[webhacking.kr] Level53 (old)  (125) 2020.04.28
[webhacking.kr] Level52 (old)  (173) 2020.04.28
[webhacking.kr] Level51 (old)  (343) 2020.04.28

+ Recent posts