Cross Stie Scripting
클라이언트 사이드 취약점 중 하나로써 웹 페이지의 이용자를 대상으로 하는 공격 기법이다.
- 세션 및 쿠키 정보 탈취 -> 해당 계정으로 임의의 기능 수행
- 웹 리소스에 악성 스크립트 삽입해 이용자의 웹 브라우저에서 해당 스크립트 실행 가능
1. Stored XSS : XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS
- 서버, DB에 저장된 악성 스크립트 조회시 발생
- 게시물, 댓글에 포함시켜 업로드
2. Reflected XSS : XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS
- 게시판 서비스에서 작성된 게시물 조회하기 위한 검색창에서 스크립트 포함해 검색하는 방식
- URL과 같은 이용자의 요청에 의해 발생
- 공격을 위해서는 다른 이용자를 악성 스크립트가 포함된 링크에 접속하도록 유도해야함
- Click Jacking, Open Redirect 등 다른 취약점과 연계하여 사용
3. DOM-Based XSS : XSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 XSS
- Fragment는 서버 요청/응답에 포함되지 않는다.
4. Universal XSS : 클라이언트의 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점
- SOP(Same Oring Policy) 정책을 우회하는 XSS








이번에도 flag 페이지에서 어떠한 코드를 입력했을때 해당 flag가 나오도록 되어있다. XSS-1 과는 다르게 <script> 문법이 아닌 <img> 태그를 이용하여 해당 flag를 획득하였다.
- 코드 : <img src=x onerror=this.src=‘/memo?memo='+document.cookie;'>

- 필터링 : 도착시 입력내용 검증
- 적절한 응답 헤더 사용 : Content-Type, X-Content-Type-Options
- Content Security Policy
- Twig, Freemaker를 HTML에 삽입 (server sied template engines)
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; img-src https://*; child-src 'none';" />
Content-Security-Policy: policy