Hack The World

XSS game: Level 3 Write up 본문

Wargame/XSS game

XSS game: Level 3 Write up

Talkative 2020. 3. 13. 18:51

3번째 문제이다.

게시판 형태에서 image 부분을 클릭하면 이미지가 바뀌고 url  상에 frame#  뒤 숫자가 해당페이지에 맞게 변경된다.

 

 

코드를 살펴보자

<!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" />
 
    <!-- Load jQuery -->
    <script
      src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
    </script>
 
    <script>
      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);
 
        window.location.hash = num;
 
        // Select the current tab
        var tabs = document.querySelectorAll('.tab');
        for (var i = 0; i < tabs.length; i++) {
          if (tabs[i].id == "tab" + parseInt(num)) {
            tabs[i].className = "tab active";
            } else {
            tabs[i].className = "tab";
          }
        }
 
        // Tell parent we've changed the tab
        top.postMessage(self.location.toString(), "*");
      }
 
      window.onload = function() { 
        chooseTab(unescape(self.location.hash.substr(1)) || "1");
      }
 
      // Extra code so that we can communicate with the parent page
      window.addEventListener("message", function(event){
        if (event.source == parent) {
          chooseTab(unescape(self.location.hash.substr(1)));
        }
      }, false);
    </script>
 
  </head>
  <body id="level3">
    <div id="header">
      <img id="logo" src="/static/logos/level3.png">
      <span>Take a tour of our cloud data center.</a>
    </div>
 
    <div class="tab" id="tab1" onclick="chooseTab('1')">Image 1</div>
    <div class="tab" id="tab2" onclick="chooseTab('2')">Image 2</div>
    <div class="tab" id="tab3" onclick="chooseTab('3')">Image 3</div>
 
    <div id="tabContent"> </div>
  </body>
</html>

코드를 살펴보면 다음과같다.

중요한 부분은 

html += " <img src ='/static/level3/cloud" + num + .jpg' />";

부분인거같다.

좀더 살펴보면

frame# 뒤에 들어가는 숫자가 num 부분에 들어가는거같다.

<script> 문 안에 있으니까 해당 코드를 실행시키기 위해

' onerror=alert(1);' 를 url 에 입력시

다음과 같이 alert  실행

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

XSS game : Level 5 Write up  (0) 2020.03.23
XSS game: Level 4 Write up  (0) 2020.03.13
XSS game: Level2 Write up  (0) 2020.03.12
XSS game: Level 1 Write up  (0) 2020.03.12
Comments