ZeroBase/CS

XXS(Cross-Site Scripting)

Red_Horse 2025. 8. 7. 16:43

웹사이트에 악성 스크립트를 삽입하고, 이를 방문한 사용자의 브라우저에서 실행되도록 유도하는 공격 기법입니다.

 

공격 흐름

  1. 입력 필드에 악성 스크립트 삽입
    • 예: 게시판, 댓글, 검색창 등
  2. 웹사이트가 이를 검증 없이 저장/출력
    • DB에 저장하거나 HTML로 렌더링
  3. 다른 사용자가 웹페이지 접근
    • 스크립트가 실행되어 피해 발생:
      • 쿠키/세션 탈취
      • 악성 사이트로 리다이렉트
      • 악성코드 자동 다운로드 등

방어 기법

방법 설명
입력값 검증 스크립트 해석이 가능한 문자 필터링
허용된 형식만 수용 (화이트리스트 기반)
출력값 인코딩 <, >, ', " 등을 HTML 엔티티로 변환
ex: <script> → &lt;script&gt;
콘텐츠 보안 정책 (CSP) 브라우저가 외부 스크립트 로드를 제한
HTTP 헤더: Content-Security-Policy
HttpOnly 쿠키 설정 JavaScript로 쿠키 접근 차단
Set-Cookie: key=value; HttpOnly 설정
 

예시 (공격 코드)

<script>alert('XSS 공격')</script>
 

위 코드가 댓글 등에 삽입되어 필터링 없이 렌더링되면 사용자 브라우저에서 스크립트가 실행됨.

 

피해 예시

  • document.cookie로 쿠키 탈취
  • location.href로 피싱사이트 유도
  • XMLHttpRequest로 백엔드 API 호출
항목 내용
위협 클라이언트 브라우저에서 스크립트가 실행되어 보안정보 탈취
주요 피해 쿠키/세션 탈취, 악성사이트 유도, 브라우저 조작
예방 방법 입력 검증, 출력 인코딩, CSP 적용, HttpOnly 쿠키

'ZeroBase > CS' 카테고리의 다른 글

운영체제와 컴퓨터 시스텀의 구조  (2) 2025.08.10
CSRF(Cross-Site Request Forgery)  (3) 2025.08.08
HTTP 멱등성  (1) 2025.08.06
네이글 알고리즘  (0) 2025.08.05
CORS  (1) 2025.08.04