[DREAMHACK/230930] 웹해킹 입문5

서혜선·2023년 9월 30일
0

드림핵

목록 보기
5/5

Keyword

Cross Site Scripting(XSS)

클라이언트 사이드 취약점 = 웹페이지 이용자를 대상으로 공격이 가능
공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행함으로써,
특정 계정의 세션 정보를 탈취해 임의로 기능들을 수행할 수 있다.


앞선 SOP 보안 정책의 등장 이후로 서로 다른 오리진에서는 정보를 읽기 힘들어 졌지만, 이를 우회하는 다양한 기술이 나오게 되면서 XSS공격은 지속되고 있다는 것,


XSS 발생 종류

  • Stored XSS : 악성 스크립트가 서버에 저장, 서버의 응답에 담겨오는 XSS
  • Reflected XSS : 악성 스크립트가 URL에 삽입, 서버의 응답에 담겨오는 XSS
  • DOM-based XSS : 악성 스크립트가 URL Fragment에 삽입되는 XSS
  • Fragnebt는 서버 요청/응답에 포함되지 않는다 !
  • Universal XSS : 클라이언트의 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점(SOP 정책을 우회)



XSS 스크립트의 예시

js = 웹 문서의 동작을 정의(이용자와의 상호작용 : ex) 클릭 이벤트, 데이터 입력/전송 이벤트)
but, 이용자와의 상호작용 없이 이용자의 권한을 통해 정보를 조회, 변경이 가능하다.
(이용자를 식별하기 위한 세션 및 쿠키가 웹 브라우저에 저장되어 있기 때문!)


즉, 다양한 동작 정의가 가능해 XSS 공격에 주로 사용된다.



Stored XSS(악성 스크립트가 서버에)

서버의 DB 또는 파일 등의 형태로 저장된 악성 스크립트를 조회시 발생한다.
대표적 예) 게시물, 댓글에 악성 스크립트를 포함해 업로드하는 방식이 있음
불특정 다수에게 보여지기 때문에 높은 파급력을 지님


#### Reflected XSS(악성 스크립트가 이용자 요청에) 서버가 악성 스크립트가 담긴 요청을 출력할 때 발생한다. 대표적 예) 게시물 조회를 위한 검색창에서 스크립트를 포함해 검색하는 방식 이용자가 게시물을 검색할 시, 서버에서는 검색 결과를 이용자에게 반환 => 일부 서비스에서 검색 결과를 응답에 포함, 검색 문자열에서 악성 스크립트가 포함되어 있을때 발생할 수 있다.

url 등 이용자의 요청에 의해 발생하므로, 이용자를 악성 스크립트가 포함된 링크로 접속하도록 유도되어야 함
링크를 직접 전달하는 방법은 이용자가 눈치챌 수 있으므로, 주로 Click Jacking, Open Redirect 등 다른 취약점과 연계해 사용한다.

profile
FE, 기록하고 기억하기

0개의 댓글