WEB/웹해킹

[웹해킹] stage 4

너굴맨이해치움 2022. 9. 23. 04:38

1. XSS

: 클라이언트 사이드의 취약점 중 하나.

  • 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹브라우저에서 해당 스크립트를 실행하는 것
  • XSS 취약점이 존재하면 해당 사이트 내에서 오리진 권한으로 악성 스크립트를 삽입할 수 있고
  • 이후에 이용자가 악성 스크립트가 포함된 페이지를 방문하면 공격자가 임의로 삽입함 스크립트가 실행되어
  • 쿠키 및 세션이 탈취될 수 있음
  • SOP 보안 정책이 등장하며 서로 다른 오리진에서는 정보를 읽는 행위가 이전 대비 힘들어졌지만
  • 이를 우회하는 다양한 기술이 등장해 지속되고 있음

 

 

1-1. XSS의 종류

  • XSS 공격은 이용자가 삽입한 내용을 출력하는 기능에서 발생함

 

 

1-2. XSS 스크립트의 예시

  • 자바스크립트는 웹 문서의 동작을 정의함
  • -> 이용자 측의 조작으로 발생시키는 이벤트와 데이터를 전송하는 이벤트를 구현할 수 있음
  • 이용자와의 상호작용 없이 이용자의 권한으로 정보를 조회하거나 변경하는 등의 행위가 가능함
  • => 이용자를 식별하기 위한 세션/쿠키가 웹 브라우저에 저장되어 있기 때문임
  • -> 공격자는 JS를 통해 이용자에게 보여지는 웹페이지를 조작하거나 / 브라우저 위치를 임의 주소로 변경 가능

 

 

1-3. Stored XSS

: 서버의 데이터베이스 또는 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생하는 XSS

  • 대표적으로 게시물과 댓글에 악성 스크립트를 포함해 업로드하는 방식이 있음
  • 게시물은 불특정 다수에게 보여지므로 해당 기능에서 XSS 취약점이 존재할 경우 높은 파급력을 가짐

 

 

1-4. Reflected XSS

: 서버가 악성 스크립트가 담긴 요청을 출력할 때 발생하는 XSS

  • ex) 검색창에 스크립트를 포함해 검색하는 방식
  • Stored XSS와는 달리 URL과 같은 이용자 요청에 의해 발생
  • -> 공격을 위해서는 타 이용자에게 악성 스크립트가 포함된 링크에 접속하도록 유도해야 함
  • 이용자에게 링크를 직접 전달하면 악성스크립트 포함 여부를 이용자가 눈치챌 수 있기 때문에
  • 주로 Click Jacking 또는 Open Redirect 등 다른 취약점과 연계하여 사용