Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

jwj3400

[backend] XSS(Cross Site Scripting) & CSRF (Cross-Site Request Forgery) 본문

코딩/web

[backend] XSS(Cross Site Scripting) & CSRF (Cross-Site Request Forgery)

jwj3400 2023. 10. 6. 16:38
  • XSS
  • 공격대상이 Client
  • 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법
    • Stored XSS: 사용자가 게시물을 열람시 공격자가 입력해 놓은 악성 스크립트가 실행되어 사용자의 정보 유출, 스크립트 코드가 서버내에 저장됨
    • Reflected XSS: 공격자가 HTTP 요청에 악성 콘텐츠를 주입하면 그 결과 사용자에게 반사되는 형태, 사용자가 악성 스크립트 url을 클릭하도록 유도
  • 공격자의 서버로 쿠키에 저장된 세션 토큰을 전송하는 식으로 <사용자의 정보탈취>를 목적으로함

 

  • CSRF
  • CSRF란 명시적인 동의 없이 사용자를 대신하여 웹 어플리케이션에 악의적인 행동을 취하는 공격
  • 쿠키와 세션을 이용한 로그인 순서

  1. 로그인 하면 세션 아이디를 서버에서 생성하고, 세션 아이디를 클라이언트 set-Cookie 헤더에 담아서 저장 (클라이언트 쿠기에 세션 아이디가 저장됨)
  2. 클라이언트가 서버로 요청 시 세션 아이디를 자동으로 전달하며 세션 아이디를 통해 인증된 사용자인지 서버에서 확인(브라우저는 요청을 보낼 때마다 쿠키를 함께 전달)
  • CSRF 공격 과정

  1.  사용자 브라우저에 세션 아이디 쿠키가 존재
  2.  악성 스크립트 페이지를 클릭
  3.  악성 페이지 접근 시 악성 페이지에 있는 요청을 서버로 전송
  4.  서버는 세션 아이디가 있기에 요청 처리
  • CSRF는 공격자가 의도한 행위를 웹사이트에 요청함
  • CSRF 조건
    • 위조요청을 전송하는 서비스에 사용자가 로그인
    • 사용자는 공격자가 만든 사이트에 접속
  • XSS와 CSRF 차이
    XSS는 정보탈취가 목적이라면, CSRF는 권한도용이 목적
    XSS는 사용자가 특정 웹사이트를 신용하는 점을 노리고 CSRF는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 것을 노림