HACKING/WEB

[OWASP] 7. XSS

myejinni 2021. 7. 31. 15:55

1. XSS

   : Cross Site Script

   : 악의적인 사용자가 사이트에 스크립트를 집어넣어 의도치 않는 행동을 수행 / 쿠키정보, 세션 등 민감정보를 탈취하는 공격

 

2. 취약점 발생 이유?

   : 사용자의 입력값이 페이지 내부에 존재 & HTML tag 형태

     => 파싱 과정: 사용자의 입력값까지 HTML로 인식하여 생기는 취약점 

 

3. 공격 방법

   -1. Stored XSS 

        : 게시글에 악성 스크립트를 삽입 후 서버에 업로드

          => 희생자가 게시글을 클릭

          => 문자열로 저장된 악성 스크립트가 희생자의 브라우저에서 실행 가능한 스크립트로 변환되면서 실행

   -2. Reflected XSS 

        : HTTP GET 방식을 이용 => 웹 어플리케이션의 지정된 변수를 사용하여 공격

        : 스크립트 삽입 시 동작이 되는지 파악

          => <script>alert(document.cookie)</script> 스크립트를 URL 자체에 삽입

          => 링크에 접속하는 순간 XSS 공격이 일어남

 

4. 방어 방법

    : 사용자에게 전달받은 파라미터(입력값)에 대해 적절한 필터링

     -1. 화이트 리스트

     -2. 라이브러리 사용

     -3. HTML entity 치환 

         : 특수문자를 HTML entity로 변환

           => 렌더링 과정에서 <,>,(,) 등을 HTML tag로 인식하지 못하게 함