본문 바로가기
웹해킹 스터디

Introduction of Webhacking & Background:Web

by yejin_l 2024. 1. 24.
728x90

Introduction of Webhacking

[1. 웹이란 무엇인가?]

웹 : 월드 와이드 웹(World Wide Web, WWW, W3) -> 줄여서 웹(Web)

웹 서버(Web Server) : 서비스를 제공하는 대상

클라이언트(Web Client) : 서비스를 받는 사용자

 

[2. 웹 기초 지식]

Web Browser
:  HTTP를 통해 인터넷 상에서 통신을 하며 서버로부터 전달받은 다양한 웹 리소스들을 가공해 사용자가 웹과 HTTP의 동작 원리를 알지 못해도 웹을 사용할 수 있도록 도와주는 소프트웨어
- 대중적으로 많이 쓰이는 웹 브라우저는 Chrome, Edge, Safari, Firefox 등

Web Resource : 웹 상에 존재하는 모든 콘텐츠입니다. (HTML, CSS, JS, PDF, PNG 등)

URI (URL) :  Uniform Resource Identifier의 약자로 리소스를 식별하기 위한 식별자
- URI는 Scheme, Authority (Userinfo, Host, Port), Path, Query, Fragment의 구성 요소를 가짐.

HTTP (HyperText Transfer Protocol) : 인터넷 서비스에서는 서비스 대상 간 통신 규약(Protocol)을 지정하여 통신함. -> HTTP는 웹을 이용하기 위한 통신 규약
-  TCP 혹은 TLS(암호화된 TCP)를 사용해 통신하고 기본 포트로 80(HTTP), 443(HTTPS) 포트를 사용.

HTTPS (HyperText Transfer Protocol Secure) : 기존 HTTP 데이터를 암호화하여 통신함.
- HTTPS는 HTTP의 문제점인 데이터의 평문 전송을 보완하기 위해 등장함.
-  HTTP와 HTTPS의 핵심 구조 및 동작 원리는 동일하기 때문에 HTTP로 통칭하기도 함.

Cookie : 웹 브라우저에 저장하는 데이터
- 데이터를 key=value; 쌍으로 쿠키에 저장하고 ;뒤에 쿠키의 만료시간, 접근할 수 있는 도메인 등 추가 옵션을 설정할 수 있음.
- 추후 HTTP 요청을 보낼 때 웹 브라우저가 자동으로 헤더에 쿠키를 추가해 전송함.

Session : 서버에 저장하는 데이터
- 세션을 활용하면 데이터를 서버에 저장하고 해당 데이터에 접근할 수 있는 유추할 수 없는 랜덤한 문자열 키를 만들어 응답하며, 이를 보통 Session ID라고 부름.
- 쿠키는 데이터 자체를 사용자가 저장하며, 세션은 서버가 저장한다는 핵심적인 차이가 있음.

Domain Name : 인터넷(웹) 네트워크상에서 컴퓨터를 식별하는 이름
Server : 서버는 인터넷상에서 사용자에게 서비스를 제공하는 컴퓨터. 그 중 웹 서버는 사용자(웹브라우저)와 HTTP를 이용하여 통신하는 서버
Application : 서버에서 설정한 특정 기능들을 수행하는 소프트웨어
DataBase (DB) : 데이터를 저장하기 위해 사용하는 데이터 저장소

 

[3. 웹 해킹 개요]

: 웹 해킹은 해킹의 의미처럼 본래의 의도와는 다른 동작을 일으키거나 주어진 권한 이상으로 정보를 열람, 복제, 변경 가능한 행위가 웹에서 발생하는 것을 말함.

- 사용자의 입력을 받고 웹 사이트와 통신을 하는 Client-side, 사용자의 요청을 처리하는 Server-side로 크게 두가지로 나누어 볼 수 있음.

Client-side Attack
: 서비스 사용자에 대한 공격을 의미
- 웹을 이용하는 사용자는 웹 브라우저를 통해 서비스를 제공받는데 웹 서버가 제공해주는 데이터가 공격자에 의해 변조되었을 경우 웹 브라우저에서 렌더되는 과정에서 취약점이 발생하는 경우가 대표적.

