일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cookie 탈취
- JWT
- 로그인
- 과제
- lord of sqli
- JS
- 게시판 만들기
- 모의해킹
- php
- sql injection
- 세션
- blind sql injection
- 로그인페이지
- CTF
- css
- csrf
- file upload
- cors
- 웹개발
- Cross Site Request Forgery
- Reflected Xss
- XSS
- Python
- lord of sql injection
- sql injection point
- MySQL
- union sql injection
- Los
- 쿠키
- Error based sql injection
- Today
- Total
Almon Dev
모의해킹 공부 정리 1일차 ( 웹서버 ) 본문
웹 서버는 무엇일까?
웹 서버 (Web Server)의 정의
웹 서버는 HTTP 프로토콜을 이용해 파일을 전송해 주는 간단한 서버입니다.
웹 서버의 하드웨어에는 웹사이트를 이루는 HTML, CSS, JavaScript가 저장되어 있고,
클라이언트의 요청이 있을 때마다 해당하는 파일을 전송합니다.
클라이언트 (Client)의 요청
클라이언트는 웹 브라우저의 URL을 이용해서 웹 서버에 파일을 요청합니다.
URL의 구조는 이렇게 이루어져 있습니다.
https://naver.com:443/index.html
Protocol://Domain:Port/Path
그런데 브라우저의 주소창에는 그냥 192.168.0.8 이 적혀있어도 접속이 됩니다.
마찬가지로 naver.com을 그냥 입력해도 접속이 되는 모습을 볼 수 있는데,
이것은 일반적으로 사용되는 http, https라는 프로토콜과 80, 443 포트는 생략이 가능하기 때문입니다.
파일의 Path 역시 마찬가지로 생략이 된다면 index라는 이름을 가진 파일을 가져오도록 약속되어 있습니다.
DNS (Domain Name Service) 란?
제가 만든 아파치 서버는 192.168.0.8로 접속했고, 네이버는 naver.com으로 접속했습니다.
DNS는 IP를 외우기 쉽게 문자열로 변환해 주는 서비스입니다.
세상에는 너무 많은 웹사이트가 있고, 그 모든 웹사이트의 IP주소를 외우고 다니는 것은 불가능합니다.
그래서 만들어둔 일종의 주소록이 바로 도메인입니다.
우리가 naver.com을 브라우저에 입력하는 순간
1. 호스트 PC(내 컴퓨터)의 hosts파일에 www.naver.com 이 있는지 확인합니다.
hosts파일은 DNS의 캐시 같은 것으로 우리 컴퓨터에 직접 저장되어 있어 속도가 빠릅니다.
2. hosts 파일에 없다면 Local DNS(주로 통신사 DNS)에 www.naver.com 요청을 보냅니다.
SKT, LG, KT와 같은 통신사의 인터넷을 사용하고 있다면 통신사의 DNS가 등록되어 있습니다.
3. Local DNS에 없다면 Root DNS 서버에게 www.naver.com 의 응답요청을 보냅니다.
Root DNS는 전 세계에 1300개 정도가 있고, TLD DNS 서버 IP들을 저장하고 있습니다.
4. Root DNS에서 응답한 .com의 DNS 서버에 다시 www.naver.com 의 요청을 보냅니다.
Root DNS는 www.naver.com의 IP주소를 저장하고 있지 않기에 TLD DNS 서버인 .com 서버의 IP주소를 응답합니다.
5. .com DNS에 다시 www.naver.com 의 주소를 요청합니다.
.com 서버에도 여전히 www.naver.com의 주소가 없으면 naver.com 서버의 IP를 응답합니다.
6. 이제 naver.com에 www.naver.com 을 요청하고 IP값을 받습니다.
Local DNS는 빠른 응답을 위해 받아온 IP를 캐시에 저장합니다.
7. 응답받은 IP주소를 Local DNS가 호스트 PC에 전달해줍니다.
마찬가지로 호스트 PC 역시 빠른 응답을 위해 hosts파일에 도메인 주소와 IP를 저장해 둡니다.
정적 웹사이트와 동적 웹사이트
웹사이트는 정적 사이트와 동적 웹사이트가 있다.
정적인 웹사이트는 말 그대로 이미 만들어진 HTML, CSS, JavaScript를 그대로 전송할 뿐인 웹사트이다.
index.html
<html>
<body>
<h1>정적인 웹사이트</h1>
</body>
</html>
반대로 동적인 웹사이트는 요청이 왔을 때 그때그때 만들어서 다른 응답을 보낼 수 있는 사이트를 의미한다.
index.php
<html>
<body>
<?php
"현재 시간은 ".date("H:i:s")." 입니다."
?>
</body>
</html>
html 코드는 누가 언제 접속하든 위의 모습 그대로이지만
php 코드는 접속하는 시간에 따라 결과가 달라질 것이다.
'모의해킹 > 웹 개발' 카테고리의 다른 글
모의해킹 공부 정리 3일차 (회원가입 페이지) (0) | 2024.10.19 |
---|---|
모의해킹 공부 정리 2일차 (과제) (2) | 2024.10.18 |
모의해킹 공부 정리 2일차 (과제) (5) | 2024.10.18 |
모의해킹 공부 정리 1일차(과제) (2) | 2024.10.17 |
모의해킹 공부 1일차 정리 (APM 설치) (0) | 2024.10.17 |