XSS game - Level4

1. 문제 풀이

1.1. Mission Description

Every bit of user-supplied data must be correctly escaped for the context of the page in which it will appear.

This level shows why.

사용자 제공 데이터의 모든 비트는 표시될 페이지의 컨텍스트에 맞게 올바르게 이스케이프되어야 합니다.

이 수준은 이유를 보여줍니다.

1.2. Mission Objective

Inject a script to pop up a JavaScript alert() in the application.

스크립트를 삽입하여 애플리케이션에서 JavaScript의 alert를 출력하시오.

1.3. Write Up

문제를 확인하니, Input에 3이 입력되어있다.

어떤 기능인지 잘 모르겠어서 일단 그대로 나두고, Create timer 버튼을 클릭하였다.

 

3초가 지나고, "Time is up!"이라는 문구를 가진 alert 창이 출력이 됐다

 

여기까지 확인한 나는 일단 "><"를 입력하여 소스코드를 확인해봤다.

 

확인해보니, 문구 위에 돌아가는 로딩바를 갖겨오는 img 태그에서 on이벤트가 있고, on이벤트 안에 내가 입력한 입력값이 삽입되어 있었다.

이것을 이용하여 '); alert('1'를 삽입하여 onload="startTimer(''); alert('1');"으로 만들면 내 맘대로 alert창을 띄울 수 있지 않을까?라는 생각을 하였다.

 

아주 간단하게 풀이하였다.

'Wargame > XSS GAME' 카테고리의 다른 글

XSS game - Level6  (0) 2022.02.14
XSS game - Level5  (0) 2022.02.13
XSS game - Level3  (0) 2022.02.09
XSS game - Level2  (0) 2022.01.23
XSS game - Level1  (0) 2022.01.22