[ 문제 풀이 ]
- 3개의 메뉴가 존재하는 초기 화면입니다.
- 한번 3개의 메뉴를 다 눌러서 확인해보겠습니다.
- 파라미터로 이미지 태그가 삽입된 것을 볼 수 있습니다.
- 한번 이미지 태그를 이용하여 onerror 속성의 이벤트가 발생하는지 확인해보았습니다.
- onerror 속성의 이벤트가 발생하지 않음을 볼 수 있습니다.
- memo 페이지에서 memo=의 파라미터 값이 그대로 텍스트로 출력되는 것을 볼 수 있습니다.
- 태그를 입력해도 그대로 텍스트로 출력됩니다.
- flag 페이지에 들어간 모습입니다.
- 입력폼에 적절한 태그를 삽입한 공격 URL 을 삽입하여 제출하면 POST 메소드로 서버에 param 이라는 이름으로 전송됩니다.
- 이제 소스 코드를 분석해보겠습니다.
- "Content-Security-Policy" 에 정책이 등록되어 있습니다.
default-src 'self';
img-src https://dreamhack.io;
style-src 'self' 'unsafe-inline';
script-src 'self' 'nonce-{nonce}'
- 정책이 위와 같이 구성되어 있습니다.
- nonce-{nonce} 구문이 많이 보여 이를 예상하여 공격을 해야하나 싶었지만 난수를 예측하는 건 어렵습니다.
- 그렇다면 script-src 의 'self' 를 이용하는 게 그나마 쉬워보였습니다.
- vuln 페이지를 이용하여 'self' 를 이용할 수 있는지 확인해보았습니다.
- 이렇게 vuln 페이지에서 'self' 를 이용하여 스크립트 태그를 실행 시킬 수 있었습니다. -> 오른쪽과 같은 건 작동되지 않습니다.
- 그렇다면 해당 페이지를 src 로 설정하여 쿠키를 탈취 할 수 있을 것 같습니다!
<script src="/vuln?param=document.location='/memo?memo='%2bdocument.cookie"></script>
- 위와 같은 URL 을 생성하였고, 제출해보았습니다.
- 성공적으로 플래그를 획득했습니다!
'TeamH4C' 카테고리의 다른 글
[빡공팟 5기] W7 : XS-Search Write-up (0) | 2022.11.06 |
---|---|
[빡공팟 5기] W7 : Relative Path Overwrite Write-up (0) | 2022.11.06 |
[빡공팟 5기] W7 : XSS Filtering Bypass Write-up (0) | 2022.11.06 |
[빡공팟 5기] W6 : DVWA 실습 - 라이트업 링크 모음 (0) | 2022.10.30 |
[빡공팟 5기] W6 : DVWA 실습 - JavaScript (medium) (0) | 2022.10.30 |