본문 바로가기

WARGAME/xss-game [web]

xss-game / Level4 : Context matters [write-up]

 

 

level4

 

 

 

 

create timer 버튼을 누르면 로딩 화면이 나오고 3초 뒤에 alert 창이 뜬다.

 

한번 힌트를 보자.

startTimer 함수가 어떻게 호출되는지를 살펴보고, 브라우저가 html 디코딩을 할 때에는 값을 먼저 디코딩한다는 점을 힌트로 주고 있다.

또 한번 싱글 쿼터를 넣어서 에러가 어떻게 나는지 확인해보라고 하니 한번 해보자.

 

 

이렇게 계속 로딩이 되는 에러가 발생한다.

 

 

 

이제 프레임 소스 보기로 startTimer 함수를 확인해보자.

아까 입력한 ‘ 가' 로 setTimer 함수에게 전달되는 것을 볼 수 있다. 

 우리는 이 자리에 alert()를 넣어야한다.

 

 

startTimer(‘1’); alert( ‘1 ‘);” />

이렇게 입력해주면 될 듯 하다.

 

그러나 실패.

 

그래서 ; 를 인코딩해서 url에 입력해보았다.

http://xss-game.appspot.com/level4/frame?timer=1')%38alert('1

 

 

 

;을 %3B로 url 인코딩하여 전송해서 문제 해결!