찬란하게

[웹해킹] XSS 총정리 #1_공격 종류, 시나리오 본문

정보보안/웹 해킹

[웹해킹] XSS 총정리 #1_공격 종류, 시나리오

체리핫 2021. 5. 9. 14:13

1. XSS란? (Cross Site Scripting)

1) 의미

공격자악의적인 스크립트사용자브라우저에서 실행되는 취약점이다.

정보보안개론-한빛미디어

2) 발생 원인 

악의적인 스크립트 코드가 삽입된 입력값을 서버가 적절한 검증절차 없이 반환하기 때문이다.

 

3) 예상 피해

- 사용자 개인정보 탈취 : kelogger 형태를 활용해 키보드 입력값 탈취

- 사용자 쿠키 정보 탈취 : document.cookie를 활용

- 악성코드 다운로드 또는 실행

- 피싱 사이트 강제 이동 : loction.href를 통해 페이지 강제 이동

 

2. 공격 종류

1) Reflected XSS = 반사형 

공격자가 악의적인 스크립트를 포함한 url을 메신저, 이메일 등을 이용해 사용자에게 노출시킨다.

이 url에 사용자가 접근하면 스크립트가 실행되어 피해를 발생시킨다.

 

2) Stored XSS = 저장형

공격자가 악의적인 스크립트를 취약한 서버에 게시물 형태로 저장시킨다.

사용자가 해당 게시물에 접근하면 스크립트가 실행된다.

 

3) DOM Based XSS = 돔 기반

공격자가 악의적인 스크립트를 포함한 url을 메신저, 이메일 등을 이용해 사용자에게 노출시킨다.

이 url에 사용자가 접근할 경우에 서버와의 상호작용 없이 브라우저에서 스크립트가 실행되어 피해를 발생시킨다.

-> 공격코드가 서버에 전송되지 않고, 브라우저에서 동적으로 움직인다.

즉, 서버로 request가 발생하지 않는다.

 

- 돔 : 브라우저가 이해할 수 있는 형태로, 브라우저가 HTML 문서를 받고 이를 돔 형태로 변환시킨다.

트리 구조를 가지고 있다.

 

- 돔 객체 : 

documet.getElementByID...

 

3. 시나리오 구성

- 악성코드 다운로드, 피싱 사이트 이동

1) 공격자는 악의적인 웹을 구축한다.

2) Reflected XSS 취약점이 있는 웹에 악성 스크립트를 포함한 url을 희생자에게 노출시킨다.

3) 희생자는 url 클릭 시 악의적인 웹으로 이동한다.

4) 악성코드 다운로드, 피싱 사이트 이동 등 공격자의 의도대로 악의적인 기능이 수행된다.

 

- 사용자 쿠키정보 탈취

1) 게시판에 사용자 쿠키정보를 탈취하는 스크립트를 포함한 게시물을 작성한다.

2) 사용자가 해당 글 열람 시 쿠키 정보가 공격자에게 전송된다.

3) 공격자가 사용자 쿠키정보를 이용해 권한 탈취 후 웹에 접근한다.

 

- 사용자 입력 탈취

1) 비밀댓글 작성이 가능한 게시판에 keylogger 스크립트를 등록한다.

2) 사용자가 입력시에 공격자가 입력값을 획득한다.

 

4. 진단 방법

 

0) JavaScript 이벤트 핸들러:

웹 페이지에서 특수한 이벤트 발생 시 코드가 실행된다.

- onerror()

- onClick()...

 

1) Request/Response : XSS 공격은 Response가 아닌, Request값을 변경해야한다.

 

2) 사용자 입력값이 서버에 저장되는 영역 : 게시판, 메일, 메모