728x90
반응형
💡 XSS (Cross-Site Scripting)
- XSS(Cross-Site Scripting)이란 웹 애플리케이션에서 일어나는 취약점으로 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법이다.
- 악의적인 사용자가 리다이렉션 스크립트를 주입하기도 하고, 사용자의 쿠키를 탈취하여 세션 하이재킹(Session Hijacking) 공격을 수행하기도 한다.
1. Persistent(or Stored) XSS
- 지속적으로 피해를 입히는 XSS 공격 기법
- 웹 애플리케이션에서 XSS 취약점이 있는 곳을 파악하고, 악성 스크립트를 삽입 (게시판)
- 삽입된 스크립트는 데이터베이스에 저장이 되어 사용자들의 쿠키를 탈취하거나 다른 사이트로 리다이렉션 시키는 공격을 한다.
<script>alert("hi jerry")</script>
2. Reflected XSS
- 사용자의 요청에 포함된 스크립트가 서버로부터 그대로 반사되어 응답 메시지에 포함돼 브라우저에서 스크립트를 실행되는 공격 기법이다.
- 사용자에게 입력 받은 검색어를 그대로 보여주는 곳이나 사용자가 입력한 값을 에러 메시지에 포함하여 주는 곳에 악성 스크립트가 삽입되면, 서버가 사용자의 입력 값을 포함해 응답해 줄 때 스크립트가 실행된다.
<script>alert("Reflected XSS Test")</script>
<script>alert(document.cookie)</script>
💡 CSRF (Cross-Site Request Forgery)
- 웹 사이트의 취약점 공격 중 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격이다.
- CSRF는 공격자가 사용자의 컴퓨터를 감염시키거나 해킹하는 것이 아닌, 사용자를 이용하여 서버를 공격하는 것으로 다음 조건을 만족해야 한다.
- 위조 요청을 전송하는 서비스(web site)에 희생자가 로그인 상태여야 한다
- 희생자는 공격자가 만든 링크를 통해 접속해야 한다 (낚시)
상품이 아직 도착하지 않았습니다
<a href="<http://localhost:8080/WebGoat/attack>?
Screen=479&menu=900&transferFunds=5000">확인하기</a>
이렇게 속여 링크를 클릭하게 해서 공격자가 입력한 주소로 설정된 Parameter를 들고가게 되면 피해를 입을 수 있다. ex> transferFunds=5000 ⇒ ‘5000 송금하기’
대응 방법
- 입출력 값 검증
- XSS 방어 라이브러리, 브라우저 확장 앱 사용
- 웹 방화벽 사용
- 쿠키 HttpOnly 옵션 활성화
- XSS 특수문자 치환
728x90
반응형
'🗂️ 컴퓨터 과학(CS) > 보안(Security)' 카테고리의 다른 글
[Security] XPATH Injection (0) | 2023.08.30 |
---|---|
[Security] Database Backdoors (0) | 2023.08.30 |
[Security] SQL Injection (0) | 2023.08.30 |