레벨 1-2: 소개, 배경 – 웹

https://dreamhack.io/

Dreamhack의 웹 해킹 강의는 학생이 Flask, NodeJS 및 Spring 프레임워크 중 하나로 작성된 웹 소스를 읽고 이해할 수 있다고 가정합니다.

(아니요!
)


  • 회로망: 인터넷을 기반으로 구현되는 서비스에 HTTP를 사용하여 정보를 교환하는 서비스입니다.

  • 웹 리소스: 인터넷을 갖춘 정보주(자원). (전) http://규약 dreamhack.io/index.html도메인 dreamhack.io에 있는 /index.html 경로의 리소스를 가져오는 것을 의미합니다.

HTML 하이퍼텍스트 마크업 언어
CSS 계단식 스타일 시트
JS 자바스크립트 (고객 입장에서)
Dreamhack 제작자를 용서하십시오!

이미지를 클릭하시면 원본 페이지를 보실 수 있습니다.

배경: HTTP / HTTPS

  • 인코딩 표준: (전) ASCII: 7비트 데이터에 대한 코딩 표준; 유니코드: 최대 32비트의 모든 언어에 대한 표준입니다.

  • 클라이언트 동작: 요청, 서버 동작: 응답
  • 통신 프로토콜: 표준화된 상호 작용(요청 및 응답)에 적용되는 약속성. 프로토콜에는 데이터의 명확한 해석을 위한 구문이 포함되어 있습니다.


  • HTTP(하이퍼텍스트 전송 프로토콜): 웹 서버는 HTTP 서버입니다 HTTP *서비스 포트(일반적으로 TCP/80 또는 TCP/8080)클라이언트가 서비스 포트에 HTTP 요청을 보내면 적절한 응답을 반환합니다.

TCP/IP 네트워크 통신의 기초
HTTP 웹 애플리케이션에서 사용
FTP 파일을 교환할 때 사용

*네트워크 포트: 서버와 클라이언트가 정보를 교환하는 “포트”. 추상적인 장소입니다.

*서비스 포트: 네트워크 포트 중 특정 서비스가 차지하는 포트. *전송 계층 프로토콜이 다른 경우 데이터가 교환되지 않습니다.

*전송 계층 프로토콜: 포트에서 데이터가 교환되는 방식이 뒤따르는 프로토콜입니다.

(예) TCP, UDP

*Windows, Linux 및 Mac과 같은 운영 체제 포트 수는 60000개 이상이며, 0-1023화상 포트 알려진 포트 또는 특권 포트라고 불리는. 이 포트에서 서비스를 실행하려면 관리자 권한이 필요합니다.

(예) 포트 22 – SSH포트 80 – HTTP포트 443 – HTTPS

  • HTTP 메시지
HTTP 헤더 출발 선
HTTP 요청의 경우 *메서드, *요청 URI, HTTP 버전
HTTP 응답에서 HTTP 버전, *상태 코드, *이유 구문
헤더 필드그리고 HTTP 메시지 또는 본문의 속성
– 빈 줄(*CRLF) –
HTTP 본문 전송하려는 데이터

*방법:8가지 방법에 대한 자세한 설명 여기 (1) (전) 받다 – 리소스를 획득하는 방법, 우편 – 리소스에 데이터를 보내는 방법입니다.

*요청 URI: 요청된 Uniform Resource Identifier. (예) /index.html

*상태 코드: 5개 클래스로 그룹화된 약 40개의 상태 코드에 대한 자세한 설명 제공 여기 (2) (전) ······
1XX – 요청이 성공적으로 수신되었으며 처리가 진행 중입니다.


2XX – 요청이 성공적으로 처리되었습니다.


3XX – 클라이언트는 요청을 처리하기 위해 추가 조치를 취해야 합니다.


4XX – 클라이언트 오류로 인해 처리하지 못했습니다.


5XX – 서버 오류로 인해 처리하지 못했습니다.

*처리 이유: 상태 코드가 발생한 이유입니다.

*CRLF: 캐리지리턴(CR)과 라인피드(LF)의 합성어로 타자를 치면서 이동한 캐리지를 되돌려(CR) 하단줄로 이동(LF)하는 동작에서 유래한다.

“새 줄”로 보는 것이 편리합니다.

기본적으로 Linux/Unix에서는 LF(\n)이고 Windows에서는 CRLF(\r\n)입니다.


  • HTTPS(Secure Socket Layer를 통한 HTTP): *HTTP의 보안 관련 문제를 보완하기 위해 TLS 프로토콜이 도입되었습니다.

*TLS(전송 계층 보안): 공개 키 암호화 표준(PKCS) 및 대칭 키 암호화를 기반으로 하는 보안 전송 계층입니다.

배경: 웹 브라우저

  • 웹 브라우저: 클라이언트와 서버 간의 HTTP 통신을 중재합니다.

*URL 분석 (주소 해석)

*DNS 요청(주소 검색)

통신 프로토콜을 통한 요청

통신 프로토콜 응답 수신됨

리소스 다운로드

웹 렌더링

*URL(Uniform Resource Locator): 웹에서 리소스의 위치를 ​​나타내는 문자열입니다.

*DNS(도메인 이름 서비스): 도메인 이름과 IP 주소 매핑.


http://계획하다 example.com:80주인 /떨어져 있는떨어져 있는 ?검색=1문의 #파편파편

*계획하려면: 어떤 통신 프로토콜을 사용할 것인가?

*호스트:포트: 어떤 도메인/IP 주소입니까? 어떤 포트를 사용하고 있습니까?

*떨어져 있는: 어떤 리소스에 연결해야 합니까?

*문의: 웹 브라우저가 서버에 전달하는 매개변수입니다.

*파편: 하위 리소스를 식별합니다.

(예) 목차


  • 웹 렌더링: 서버에서 받은 통신 로그 분석 및 리소스 시각화.
  • 웹 렌더링 엔진: (예)사파리- 웹킷(웹킷), 크롬 – 플래시(깜박임), 파이어폭스 – 개코(도마뱀붙이)

도구: 브라우저 개발 도구

개발자 도구는 대략적인 모양, 사용 및 친숙함이 필요합니다…

관련 설명: https://learn.dreamhack.io/198