[CTF] dreamhack - xss-2

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

728x90

문제 설명

웹 서버에 접속해 보자

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}

728x90

'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