Web Hacking Study/수업 정리

[1주차] 웹 서버 구조, HTTP 프로토콜, 웹 프록시

silver surfer 2022. 3. 25.

** 웹 서버 구조

Web Server - WAS(Web Application Server) - DB

웹 서버의 3-Tier다.

 

≫ Web Server는 정적인 파일을 Client에게 제공하는 서버이다. 동적인 파일을 요청받을 경우 그 요청을 WAS에게 패스한다. 대표적인 웹 서버에는 Apache, Nginx가 있다.

≫ WAS는 동적인 파일을 Clinet에게 제공하는 서버이다. WAS는 동적으로 page를 만들기 위해 DB에서 데이터를 골라서 가져온다. WAS는 DB로부터 가져온 데이터를 포함해 html 페이지를 만들고 그 html을 Web Server에게 전해주면 그 때 웹 서버가 Client에게 응답을 제공한다. php, jsp, asp, python 와 같은 웹 프로그래밍 언어를 사용한다.

≫ DB는 데이터를 저장하는 공간이다. WAS는 sql 언어를 이용해 DB와 소통한다. mysql, oracle, mssql 와 같은 DB가 있다.

 

** 프론트엔드(Client Side Script) vs 백엔드(Server Side Script)

Client는 Web Server에 요청을 하고 Web Server는 Client에게 응답을 한다. html 파일, 데이터, 사진 등등이 응답이 된다.

html 파일을 받은 Client 컴퓨터의 웹 브라우저가 html 코드를 실행해주는데, 이 부분을 만드는 게 프론트엔드다. html, css, javascript 등을 사용하여 웹 사이트의 인터페이스를 개발한다.

 

Client의 요청을 처리하는 부분(정확히는 WAS), Web Application을 개발하는 분야를 백엔드라고 한다.

 

Client Side Script : html, JavaScript.. (서버에서 실행되지 않는다)

Server Side Script : php (서버에서 실행된다)

 

Cross site scripting 공격 기법을 사용할 때 어떤 게 Client Side Script인지 Server Side Script인지 구분하는 것이 중요하다

 

** HTTP protocol

인터넷 상에서 데이터를 주고받기 위한 Server/Client 모델을 따르는 프로토콜이다. 주로 HTML 문서를 주고받는데 쓰인다.

http, https, ftp등을 프로토콜이라고 한다. 앞에는 프로토콜이 오고

://서버주소:포트번호/경로

와 같은 형식이다.

://뒤에는 서버 주소가 온다. 도메인 이름이나 ip 주소가 나온다. : 이후 서버 포트를 볼 수 있는데 :이 없으면 기본 포트를 사용한다는 뜻이다. http 기본 포트는 80, https의 기본 포트는 443이다. / 이후로는 웹 서버의 웹 경로이다.

 

HTTP 메소드에서 GET, POST 이 2가지 메소드가 파일을 요청하는 메소드이다.

Request에서는 메소드와 함께 header가 같이 오는데, Web Server에게 요청을 할 때 부가적으로 알려주는 정보를 포함하고 있다.

Response에서는 응답헤더 - (공백) - Server에서 응답받은 html이 있다.

응답을 할 때에는 웹 서버가 상태 코드를 함께 전달해준다.

(예시) HTTP/1.1 200 OK

에서 200 OK가 상태 코드이다. 상태코드는 크게 200,300,400,500이 있다.

200 -> 응답 성공을 의미한다.

300 -> 리다이렉션 코드로, Client가 요청한 파일이 다른 곳에 있다는 의미로 loaction 코드로 가야할 위치를 명시하고 있다.

400 -> 클라이언트 측 에러 (ex. 404 Not Found)로, Client가 Server에 없는 파일을 요청하고 있다

500 -> 서버 측 에러로, WAS에서 문제가 생겨 이를 Web Server가 에러가 났음을 대신 알려주는 것이다. 웹 개발 하면서 많이 보게 될 에러일 것..

 

** Burp Suite (Web Proxy Tool)

웹 프록시는 중간자, 전달자 역할을 한다. 웹 해킹을 할 때 반드시 써야하는 프로그램이다. 프록시는 http 데이터를 대신 전달해준다. Client의 컴퓨터는 Web Server와 바로 통신하는 것이 아니고 Chrome이나 Edge와 같은 웹 브라우저가 Web proxy를 끼고 Web server와 대화한다. Client와 Server가 어떤 대화를 하는지 Burp Suite(Web Proxy Tool)로 분석이 가능하다.

 

(burp suite에서 intercept on을 하면 Client의 요청을 중간에 막을 수 있는데 이 때, 데이터, 웹 요청, 세션값, 응답 등등을 바꿀 수도 있다. 이런 식으로 웹 취약점을 찾는데 burp suite을 쓴다.)

 

 

댓글