power-girl0-0

[XSS game] level 4 본문

War game/XSS game

[XSS game] level 4

power-girl0-0 2021. 2. 13. 09:29
728x90

 

 XSS game 주소 

https://xss-game.appspot.com/

 

XSS game

Welcome, recruit! Cross-site scripting (XSS) bugs are one of the most common and dangerous types of vulnerabilities in Web applications. These nasty buggers can allow your enemies to steal or modify user data in your apps and you must learn to dispatch the

xss-game.appspot.com


 미션 설명 

사용자가 제공한 데이터의 모든 비트를 다음 기간 동안 올바르게 이스케이프해야 합니다. 페이지가 나타날 컨텍스트입니다. 이 수준은 그 이유를 보여준다.


 미션 목표 

스크립트를 주입하여 응용 프로그램에서 JavaScript 경고()를 팝업합니다.

 


 풀이 

먼저, 문제 파악을 위해서 'Create timer'라는 버튼을 클릭해 보았다.

위와 같이, 3초가 지나면 confirm창이 출력되며, URI에서 timer=3으로 값이 전달되는 것을 확인할 수 있다.


소스를 확인해보자.

 

index.html을 확인해보면, GET방식으로 timer에 값을 담아 전달하고 있는 것을 확인할 수 있다.

timer.html 소스를 통해서 timer가 어떻게 처리되는지 알 수 있었다.

위와 같이, startTimer함수 호출이 될 때 timer가 사용되는 것을 확인할 수 있으며 값이

https://xss-game.appspot.com/level4/frame?timer=('{{ timer }}'); 이렇게 전달되는 것으로 예상된다.

 

그렇다면, https://xss-game.appspot.com/level4/frame?timer=3'); alert('dohyeon 를 입력하면 alert창이 출력될 것이다.

하지만, 위와 같이 무한 로딩만 되고 alert창이 출력되지 않는다.


url인코딩을 해서 다시한번 시도해보자.

;(세미콜론)을 url인코딩했을 때는 %3B이므로, 세미콜론 대신 입력해보았다.

  https://xss-game.appspot.com/level4/frame?timer=3')%3B alert('dohyeon

 

로딩되면, %3B는 자동으로 세미콜론으로 바뀐다.

 

이렇게 문제 CLEAR!! ^_^


다른 풀이를 확인해보니,  - 연산을 이용하여 푼 풀이가 있어서 나중에 참고를 위해서 추가로 작성한다!!

  https://xss-game.appspot.com/level4/frame?timer=3')-alert('dohyeon

 

 

 

728x90

'War game > XSS game' 카테고리의 다른 글

[XSS game] level 6  (0) 2021.02.14
[XSS game] level 5  (0) 2021.02.14
[XSS game] level 3  (0) 2020.12.28
[XSS game] level 2  (0) 2020.12.28
[XSS game] level 1  (0) 2020.12.28
Comments