본문 바로가기

해킹&보안/웹 & 앱

쿠키&세션

 

HTTP(Hyper Text Transfer Protocol)

  • 서버와 클라이언트 간 데이터 교환을 요청(Request)과 응답(Response) 형식으로 정의한 프로토콜
  • 팀 버너스 리가 제정, 현대 웹 서비스의 기반
  • 주로 TCP/80 또는 TCP/8080 포트 사용

HTTP 메시지

클라이언트가 전송하는 HTTP 요청, 서버가 반환하는 HTTP 응답이 있다.

POST / login HTTP / 1.1
Connection:keep-alive
User-Agent: Mozilla/5.0 (Macintosh: Intel Mac OS X 10_14_6)
AppleWebkit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88
Safari/53736
content-length:67
content-type: application/json
--- 빈 줄 ----
{email: gildong@naver.com. password: "hongdong")

첫 줄은 [시작줄]로 메소드(Method), 요청 대상(Request target), HTTP 버전으로 구성된다

두번쨰 부분은 [헤더]로 필드 으로 구성되며 HTTP 메시지 또는 바디의 속성을 나타낸다.

 

아래는 상태코드에 대한 설명이다

1xx  │ 요청을 제대로 받았고, 처리가 진행 중임
2xx  │ 요청이 제대로 처리됨                                                    
3xx  │ 요청을 처리하려면, 클라이언트가 추가 동작을 취해야 함.
4xx  │   클라이언트가 잘못된 요청을 보내어  처리에 실패 
5xx  │ 클라이언트의 요청은 유효하지만 서버에 에러가 발생하여 처리에 실패

Cookie & Session

  • 쿠키: 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용
  • 세션: 서버에서 사용자의 상태를 저장

*쿠키의 개념을 일상생활에 비유*

1. 내가 자주 가는 식당이 있는데 식당을 갈 때마다, 선호하는 음식이나 음료를 기억해주는 개인화된 메뉴판이 있다.

2. 메뉴판은 내가 식당을 들어가면 자동으로 제공된다.이 메뉴판은 내가 나갈 때까지 기억한다.

★이 개인화된 메뉴판은 식당에 있을때만 효과가 있고 식당을 이탈할 시 사라지거나 리셋된다. ★

쿠키가 없는 통신은
사용자 세션 관리 어려움, 사용자 맞춤화 및 설정 저장의 어려움, 추적 및 분석의 어려움 등이 있다.

 

쿠키 변조 클라이언트 측에서 저장된 쿠키의 값을 악의적으로 수정하거나 조작하는 행위
쿠키 변조의 예시

  • 세션 하이재킹: 쿠키에 세션 ID가 저장되어 있을 때, 공격자는 이 쿠키 값을 수정하여 다른 사용자 세션을 하이재킹함
  • 권한 상승: 웹 애플리케이션에서 사용자 권한을 쿠키 값에 저장하는 경우, 공격자가 쿠키 값을 변조하여 높은 권한을 얻으려 할 수 있음
  • 인증 우회: 쿠키에 로그인 상태나 인증 토큰이 저장되어 있는 경우, 공격자가 이 값을 변조하여 인증을 우회 가능

*세션의 개념을 일상생활에 비유*

1. 도서관에서 책을 대출하는데, 도서관 직원은 나의 대출 카드에 어떤 책을 대출했는지 기록해놓는다.

2. 이 대출 카드는 도서관에 있을 때만 유효하고, 대출 기간 동안만 사용된다. 내가 도서관에 있는 동안, 대출 카드로 책의 대출 상태를 추적할 수 있다.

★대출 카드와 관련된 기록은 도서관에 있는 동안만 유효합니다. 즉, 도서관을 떠나면 대출 카드가 더 이상 유효하지 않으며, 도서관에 다시 방문할 때 새로운 대출 카드가 필요할 수 있습니다.

 

세션(Session): 쿠키에 인증 상태를 저장하지만 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 사용

ex) 로그인 상태를 유지하거나 장바구니에 담은 상품을 기억하는 등의 기능.

주요 기능으로는 사용자의 상태를 유지하고, 세션 동안 일관된 경험을 제공

 

쿠키&세션 간단 실습

로그인 되어있는 상태에서 쿠키 값을 삭제했을때 어떻게 되는가

로그인 되어있는 상태와 쿠키 값

쿠키 값 부분을 클릭 후 삭제(Delete)하고 새로고침을 했다.

삭제 후 모습

새로고침을 하니 쿠키가 있던 라인이 다 사라지고 로그인이 풀린 것을 볼 수 있었다.

 

 

 

'해킹&보안 > 웹 & 앱' 카테고리의 다른 글

SQL Injection  (0) 2024.08.02
OWASP TOP 10  (0) 2024.07.31
XSS  (0) 2024.07.31
취약점 (vulnerability)  (0) 2024.05.27
웹 애플리케이션 모의해킹  (0) 2024.05.15