교차 사이트 스크립팅(XSS)

mokyoungg·2021년 2월 4일
0

store token

목록 보기
6/7

출처
https://owasp.org/www-community/attacks/xss/
https://www.kisa.or.kr/uploadfile/201312/201312161355109566.pdf
https://backend-intro.vlpt.us/4/


XSS란 무엇인가?

owasp의 설명 번역

XSS(Cross-Site Scripting) 공격은 악의적인 스크립트가 무해하고 신뢰할 수 있는 웹사이트에 주입되는 유형이다.
XSS 공격은 공격자가 웹 어플리케이션을 사용하여 일반적으로 브라우저 측 스크립트 형태의 악성 코드를 다른 최종 사용자에게 보낼 때 발생한다. 이러한 공격이 성공하도록 허용하는 결함은 널리 퍼져있으며 웹 어플리케이션이 유효성을 검사하거나 인코딩하지 않고 생성하는 출력 내에서 사용자의 입력을 사용하는 모든 곳에서 발생한다.

공격자는 XSS를 사용하여 의심하지 않는 사용자에게 악성 스크립트를 보낼 수 있다.
최종 사용자의 브라우저는 스크립트를 신뢰할 수 없다는 것을 알 수 없으며 스크립트를 실행한다. 스크립트가 신뢰할 수 있는 소스에서 온 것으로 생각하기 때문에 악성 스크립트는 브라우저가 보유하고 있는 해당 사이트에서 사용되는 쿠키, 세션 토큰 또는 기타 민감한 정보에 엑세스 할 수 있다. 이러한 스크립트는 HTML 페이지의 내용을 다시 작성할 수도 있다.

kisa 부분 발췌

웹 애플리케이션 보안 연구재단인 OWASP에 따르면 '크로스 사이트 스크립링(XSS)는 애플리케이션에서 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않거나, 출력 시 위험 데이터를 무효화 시키지 않을 때 발생한다.'라고 정의되어 있다.

즉, 공격자가 의도적으로 브라우저에서 실행될 수 있는 악성 스크립트를 웹 서버에 입력 또는 이것을 출력시 위험한 문자를 중성화시키지 않고 처리하는 애플리케이션의 개발 과정에서 발생한다.


이러한 공격에 스토리지가 취약한 이유는
공격자의 악성 스크립트에 노출될 경우 매우 쉽게 접근이 가능하다고 한다.
(스크립트에서 스토리지에 접근하면 바로 토큰에 접근할 수 있음)

이와는 달리, 토큰을 쿠키에 넣고 httpOnly 값을 활성화시키면
네트워크 통신 상에서만 해당 쿠키가 붙게 되며

자바스크립트로 토큰값에 접근하는 것이 불가능하게 된다.

profile
생경하다.

0개의 댓글