DINGA DINGA
article thumbnail
[XSS game] Level 6
WEB/XSS Game 2021. 3. 14. 03:05

url바의 frame# 뒤에 있는 주소가 화면에 나타난다. (Loaded gadget from ~) js파일에 alert함수를 추가하고 url로 불러오는 방법을 생각했는데, 이는 서버를 사용해야 한다. 그래서 검색하던 중 Data URL Scheme이라는 방법을 알게 되었다. 외부 데이터를 URL로 표현하는 방법이라고 한다. 형식은 data:[자료타입], [데이터] 이다. 따라서 url바에 다음과 같이 입력해주었다. data:text/javascript, alert('hi') 성공적으로 알림창을 띄운다.

article thumbnail
[XSS game] Level 5
WEB/XSS Game 2021. 3. 14. 02:50

Sign up을 누르면 다음과 같이 변한다. url에 confirm 값이 생겼다. Enter email 칸에 aa를 입력하고 Next를 누르니 다음과 같이 변한다. 초기화면으로 돌아왔는데 이번에는 url에 welcome이 추가되었다. enter email 화면의 url에서 next 다음 값을 변조하면 될 것 같다. 힌트를 보니 자바스크립트를 이용하라고 해서 next 뒤에 javascript: alert('hi')를 추가했다. next를 누르니 성공적으로 알림창을 띄운다.

article thumbnail
[XSS game] Level 4
WEB/XSS Game 2021. 3. 14. 02:34

초기 상태에서 Create timer 버튼을 누르면 아래와 같이 3초 뒤 Time is up! 창이 뜬다. url바에는 frame뒤에 ?timer=3이 추가된 것을 볼 수 있다. timer.html의 코드를 보면 startTimer('{{ timer }}')의 형식인 것을 알 수 있다. 따라서 xss-game.appspot.com/level4/frame?timer=1');alert('hi 를 입력하면 형식이 맞을 것 같다. 알림창이 뜨지 않는다. 힌트를 보니 인코딩 작업이 필요하다고 해서 다음과 같이 수정했다. frame?timer=1')%3Balert('hi 성공적으로 알림창을 띄우며 클리어했다.

article thumbnail
[XSS game] Level 3
WEB/XSS Game 2021. 3. 7. 16:03

이미지 탭을 클릭하면 이미지가 변경되면서 url바 맨 뒤 frame#n의 숫자가 바뀌는 것을 확인할 수 있다. 따라서 이미지는 frame#3까지 있으므로 frame#4로 연결하면 에러가 발생할 것이고 onerror 속성을 이용해 경고창을 띄울 수 있을 것이다. 처음에는 frame#뒤에 4 onerror='alert(document.cookie)' 만 입력했는데, 경고창이 뜨지 않았다. 그래서 html 코드를 확인해보았다. html += ""; 이 부분의 num변수를 건드려야 하므로 다음과 같이 수정해서 입력해보았다. 성공적으로 경고창을 띄운다.

728x90