본문 바로가기
개인 공부/WEB

[웹해킹] XSS GAME -LEVEL 4

by 아메리카노와떡볶이 2021. 7. 13.
728x90
XSS GAME - LEVEL 4

xss game level4 풀이 포스팅입니다.

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

 

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

Oops! Based on your browser cookies it seems like you haven't passed the previous level of the game. Please go back to the previous level and complete the challenge.

xss-game.appspot.com

 

문제 접근

내가 메시지 박스에 입력을 주면, timer가 작동한다. 숫자 3을 입력하면 3초뒤에

time is up이라는 팝업 창이 뜬다.

프레임 코드를 살펴보았다.

이미지 태그에 onload 이벤트 핸들러가 사용되고, 내가 입력한 값은 startTimer 함수 안에 입력되었다.

즉 이미지가 로드되면 뒤에 startTimer 함수가 실행되게 되는 것인데

여기에 입력값을 잘 만들어서 팝업창을 띄워야한다. 

sql injection에서 많이 사용하던 방법을 먼저 시도해보았다.

onload="startTimer('my input');"
여기서 input 값을 1');alert('hello 이렇게주면?
onload="startTimer('1');alert('hello');"

이렇게 하면 1초가 지났을때 alert 가 수행될 것 이다. 

근데 안된다??? 모르겠어서 힌트를 보니 

브라우저가 태그 속성을 읽을때 html 디코드를 먼저 수행한다고 한다.

프레임 코드를 살펴보니

싱글쿼터가 ' 이고 )까지는 들어갔는데 세미콜론이 삽입되지않았다. 따라서 세미콜론을 인코딩해서 넣어보았다.

https://heavenly-appear.tistory.com/176

 

[URL 인코더, 디코더] url인코딩, url디코딩 - 바로 변환해드려요!

Encoding Decoding 복사버튼은 현재 크롬에서만 지원가능합니다. 안녕하세요. 개인적으로 url인코딩 및 url디코딩을 자주 변환해서 자바스크립트로 기반으로 URL인코더 및 URL디코더를 만들었습니다. (

heavenly-appear.tistory.com

세미콜론 대신 %3B를 넣어보자.

성공!

 

 

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] XSS GAME - LEVEL 6  (0) 2021.07.13
[웹해킹] XSS GAME - LEVEL 5  (0) 2021.07.13
[웹해킹] XSS GAME - LEVEL 3  (0) 2021.07.13
[웹해킹] XSS GAME - LEVEL 2  (0) 2021.07.13
[웹해킹] XSS GAME - LEVEL 1  (0) 2021.07.13

댓글