반응형
반응형
반응형

Xss game 풀이

level1

level2

level3

level4

 

 

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

 

 

level1 풀이

 

alert()을 띄워야 한다.

 

 

쿼리에 <<<>>> 등을 입력했을 때 입력한 그대로 출력한다.

 

그래서 입력칸에 <script>alert(1)</script> 을 입력해주면 페이지에 스크립트가 삽입되면서 문제가 풀린다.

 

 

 

 

level2 풀이

 

 

이번에는 그대로 <script>alert(1)</script> 을 입력했을 때, 페이지에 삽입은 그대로 되는데,

스크립트가 실행이 되지 않는다.

 

 

힌트:

 

1. Note that the "welcome" post contains HTML, which indicates that the template doesn't escape the contents of status messages.

2. Entering a <script> tag on this level will not work. Try an element with a JavaScript attribute instead.

3. This level is sponsored by the letters i, m and g and the attribute onerror.

 

img태그의 onerror속성을 이용해서 스크립트를 실행해야 하는 것 같다.

 

 

<img src="./mandu" onerror="alert(1)">

scr파일을 불러올 떄 해당 파일을 찾을 수 없게 해서 에러를 발생시키도록 한다.

 

 

 

level3 풀이

 

입력할 수 있는 칸은 url칸밖에 없는 것 같다.

 

페이지 소스를 확인했다.

1
2
3
4
5
function chooseTab(num) {
    // Dynamically load the appropriate image.
    var html = "Image " + parseInt(num) + "<br>";
    html += "<img src='/static/level3/cloud" + num + ".jpg' />";
    $('#tabContent').html(html);
cs

 

 

이 num에 들어가는 것을 적절히 입력해주면 될 것 같다.

0.jpg' onerror="alert(1)" '

 

직접 f12눌러서 입력값이 어떻게 들어갔는지 확인하면서 해보면 된다.

 

 

 

 

level4

 

힌트 :

1. Take a look at how the startTimer function is called.

 

함수가 어디서 호출되는지를 보았다.

 

1
2
3
4
5
6
7
<body id="level4">
    <img src="/static/logos/level4.png" />
    <br>
    <img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />
    <br>
    <div id="message">Your timer will execute in {{ timer }} seconds.</div>
  </body>
cs

 

<img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />

t

{{timer}}에 입력한 값이 들어간다. 아래와 같이 되도록 하면 될 것 같다.

 

<img src="/static/loading.gif" onload="startTimer('1'); alert('1');" />

 

input = 1'); alert('1

 

 

 

level5

 

 

 

level6

 

반응형

+ Recent posts