IT/영어 공부노트

[Web 보안] XSS 크로스사이트 스크립팅 본문

🛡️ security/주통기

[Web 보안] XSS 크로스사이트 스크립팅

소저어엉 2023. 8. 3. 16:10
반응형

주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드 - 웹보안

11. 크로스사이트 스크립팅

크로스사이트 스크립팅이란?

출처 https://medium.com/sessionstack-blog/how-javascript-works-5-types-of-xss-attacks-tips-on-preventing-them-e6e28327748a

공격자가 사이트에 악성 스크립트를 넣어 공격자가 입력한 악성스크립트가 사용자 측에서 응답하게 하는 취약점이다.

공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고, 임의의 기능을 수행하는 등의 공격을 진행할 수 있다. 

이는 이용자가 삽입한 내용을 출력하는 기능에서 발생한다.

 

자세한 설명 -> https://hi-sojeong.tistory.com/7 

 

Cross Site Scripting : XSS 정리

XSS(Cross Site Scripting) 공격자가 입력한 악성스크립트가 사용자 측에서 응답하는 취약점이다. 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고, 임의의 기능을 수행하는 등의 공격

hi-sojeong.tistory.com


취약점 분석

취약점 개요
점검내용 - 웹 사이트 내 XSS 취약점 존재 여부 점검
점검목적 - 웹 사이트 내 XSS 취약점을 제거하여 악성 스크립트의 실행을 차단
보안위협 - 웹 애플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자는 사용자 입력 값을 받는 게시판, URL 등에 악의적인 스크립트를 삽입해 사용자의 쿠키(세션)을 탈취해 도용하거나 악성코드 유포 사이트로 Redirect 시킴

 

점검대상 및 판단기준
대상 - 웹 애플리케이션 소스코드, 웹 방화벽
판단기준 - 양호: 사용자 입력 값에 대한 검증 및 필터링이 이루어지는 경우
- 취약: 사용자 입력 값에 대한 검증 및 필터링이 이루어지지 않으며, HTML 코드가 입력 실행되는 경우
조치방법 - 웹 사이트의 게시판, 문의, URL 등에서 사용자 입력 값에 대해 검증 로직을 추가하거나 입력되도 실행되지 않게 하고, HTML을 사용하는 경우 그 중 필요한 코드에 대해서만 입력되게 설정

점검 및 조치사례

XSS에 취약한 페이지 유형 1. HTML을 지원하는 게시판
2. Search Page
3. Join Form Page
4. Referrer를 이용하는 Page
5. 그 외 사용자로부터 입력받아 화면에 출력하는 모든 페이지
XSS 유발 스크립트 <script> … </script>
<img src=“javascript:…..”>
<div style=“background-image:url(javascript…)”></div>
<embed>…</embed>
<iframe></iframe>

1. 사용자 입력 값을 전달받는 애플리케이션에 스크립트 입력 후 실행되는지

  • 회원정보 변경
  • 게시판
  • 댓글
  • 자료실
  • 검색
  • URL

보안설정방법

- 웹 사이트에 사용자 입력값이 저장되는 페이지는 공격자가 웹 브라우저를 통해 실행되는 스크립트언어를 사용하여 공격하니, 태그 사용을 제한하고, 사용자 입력 값에 대한 필터링이 필요함

- 게시물의 본문뿐만 아니라 제목, 댓글, 검색어 입력 창, 그 외 사용자 측에서 넘어오는 값을 신뢰하는 모든 form과 파라미터 값에 대해서 필터링을 수행함

- 입력 값에 대한 필터링 로직 구현 시 공백 문자를 제거하는 trim, replace 함수를 사용하여 반드시 서버 측에서 구현되어야 함

- URLDecoder 클래스에 존재하는 decode 메소드를 통해 URL 인코딩이 적용된 사용자 입력 값을 디코딩함으로써 우회 공격 차단

URL 인코딩이란 URL에서 URL로 사용할 수 없는 문자 혹은 URL로 사용할 수 있지만 의미가 왜곡될 수 있는 문자들을 '%XX'의 형태로 변환하는 것을 말한다.

- 웹 방화벽에 모든 사용자 입력 폼(회원정보 변경, 게시판, 댓글, 자료실, 검색, URL 등)을 대상으로 특수문자, 특수 구문 필터링하도록 룰셋 적용

필터링 조치 대상 입력 값
• 스크립트 정의어 : <SCRIPT>, <OBJECT>, <APPLET>, <EMBED>, <FORM>, <IFRAME> 등
• 특수문자 : <, >, ", ', &, %, %00(null) 등


참고

주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드 p.673-p.677

url 인코딩&디코딩: https://it-eldorado.tistory.com/143

반응형