2024. 5. 24. 12:51ㆍWeb/dreamhack

웹 서버에 접속해 보자

vuln , memo, flag 페이지 가 보인다
vuln 페이지

memo 페이지

flag 페이지

알고있는 정보가 없기 때문에
주어진 파일을 열어보자



/vuln 페이지를 확인해보니
XSS-2의 vuln 페이지는 기존의 XSS-1 문제와는 다르게 구성 되어있다
get으로 사용자가 입력한 param을 바로 return 하는 형태가 아니라, render_template 함수를 사용하고 있다

/memo 페이지를 확인해보니
memo 페이지는 XSS-1과 동일하게 구성되어있다.
즉, 이용자가 전달한 memo 파라미터 값을 render_template 함수를 통해 기록하고 출력한다.
따라서 사용자가 URL의 memo 파라미터에 어떤 값을 입력하는지에 따라 화면에 출력 되는 값도 달라지게 된다


/flag 페이지를 확인해보니
check_xss 함수에서는, 이용자가 flag에 POST로 전송한 param 값이
XSS 공격에 사용될 수 있는 값인지 아닌지를 확인한다.
이때 check_xss에서는, 이용자가 flag 페이지에 입력한 param을 포함하여 vuln 페이지에 접근하는 URL을 생성하게 된다
결과적으로 read_url 함수를 통해 vuln 페이지에 접근하는 URL과 사용자의 쿠키가 전달되는 것이다
문제를 해결하기 위해서는 vuln.html에서 발생하는 XSS 취약점을 통해 임의 이용자의 쿠키를 탈취해야 한다
<img src> 태그를 사용하여 아래 같은 익스플로잇 코드를 작성할 수 있다
<img src="XSS-2" onerror="location.href='/memo?memo='+document.cookie">
이 익스플로잇 코드를 /flag 페이지의 param 부분에 입력하면, memo에서 임의 이용자의 쿠키 정보를 확인할 수 있게 된다


코드 입력 후 good이라는 메세지 출력 확인

/memo 페이지로 접속하면 flag 값이 출력된다
DH{3c01577e9542ec24d68ba0ffb846508f}
'Web > dreamhack' 카테고리의 다른 글
| [CTF] dreamhack - csrf-2 (0) | 2024.05.24 |
|---|---|
| [CTF] dreamhack - csrf-1 (0) | 2024.05.24 |
| [CTF] dreamhack - xss-1 (0) | 2024.05.08 |
| [CTF] dreamhack - session-basic (0) | 2024.05.08 |
| [CTF] dreamhack - cookie (0) | 2024.05.08 |