Server-side Attack
: 서비스를 운용하는 서버에 대한 공격을 의미
- 다양한 공격 형태가 존재하며, 공격자가 공격에 성공하게 되면 서버의 어플리케이션 코드 또는 다른 사용자의 정보 유출, 서버 탈취 등으로 이어질 수 있습니다. 운영되는 서비스의 구조와 특징에 따라 위협의 형태가 달라짐.


Background:Web

[1. 웹]

웹 

: 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스를 웹이라 함.

- 정보를 제공하는 주체는 웹 서버 (Web Server), 정보를 받는 이용자는 웹 클라이언트 (Web Client)

 

웹의 발전과 웹 보안의 중요성

- 과거에는 단순히 정보를 보여주는 것에서 그쳤다면, 현재는 정보를 검색하고 직접 제품을 구매할 수 있도록 변화하였음.

- 웹을 통한 정보의 교환 과정에서 이러한 민감한 정보들이 유출되거나 악용되지 않도록 보호하는 웹 보안의 중요성이 대두하고 있음.

 

웹 서비스, 프론트엔드와 백엔드

- 이용자의 요청을 받는 부분을 프론트엔드 (Front-end), 요청을 처리하는 부분을 백엔드 (Back-end)라고 부름.

 

[2. 웹 리소스]

: 웹에 갖춰진 정보 자산을 의미

- 모든 웹 리소스는 고유의 Uniform Resource Identifier (URI)를 가지며, 이를 이용하여 식별됨.

 

웹의 프론트엔드를 구성하는 대표적인 웹 리소스들

  • Hyper Text Markup Language (HTML)
    • 웹 문서의 뼈와 살을 담당. 태그와 속성을 통한 구조화된 문서 작성을 지원함.
  • Cascading Style Sheets (CSS)
    • 웹 문서의 생김새를 지정함. 웹 리소스들의 시각화 방법을 기재한 스타일 시트. 글자의 색깔이나 모양, 배경 색상, 이미지의 크기나 위치 등을 CSS로 지정할 수 있음. 브라우저는 이를 참고하여 웹 문서를 시각화함.
  • JavaScript (JS)
    • 웹 문서의 동작을 정의. 이용자가 버튼을 클릭했을 때, 어떻게 반응할지, 이용자가 데이터를 입력하면 어디로 전송할지 등을 JS로 구현할 수 있음. JS는 이용자의 브라우저에서 실행되는데, 클라이언트가 실행하는 코드라고 하여 Client-Side Script라고도 부름.
  • 그 외
    • 문서, 이미지, 동영상, 폰트 등

[3. 웹 클라이언트와 서버의 통신]

웹 서비스의 통신 과정을 간락화한다면,

  1. (클라이언트) 이용자가 브라우저를 이용하여 웹 서버에 접속합니다.
  2. (클라이언트) 브라우저는 이용자의 요청을 해석하여 HTTP 형식으로 웹 서버에 리소스를 요청합니다.
  3. (서버) HTTP로 전달된 이용자의 요청을 해석합니다.
  4. (서버) 해석한 이용자의 요청에 따라 적절한 동작을 합니다. 리소스를 요청하는 것이라면, 이를 탐색합니다. 계좌 송금, 입금과 같은 복잡한 동작을 요구할 경우 내부적으로 필요한 연산을 처리합니다.
  5. (서버) 이용자에게 전달할 리소스를 HTTP 형식으로 이용자에게 전달합니다.
  6. (클라이언트) 브라우저는 서버에게 응답받은 HTML, CSS, JS 등의 웹 리소스를 시각화하여 이용자에게 보여줍니다.
728x90

'웹해킹 스터디' 카테고리의 다른 글

ServerSide: File Vulnerability  (1) 2024.02.28
ServerSide: Command Injection  (0) 2024.02.28
ClientSide: CSRF(Cross Site Request Forgery)  (0) 2024.02.15
ClientSide: XSS  (0) 2024.02.15
Background: Cookie & Session  (0) 2024.02.02