웹서버(WEB Server)

파일을 전달하는 역할 (정적 리소스)

 

브라우저를 통해 파일을 요청 할 수 있다. URL: [프로토콜]://[도메인 or IP]:[포트]/[파일명]

[Web Root 경로]: 웹이 실행된 경로 웹 루트 경로 이상의 데이터를 받을 수 없다.

만약 /경로에 웹서버를 실행하게 된다면 많은 파일을 접근 할 수 있다.

 

프로토콜 기본 포트

http: 80 https:443

WAS: Web Application Server

동적페이지 및 api를 제공

method: GET / POST Get: 데이터의 전달을 쿼리스트링(URL)에 포함됨

쿼리스트링: path?key1=value1&key2=value2

 

POST: 데이터의 전달을 Request Body에 포함되어 전달된다.

 

Front-End: 클라이언트 측 (브라우저) javascript

Back-End: 서버 코드(WAS) PHP, ASP, SAP


Internet Protocol adress(IP address)

데이터를 송,수신을 위한 네트워크 주소로 네트워크에 연결된 장치는 이 특수한 번호를 가지고 있어야한다.

그러나 숫자로 이루어진 IP addess는 사람이 외우기 어렵기 때문에 전화번호부 같은 역할을 하는 것이 필요하다.

이를 DNS(Domain Name System)이 필요하며 naver.comxxx.xxx.xxx.xxx 와 같이 문자열을 ip 주소로 변환하는 시스템 서비스 이다.

 

IP는 Class가 존재하며 해당 클래스 별 host(사용할 수 있는 Sub IP address) IP address가 달라진다.

예를 들어 A Class를 가진 IP address 192.xxx.xxx.xxx IP address는 하위 24비트의 IP주소를 사용 할 수 있다.

IP address는 약 43억개의 한정된 주소를 사용할 수 있다 그러나 라우터, PC, 등 많은 장비로 인해 IP Address가 부족하게 되었고 이를 해결하기 위해 IPv6, Private Network(이하 사설망)등이 사용되고 있다.

Private Network(사설망)

사설망은 IPv4 공인망을 사용하는 것이 아닌 내부망을 사용하는것으로 별도의 Network 설정을 하지 않는다면 외부Network 접근은 불가능하며 같이 연결된 내부 Network간의 연결만 가능하다.

 

집의 PC에서 WEB Server를 기동해도 wifi를 사용하지 않은 휴대폰으로 접속이 불가능 한 것이 이와 같다.

PC가 집 공유기와 연결되어있고 휴대폰이 해당 공유기의 WIFI신호를 사용하고 있다면 두 기기는 사설망을 사용하고 있는 것으로 http:[IP]/[Path]:[Port]를 사용하여 접근 할 수 있다.

 

그러나 사설망의 IP를 그대로 사용하여 외부로 나가게 된다면 중복된 IP 등으로 인해 응답을 받을 수 없다. 그렇기 때문에 내부 IP를 공인 IP로 변환하는 작업이 필요하며 이를 NAT라 한다.

NAT(Network Address Translation)

IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. -위키백과-

 

즉 내 PC에서 출발지 주소를 사설망 IP 192.100.100.1로 출발지 IP를 설정해서 전달하고 중간의 NAT가 공인 IP로 200.200.200.105로 변환하여 인터넷으로 전달한다.

[내 PC] =================⇒ [NAT] ==================⇒ [인터넷]

[192.100.100.100.1]<=======⇒[변환]<=============⇒[200.200.200.105]

[내 PC] <================== [NAT] <================= [인터넷]

그러나 내부의 사용 장비가 2대 이상이이라면 응답을 받을 때 어느 장비로 돌아가는 지 알 수 없다. 이러한 상활을 방지하기 위해 PAT를 사용한다.

PAT(Port Address Translation)

[PC 1] =======================⇒ [NAT] ==================⇒ [인터넷]
[192.100.100.100.1:9999]<=========⇒[변환]<=================⇒[200.200.200.105:10000]
[PC 1] <============== ==========[NAT] <================== [인터넷]


[PC 2] ===============⇒ [NAT] ==================⇒ [인터넷]
[192.100.100.100.1:8888]<=========⇒[변환]<=============⇒[200.200.200.105:20000]
[PC 2] <============== [NAT] <================= [인터넷]

 

PAT는 이름과 같이 Port를 변경하는 역할을 하며 응답을 받을 때 목적지 포트가 10000이라면 PC1로 목적지 포트가 20000이라면 PC2로 응답을 전달한다.

'웹 해킹 코스 > 내용 정리' 카테고리의 다른 글

5주차 SQL Ijection  (2) 2023.11.26
4주차 (burp suitte)  (0) 2023.11.15
3주차 (쿠키, 세션)  (0) 2023.11.08
2주차 (DB)  (0) 2023.11.01
0주차 (리눅스 기초 명령어)  (2) 2023.10.26

+ Recent posts