1. Defintion
1-1. What is HTTP
Hyper Text Transfer Protocol
- 하이퍼텍스트 링크 사용해 웹 페이지 로드 하는데 사용
- Connectionless : 하나의 요청에 하나의 응답을 한 후 연결 종료
- Stateless : 통신이 끝난 후 상태 정보를 저장하지 않는 것을 의미
1-2. What is Cookie
HTTP에서 상태 유지하기 위해 사용하는 Key-Value 형태의 값
- 클라이언트 요청에 포함되는 정보로써 이용자가 임의로 조작 가능
- 서버 별다른 검증 없이 이용자 요청에 포함된 쿠기 신뢰하여 이용자 인증 식별 할 경우 쿠키에 타 계정 정보 삽입해 계정 탈취 가능
1-3. What is Session
Cookie의 취약점을 개선하기 위한 방안
- 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는키를 만들어 클라이언트에 전달 (사용자는 해당 키를 이용해 인증 가능)
- 세션 하이재킹 : 타 이용자의 쿠키 훔쳐 인증 정보를 획득하는 공격
2. Explanation
2-1. Cookie
1. Python 파일을 열어보면 해당 내용을 확인할 수 있다.
- dictionary 형태 ID : PW를 저장해놓음


2. 리턴값 확인
- cookie의 'username'을 가져와 "admin"인 경우 flag Return

3. guest로 로그인시 화면

4. 개발자 도구를 열어 Cookie 확인

4. guest값을 admin으로 변경

5. flag 획득

2-2 Session
1. Python 파일 확인
- dictionary 형태로 ID : PW 확인 가능

2. guest로 로그인 후 쿠키 확인
- 쿠키에 sessionid, username 확인 가능

3. 코드 확인
- /admin route 정보 확인

4. 접속
- 정보 확인 가능
- 해당 문자열을 cookie의 sessionid에 집어 넣어봄

5. flag 획득
