<aside> 🧑🎓
요약
<aside> 🧑🎓
클라이언트 사이드 취약점 (ClientSide)
웹 페이지의 이용자를 공격할 수 있는 취약점
이 취약점을 통해 세션, 쿠키 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다.
대표적인 클라이언트 사이드 취약점은 XSS (Cross-Site Scripting)이다.
약어는 CSS이나, 스타일시트를 정의하는 언어인 CSS와 중복되어 혼동이 올 수 있기 때문에 XSS가 되었다.
</aside>
웹 사이트에 악성 스크립트를 삽입하여 그 웹사이트를 이용하는 사람의 브라우저에서 해당 코드가 실행되게 하는 공격이다.
사용자가 그 웹 페이지에 접속하기만 해도 자신도 모르게 악성 코드가 실행되기 때문에 쿠키나 세션이 공격자에게 탈취당할 수 있다.
XSS는 SOP 보안 정책이 등장하면서 힘들어졌지만, 이를 우회하는 다양한 기술이 늘어나면서 지속되고 있다.
XSS는 이용자가 삽입한 내용을 출력하는 기능에서 발생한다.
브라우저는 HTML, CSS, JS 등의 웹 리소스를 시각화하여 이용자에게 보여준다. 이때 HTML, CSS, JS와 같은 코드가 포함된 게시글을 조회할 경우 악성 스크립트가 실행될 수 있다.
종류 | 설명 |
---|---|
Stored XSS | 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS |
Reflected XSS | 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS |
DOM-based XSS | 악성 스크립트가 URL Fragment에 삽입되는 XSS |
(Fragment는 URL에서 # 기호 뒤에 오는 부분으로, 서버의 요청/응답에 포함되지 않는다.) |
|
Universal XSS | 클라이언트의 브라우저나 브라우저의 플러그인에서 발생하는 취약점으로 SOP을 우회하는 XSS |
자바스크립트는 다양한 동작을 정의할 수 있기 때문에 XSS 공격에 주로 사용된다.