ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <WEB Hacking> Cookie
    WEB Hacking 2021. 12. 14. 22:44

    - 웹 서버는 수많은 클라이언트와 HTTP 프로토콜을 사용해 통신

    - HTTP 프로토콜로 웹 서버와 통신할 때는 웹 서버에 명령을 내리기 위해 GET, POST와 같은 메소드와 자원의 위치를 가리키는 URL 등이 포함되어 있음

    - 이외에도 헤더(Header)를 통해 웹 서버에게 요청을 보내고, 웹 서버는 헤더를 통해서 웹 서버에게 요청을 보내고, 웹 서버는 헤더를 읽고 클라이언트에게 결과 값을 반환

    - 헤더에는 클라이언트의 정보와 요청의 내용을 구체화하는 등의 데이터가 포함되는데, 클라이언트의 인증 정보도 포함

     

    ■쿠키

    - 클라이언트의 IP 주소와 User-Agent는 매번 변경될 수 있으며, HTTP 프로토콜의 Connectionless와 Stateless 특징 때문에 웹 서버는 클라이언트를 기억할 수 없음

    - 쿠키는 Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송

    - 서버는 클라이언트의 요청에 포함된 쿠키를 통해 클라이언트를 구분

     

    ※ Connectionless : 하나의 요청에 하나의 응답을 한 후, 연결을 종료하는 것을 의미

    ※ Stateless : 통신이 끝난 후 상태 정보를 저장하지 않는 것을 의미

     

    ■쿠키의 용도

    일반적으로 쿠키는 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용

    · 정보 기록

      - 팝업 창 : 웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 쿠키에 해당 정보를 기록하고 쿠키를 통해 팝업 창 표시 여부를 판단

      - 쿠키는 서버와 통신할 때마다 전송되므로 쿠키가 필요없는 경우, 리소스 낭비가 발생하는 가능성이 있으므로 

    최근에는 Modern Storage APIs를 통해 데이터를 저장하는 방식을 권장함

    · 상태 정보

      - 웹 서버는 수많은 클라이언트의 로그인 상태와 이용자를 구별하기 위해 클라이언트를 식별할 수 있는 값을 쿠키에 저장하여 사용

     

    ■쿠키가 없는 통신

    서버는 요청을 보낸 클라이언트가 누구인지 알 수 없기 때문에 어떤 클라이언트와 통신하는 지 알 수 없음

     

    ■쿠키가 있는 통신

    클라이언트는 서버에 요청을 보낼때 마다 쿠키를 포함하고, 서버는 해당 쿠키를 통해 클라이언트를 식별함

     

    ■쿠키 변조

    - 쿠키는 클라이언트의 브라우저에 저장되고 요청에 포함되는 정보

    - 서버가 별다른 검증 없이 쿠키를 통해 클라이언트를 식별하는 경우, 악의적인 클라이언트는 쿠키 정보를 변조해 서버에 요청하여 타 클라이언트를 사칭해 정보를 탈취할 수 있음

     

    ■쿠키 적용법

    - 쿠키는 클라이언트에 저장되므로, 클라이언트는 저장된 쿠키를 조회, 수정, 추가할 수 있음

    - 클라이언트가 서버에게 요청을 보낼 때 저장된 쿠키를 요청 헤더에 넣어 전송하므로, 이용자가 요청을 보낼 때 쿠키 헤더를 변조할 수 있음

    - 쿠키를 설정할 때는 만료 시간을 지정할 수 있고, 만료 시간 이후에는 클라이언트에서 쿠키가 삭제됨

    - 쿠키의 만료는 클라이언트(브라우저)에서 관리

    - 쿠키는 서버와 클라이언트 둘 다 설정할 수 있음

    서버 HTTP 응답 중 헤더에 쿠키 설정 헤더(Set-Cookie)를 추가하면 클라이언트의 쿠키를 설정함
    클라이언트 자바스크립트를 이용해 쿠키를 설정함 ex) document.cookie="{Key}={Value};"

     

    ■세션 하이재킹

    - 공격자가 이용자의 쿠키를 훔칠 수 있으며 세션에 해당하는 이용자의 인증 상태 및 정보를 훔치는 것

    'WEB Hacking' 카테고리의 다른 글

    <WEB Hacking> SOP  (0) 2021.12.15
    <WEB Hacking> Session  (0) 2021.12.14
    <WEB Hacking> Browser DevTools  (0) 2021.12.14
    <WEB Hacking> Web Browser  (0) 2021.12.13
    <WEB Hacking> Web  (0) 2021.12.13
Designed by Tistory.