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)하고 새로고침을 했다.

새로고침을 하니 쿠키가 있던 라인이 다 사라지고 로그인이 풀린 것을 볼 수 있었다.
'해킹&보안 > 웹 & 앱' 카테고리의 다른 글
OWASP TOP 10 (0) | 2024.07.31 |
---|---|
XSS (0) | 2024.07.31 |
취약점 (vulnerability) (0) | 2024.05.27 |
웹 애플리케이션 모의해킹 (0) | 2024.05.15 |
Brute Force Attack (0) | 2024.05.05 |