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에 대해서 결과적으로는 동일한 행위를 할 수 있으나, 동작 방식이 틀림에 따라 조치를 취해야하는 위치도 틀릴 수 있다.
'+ Security' 카테고리의 다른 글
[Info] HTTPS 동작 방식 코믹스 (0) | 2020.05.04 |
---|---|
[info] Authentication(인증) vs Authorization(권한) (0) | 2020.03.04 |
[Bind] Bind Version 제거 (0) | 2019.10.18 |
[Web Storage] 로컬 스토리지 vs 세션 스토리지(Local Storage vs Session Storage) (0) | 2019.10.05 |
[Apache] 프로세스 계정 권한 설정 (0) | 2019.09.19 |
댓글