일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Leviathan
- SQLi
- BANDiT
- privilege escalation
- THM
- 파일 업로드 취약점
- overthewire
- tryhackme
- FTZ
- php 로그인 페이지 만들기
- Server Side Request Forgery
- War Game
- php file upload
- over the wire
- php To Do List
- access control
- sql injection
- Authentication
- OS Command Injection
- active recon
- php login page
- Recon
- Reconnaissance
- php 파일 업로드하기
- php
- Cryptography
- ssrf
- file upload
- Cookie
- active reconnaissance
- Today
- Total
R's Hacking Daily Log
HTTP in detail (1) 본문
What is HTTP(S)?
HTTP :: HyperText Transfer Protocol
HTTP는 webpage의 데이터를 보내기 위해 웹 서버와 통신하는 데에 사용되는 규칙들의 집합이다.
* web page의 data라 함은 HTML, 사진, 비디오와 같은 예시를 생각하면 된다.
HTTPS :: HyperText Transfer Protocol Secure
HTTPS는 Secure + HTTP라고 생각하면 된다.
HTTPS data는 사용자가 보내고 받는 데이터를 다른 사람이 볼 수 없게 암호화하는 것뿐만 아니라
사칭이 아닌 올바른 웹 서버와 통신하고 있다는 확신을 준다.
Requests and Responses
사용자가 웹 사이트에 접속할 때 Browser는 html, image, video와 같은 자산을 얻기 위해 웹 서버에게 request(요청)를 보내고 응답을 받아야 한다.
누군가에게 요청을 할 때 그 내용이 무엇이냐에 따라 질문 내용이 달라지듯이
Browser는 resource에 접근하는 방법과 위치를 자세히 알려줘야 한다.
여기서 사용되는 게 바로 URL이다.
URL [ Uniform Resource Locator ]
url은 인터넷상에서 얻고자 하는 자원에 접근하기 위한 지시와도 같다. (여기로 가라!)
url은 이미 지정된 영역에서 값이 달라지며 만들어지는 것이기 때문에 한 번쯤 각각의 자리가
나타내는 값이 무엇인지 알아보는 것이 좋다.
Scheme ::
리소스에 접근하기 위해 어떤 프로토콜이 사용되었는지. (FTP, HTTP, HTTPS..)
User ::
로그인을 위해 인증 절차를 요구하는 어떤 서비스에 대한 사용자명 & 비밀번호
Host ::
사용자가 접속하고자 하는 서버의 도메인 이름 or IP 주소
Port ::
연결할 포트 번호로 HTTP = 80 & HTTPS = 443 port를 사용하지만
1~65535(2^32) 사이의 포트 번호를 사용할 수도 있다.
Path ::
얻고자 하는 데이터의 위치나 파일 이름
Query String ::
추가적으로 보낼 수 있는 정보로 찾고자 하는 것에 특정 조건을 더할 수 있다고 보면 된다. (ex. sql - select)
Fragment ::
요청된 실제 페이지 내 위치에 대한 참조로 내용이 많은 웹 페이지에 사용된다.
페이지 중 특정 부분으로 바로 이동하기 때문에 페이지에 접속하는 동시에 즉시 볼 수 있다.
Example Request & Response
browser(client)가 어떠한 데이터를 얻기 위해 server에게 요청을 보내는 것을 Request라고 부른다.
HTTP(S)를 통해 client-server 통신이 이루어지기 때문에 Request & Response를 보내는 데에도 정해진 형식이 존재한다.
GET / HTTP/1.1
Host : tryhackme.com
User-Agent : Mozilla/5.0 Firefox/87.0
Referer: https://tryhackme.com/
Request의 경우에는 Method, resource, version 정보가 첫 번째 줄에 표기되고
나머지 줄에는 Host, user-Agetn, Referer.. 의 내용이 포함된다.
HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98
<html>
<head>
<title>TryHackMe</title>
</head>
<body>
Welcome To TryHackMe.com
</body>
</html>
response의 경우에는 version, status code와 문구가 첫 번째 줄에 표기되고
HTML tag로 포함된 부분은 response의 body부분에 들어있는 내용으로 browser는 이 내용을 페이지로 만들어 띄우게 되는 것.
**요청에서는 Method, 응답에서는 상태 코드가 들어간다는 것이 각각의 차이점이자 특징이라 할 수 있다.
'TryHackMe > Walkthroughs' 카테고리의 다른 글
HTTP in detail (3) (0) | 2023.04.07 |
---|---|
HTTP in detail (2) (0) | 2023.04.04 |
Traffic Analysis Essentials (3) (0) | 2023.04.02 |
Traffic Analysis Essentials (2) (0) | 2023.04.02 |
Traffic Analysis Essentials (1) (0) | 2023.04.01 |