우선 xss-2 문제 설명은 다음과 같이 되어있는 것을 볼 수 있다.
문제 페이지에 접속해보면 아래와 같이 페이지가 구성되어 있는 것을 볼 수 있다. 앞서 xss와 관련하여 풀었던 드림핵 문제와 비슷한 형태를 띄우고 있다.
우선 첫번째 카테고리인 'vuln page'에 들어가보면 별 다른 내용은 없었지만 주소 창에 param 다음에 스크립트 구문을 통해 alert(1)을 사용하고 있는 것을 볼 수 있다.
메모 카테고리에서는 이전 문제들과 동일하게 해당 카테고리에 접속할때마다 hello 문구가 한줄씩 추가되고 있는 것을 볼 수 있다.
flag 카테고리에서는 아래와 같이 param 뒤에 값을 입력할 수 있는 공간이 있다. 이 문제에서도 입력하는 값을 통해 플래그 값을 얻고, 이를 memo 카테고리에서 확인할 수 있는 시스템인 것 같다.
XSS-1 문제와 같은 페이지인만큼, 제공된 소스코드 또한, vuln에서 param을 return 하는 코드가 빠진 것을 제외하면 xss-1 문제와 다를 것이 없다.
vuln 페이지를 보면 script 코드가 우회되는 것인지 alert 부분이 실행되고 있지 않는 것을 알 수 있다.
다른 태그도 작동하는지 확인하기 위해 img 태그를 사용해봤더니 잘 작동하는 것을 볼 수 있다.
따라서, 스크립트 태그를 작성하지 않아도 onerror 속성을 활용하여 script를 작성해보자.
<img src="xss" onerror="location.href='/memo?memo='+document.cookie">
해당 스크립트를 flag 페이지에 작성하여 제출하면
'good'이라고 alert 창이 표시된 것을 볼 수 있었고,
그럼 아래와 같이 memo 페이지에서 플래그 값을 얻을 수 있다.
드림핵 페이지에서 플래그 값을 입력하면 문제 해결-!
'CTF' 카테고리의 다른 글
[Dreamhack] XSS Filtering Bypass write-up (0) | 2023.11.15 |
---|---|
[Webhacking.kr] old-23 write-up (0) | 2023.11.14 |
[Dreamhack] xss-1 write-up (0) | 2023.11.04 |
[Dreamhack] DOM XSS write-up (1) | 2023.11.04 |
[XSS-GAME] level5(reflected xss) write-up (0) | 2023.11.04 |