-
[WEB] 01. XSS(Cross Site Scripting)03. Web/01. Concept 2023. 8. 2. 08:27
* XSS(Cross Site Scripting, 크로스사이트 스크립팅) 취약점이란?
웹사이트에 악성스크립트를 주입하는 행위를 말한다. 주로 글을 쓰고 읽을 수 있는 게시판에서 많이 발생하지만 사용자의 입력 값을 웹 페이지에 보여주는 모든 곳에서 발생할 수 있다. 해커는 이를 통해 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 악성코드가 있는 URL로 리다이렉트 시킬 수 있다. 웹사이트 사이를 넘어서 공격한다는 의미에서 크로스 사이트 스크립팅이라는 용어가 생겼다. 기존에는 자바 스크립트만을 지칭하는 데 사용되었지만, 현재 XSS는 ActiveX, Flash, HTML등과 같은 비(非) JS도 포함하는 용어가 되었다.
XSS 동작 예시 1. Stored-XSS(저장형-XSS) 란?
Stored-XSS 공격은 말 그대로 악성스크립트를 데이터베이스에 저장하여 저장된 악성스크립트가 있는 게시글 등이 열람될때마다 지속적으로 피해를 입히는 공격이다. 지속적으로 공격한다고 하여 Persistent XSS라고 부르기도 한다. 한 번의 공격으로 악성스크립트를 삽입하여 수많은 피해를 입힐 수 있다는 점이 특징이다.
Stored-XSS 동작 예시 2. Reflected-XSS(반사형-XSS) 란?
Reflected XSS 공격은 사용자에게 입력 받은 값을 서버에서 되돌려 주는 곳에서 발생한다. 예를 들면 사용자에게 입력받은 검색어를 그대로 보여주는 곳이나, 사용자가 입력한 값을 에러메시지에 포함하여 보여주는 곳에 악성스크립트가 삽입되면, 서버가 사용자의 입력 값을 포함해 응답해 줄 때 스크립트가 실행된다. 보통 Reflected XSS는 공격자가 악의적인 스크립트와 함께 URL을 사용자에게 누르도록 유도하고, URL을 누른 사용자는 악의적인 스크립트가 실행되면서 공격을 당한다.
Reflected-XSS 동작 예시 3. DOM(Document Object Model) based XSS 란?
악의적인 스크립트가 포함된 URL을 사용자가 요청하게 되어 브라우저를 해석하는 단계에서 발생하는 공격이다. DOM based XSS 공격은 다른 XSS 공격과는 다르게 서버와 관계없이 브라우저에서 발생하는 것이 차이점이다. 따라서 서버에서 탐지가 어렵다는 특징을 가지고 있다. 아래의 예시를 보면 URL 뒤에 #이라는 해시기호를 사용하고 있다. fragment라고 하며 일반적으로 특정 content의 위치를 가리키기 위한 값으로 사용된다. # 이후의 값은 서버로 전송되지 않는다는 특징을 가지고 있다.
DOM based-XSS 동작 예시 '03. Web > 01. Concept' 카테고리의 다른 글
03. JWT (0) 2023.10.25 02. HTTP, TCP, Web Socket (0) 2023.10.25 01. URL 검색 시 동작 원리 (2) 2023.10.25 모의해킹 및 취약점 진단 Road Map (0) 2023.07.30