-
HTTP Basics보안 2023. 8. 29. 17:04
HTTP(Hypertext Transfer Protocol)는 월드 와이드 웹에서 데이터 통신의 기반을 이루는 프로토콜입니다. 클라이언트(일반적으로 웹 브라우저)가 서버에게 웹 페이지, 이미지, 비디오 등의 리소스를 요청하고, 서버가 해당 요청에 응답하는 방식을 정의하는 프로토콜입니다. 다음은 HTTP와 관련된 기본 개념입니다:
HTTP는 웹 통신의 기반을 형성하여 클라이언트와 서버 간의 정보 검색과 공유를 가능하게 합니다. 웹 개발, API 및 기타 웹 관련 기술과 작업 시 이러한 기본 개념을 이해하는 것이 중요합니다.- 요청과 응답: HTTP에서 클라이언트와 서버 간의 통신은 요청과 응답을 중심으로 이루어집니다. 클라이언트가 서버에 HTTP 요청을 보내면, 서버는 HTTP 응답으로 응답합니다.
- HTTP 메서드: HTTP는 리소스에 대해 수행할 작업의 유형을 나타내는 여러 가지 메서드(동사로 불리기도 함)를 정의합니다. 일반적인 메서드에는 다음이 포함됩니다:
- GET: 리소스를 검색합니다.
- POST: 데이터를 제출하여 처리합니다(예: 양식 제출).
- PUT: 리소스를 업데이트합니다.
- DELETE: 리소스를 제거합니다.
- URL(Uniform Resource Locator): URL은 웹에서 리소스를 찾기 위한 표준화된 주소입니다. 프로토콜("http" 또는 "https"), 도메인 이름, 경로, 쿼리 매개변수 및 프래그먼트 식별자와 같은 여러 구성 요소로 이루어져 있습니다.
- 헤더: HTTP 헤더는 요청과 응답 모두에 추가 정보를 제공하는 역할을 합니다. 콘텐츠 유형, 인코딩, 캐싱 지침 등 요청 또는 응답에 대한 메타데이터를 제공합니다.
- 상태 코드: HTTP 응답에는 요청의 결과를 나타내는 세 자리 상태 코드가 포함됩니다. 일반적인 상태 코드 범위는 다음과 같습니다:
- 2xx: 성공적인 응답.
- 3xx: 리디렉션 응답.
- 4xx: 클라이언트 오류 응답(예: "찾을 수 없음"을 나타내는 404).
- 5xx: 서버 오류 응답(예: "내부 서버 오류"를 나타내는 500).
- 쿠키: 쿠키는 서버에서 보내고 클라이언트 측에 저장되는 작은 데이터 조각입니다. 세션 관리와 사용자 추적 등 다양한 목적으로 사용됩니다.
- 세션: HTTP는 상태를 유지하지 않는데, 이는 각 요청-응답 주기가 독립적이라는 의미입니다. 세션은 종종 쿠키와 서버 측 기술을 사용하여 여러 요청 간에 사용자 상태를 유지하는 데 활용됩니다.
- 캐싱: 캐싱은 클라이언트가 리소스의 사본을 로컬에 저장하여 서버로의 반복된 요청을 줄이는 것을 가능하게 합니다. 이로써 성능이 향상되고 대역폭 사용량이 감소합니다.
- HTTPS: HTTPS(HTTP Secure)는 데이터의 기밀성과 무결성을 보장하기 위해 암호화(SSL/TLS)를 사용하는 안전한 HTTP의 버전입니다.
- 사용자 에이전트: 웹 브라우저나 모바일 앱과 같은 사용자 에이전트는 사용자 대신 HTTP 요청을 보냅니다. "User-Agent" 헤더를 사용하여 서버에 자신을 식별합니다.
처음 화면은 개념,목표, 작동 원리를 알려준다 Try It는 사용자가 이름을 입력을해서 보내면, 서버에서 입력값을 반대로 응답을 해주는 간단한 실습이다
12345를 입력을 하고 Go!를 누르면, 서버에서 전달한 값을 반대로 응답을 해주는걸 알수있다퀴즈의 문제는 아래 보이는 실습에서는 어떤 HTTP Request method를 사용하는지에 대한 질문과 magic number가 몇번인지를 묻는 질문으로 이루어져 있다
.
프록시 툴을 통해 확인한 Request 패킷의 Start line을 보면 POST 메서드를 사용하여 통신했음을 알 수 있다.
추가로 내가 입력한 값은 1과 1 2개뿐인데 Request body에 보면 파라미터가 3개이다.
아마 html 내 숨겨져있는 데이터가 있는것 같다. 눈에 보이지는 않지만 Request 패킷을 통해 magic_num이라는 값이 30라는 것을 알 수 있다.풀이 끝 '보안' 카테고리의 다른 글
SQL Injection (0) 2023.08.30 HTTP Proxies (0) 2023.08.29 WebGoat (0) 2023.08.28 XSS(Stored) (0) 2023.08.28 admin 비밀번호 취득 SQL Map (0) 2023.08.28