본문 바로가기
+ Security

[XSS] Reflected(반사형) vs Stored(저장형)

by :: Teacher :: 2020. 2. 26.
728x90
반응형

[XSS] Reflected(반사형) vs Stored(저장형)
[XSS] Reflected(반사형) vs Stored(저장형)

XSS에는 Reflected(반사형) XSS / Stored(저장형) XSS / DOM 기반 XSS로 나눌 수 있다. 

취약성 점검 혹은 취약점 제보를 받은 경우 Reflected(반사형) XSS , Stored(저장형) XSS에 대해 정확히 알아야 한다. 

여러 공통된 특징이 있지만 어떤 방식으로 확인하고 악용하는것에 대해서는 많은 차이가 있다. 

1. Reflected(반사형) XSS

Reflected(반사형) XSS는 URL, URL 파라미터, Cookie 파라미터등 사용자가 입력한 내용에 대해서 응답 페이지에 실행되는 취약점을 의미한다. 

결국 사용자가 입력한 특정 내용에 대해서 해당 웹 페이지 화면에 출력 되는 형태의 취약점이다. 

아래 이미지를 통해서 예시를 확인해 보자.

1. 사용자는 서비스에 로그인을 한다. 

2. 공격자는 조작한 서비스 URL을 사용자에게 제공한다.  

3. 사용자는 공격자의 URL을 입력 후 서비스에 요청 한다.

4. 서버는 공격자의 스크립트에 응답한다. 

5. 공격자의 스크립트는 사용자의 브라우저에서 실행된다.

6. 사용자의 브라우저는 공격자에게 중요정보(세션등) 토큰을 전달 한다.

7. 공격자는 사용자의 세션을 가로채 서비스에 로그인을 한다.

반응형

2. Stored(저장형) XSS

Stored(저장형) XSS는 공격자가 게시판등과 같은 부분에 악의적으로 스크립트를 삽입하고 저장하여 다른 사용자가 해당 게시글을 보거나, 리스트 확인시 악의적으로 삽입한 스크립트가 실행되는 취약점을 의미한다. 

결국 공격자가 악의적으로 삽입한 스크립트가 게시글, DB등에 저장되어 해당 부분이 웹 페이지 화면에 출력되면서 발생 되는 형태의 취약점이다.

아래 이미지를 통해서 예시를 확인해 보자.

1. 공격자는 악성 스크립트가 담긴 내용을 저장한다. (게시글등)

2. 사용자는 서비스에 로그인을 한다. 

3. 사용자는 공격자가 저장한 내용을 열어본다. 

4. 서버는 공격자의 스크립트에 응답한다. 

5. 공격자의 스크립트는 사용자의 브라우저에서 실행된다.

6. 사용자의 브라우저는 공격자에게 중요정보(세션등) 토큰을 전달 한다.

7. 공격자는 사용자의 세션을 가로채 서비스에 로그인을 한다.

예시와 같이 Reflected(반사형) XSS , Stored(저장형) XSS에 대해서 결과적으로는 동일한 행위를 할 수 있으나, 동작 방식이 틀림에 따라 조치를 취해야하는 위치도 틀릴 수 있다. 

참고 URL : https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85

 

사이트 간 스크립팅 - 위키백과, 우리 모두의 백과사전

사이트 간 스크립팅(또는 크로스 사이트 스크립팅, 영문 명칭 cross-site scripting, 영문 약어 XSS)은 웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에

ko.wikipedia.org

728x90
반응형

댓글


loading