DESC

내가 보려고 쓰는 블로그

«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Today
-
Yesterday
-
Total
-
  • [보안취약점] 크로스사이트 스크립팅
    ETC./인증 심사 2020. 4. 28. 10:57
    반응형

    사용자 요청에 의해 검증되지 않은 외부 입력 데이터(부적절한 스크립트)가 포함된 동적 웹페이지가 생성·전송되는 경우, 사용자가 해당 동적 웹페이지를 열람함으로써 웹 페이지에 포함된 부적절한 스크립트가 실행되는 공격이다.


    이는 사용자 정보유출(계좌번호, 계정, 패스워드 등) 이외에 사용자 세션도용, 악성코드 유포, 브라우저 무한요청 등의 공격이 가능하다.

     

    한국인터넷진흥원 주요정보통신기반시설 기술적 취약점 분석 평가 상세 가이드 기준 취약 유형
      1. HTML 을 지원하는 게시판
      2. Search Page
      3. Join Form Page
      4. Referrer를 이용하는 Page
      5. 그외 사용자로부터 입력받아 화면에 출력하는 모든 페이지에서 발생 가능

     

    <!-- 공격 구문 샘플 -->
    <a href="jAvAsCrIpT&colon;alert&lpar;1&rpar;">X</a>

     

    제목이나 글 등에 위와같은 방식으로 삽입한 내용들을 예외처리 하지 않으면

    사용자가 게시글을 확인할 때 악성 스크립트가 실행된다.

     

    주로 사용하는 태그나 스크립트 키워드는 제거 하거나 변환하여 저장하는 XSS 처리가 필요하다.

    만약 request 를 통한 데이터 전송이 있을 시 파라미터를 받아오기 전 모든 데이터에 체크 로직을 필수적으로 추가한다.

     

    String value = "";
    value = value.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
    value = value.replaceAll("eval\\((.*)\\)", "");
    value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");

     

    주요 블랙리스트 키워드

    String[] xssWords = {
    		"script",
    		"object",
    		"applet",
    		"embed ",
    		"form ",
    		"iframe",
            
    		"link ",
    		"javascript",
    		"vbscript",
    		"urn ",
    		"document",
    		"cookie",
    		"alert",
    		"input",
    		"location",
    		"unescape",
    		
    		"onabort",
    		"onblur",
    		"onchange",
    		"onclick",
    		"ondblclick",
    		"ondragdrop",
    		"onerror",
    		"onkeydown",
    		"onkeypress",
    		"onkeyup",
    		"onload",
    		"onmousedown",
    		"onmouseout",
    		"onmouseover",
    		"onmouseup",
    		"onmove",
    		"onreset",
    		"onresize",
    		"onsubmit",
    		"onunload"
    	};

     

    <, > 등의 기호들을 제거하면 게시글에서 html 태그를 허용하는경우 전체 인식이 되지 않는다.

    예외처리 단어가 본문에서 필요한 경우에도 금지어로 인식되어 불편할 수 있다.

     

     

    ex)

    layer 라는 단어를 태그의 금지어로 지정했는데 본문에서 Player 라는 단어를 사용하고자 할 때 금지어로 인식되는 경우

     

     

     

    < 한국인터넷진흥원 주요정보통신기반시설 기술적 취약점 분석 평가 상세 가이드 기준 취약 유형 권고 대상 >

    반응형

    댓글

Customed By Hailey Gong.