워게임/xss-game.appspot.com

[XSS game] Level 6

name2965 2022. 4. 29. 17:34
728x90

 

 

 

 

이번 레벨이 마지막 레벨인데, 그만큼 난이도가 있어보입니다.

 

우선 살펴보면 응용 프로그램이 실행되도록하는 외부 파일을 불러오는 사이트로 보입니다.

 

웹사이트의 설명을 보면 악성 URL에 대한 필터링은 따로 없는것으로 예상되고 공격벡터도 URL이 유일해 보이므로

 

URL을 중점적으로 분석해보겠습니다.

 

 

 

 

 

https://xss-game.appspot.com/level6/frame#/static/gadget.js

 

 

다음과 같은 URL에 들어갔을때 자바스크립트가 다음과 같은 동작을 합니다.

 

마지막에 오는 자바스크립트인 <script src="/static/gadget.js"></script> 부분을 보면  

 

URL에서 # 뒤에오는 경로가 자바스크립트에 올라가는것을 볼수 있습니다.

 

그러므로 # 뒤에오는 부분을 통해서 웹사이트에 alert를 삽입하는것을 목표로 해야합니다.

 

 

일단 이 사이트에 alert를 삽입하려면 외부파일을 올릴수 있는 웹서버가 있어야 가능할것으로 보이는데

 

저에게는 당장의 웹서버가 없으므로 문제 사이트에서 제공해주는 사이트를 사용할것입니다.

 

https://www.gstatic.com/charts/loader.js

 

 

그리고 이 뒤에 alert함수를 콜백하는 스크립트를 붙혀서 다음과 같은 URL을 만들수 있습니다.

 

https://www.gstatic.com/charts/loader.js?callback=alert

 

하지만 이 URL을 사용해보면 다음과 같이 "http"가 포함된 URL을 로드할수 없다고 뜹니다.

 

 

 

 

 

 

이게 왜이런건지 확인하기 위해 웹사이트를 다시 천천히 분석해보면

 

 

 

 

 

 

다음과 같은 URL 필터링 스크립트를 확인해볼수 있습니다. 

https가 들어간 URL에 대해서 필터링 하는것으로 보이므로

https를 Https 로 바꾸는 방식으로 URL을 바꿀수 있습니다.

어차피 HtTpS와 같은 방식으로 대소문자 구분이 없이 똑같이 인식되기 때문입니다.

 

그러므로 URL을 다음과 같이 수정해서 전송하면

 

 

https://xss-game.appspot.com/level6/frame#Https://www.gstatic.com/charts/loader.js?callback=alert

 

 

 

 

 

다음과 같이 성공메세지가 출력되면서 다음으로 넘어갈수 있게되고

 

 

 

 

드디어 XSS game을 성공적으로 완료했습니다.

 

개인적으로는 처음 웹해킹에 대해서 공부하면서 자바스크립트도 제대로 모른체 실습해서 

상당히 어려웠습니다.

 

728x90

'워게임 > xss-game.appspot.com' 카테고리의 다른 글

[XSS game] Level 5  (0) 2022.04.28
[XSS game] Level 4  (0) 2022.04.28
[XSS game] Level 3  (0) 2022.04.28
[XSS game] Level 2  (0) 2022.04.28
[XSS game] Level 1  (0) 2022.04.27