본문으로 바로가기

[D+1] 웹 구조의 원리 (1)

category 해킹&보안/웹 해킹&보안 2017. 4. 27. 19:23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. 웹 구조의 원리


1) 정의


▣ Web Browser

- Request message를 작성하여 웹 서버에 전달.

- 웹 서버로부터 받은 Response message를 해석하여 사용자에게 보여줌.


▣ WWW

- 인터넷에서 이루어지는 서비스 중 하나.

- 정보 공유의 목적으로 개발.

- HTTP 사용

- Server / Client 기반

- 초기에서 클라이언트에서 요청한 문서를 서버에 보내기만 했음.

- DB 사용.


▣ HTTP

- 웹 서버와 웹 브라우저간의 문서교환을 하기 위한 통신규약.

- Hyper text를 전달하기 위한 프로토콜.

☞ Hyper text : 링크 정보를 비순차적 검색. --> 게시판 볼때처럼 원하는 정보만 딱딱 봄.

☞ 언어 : html

- TCP 80 포트를 사용 (절대적이진 않음)

- Text 기반 (binary 아님!!) --> text 자체를 읽어들이기때문에 컴파일 과정이 필요없음.

☞ text -> 컴파일 -> binary

- TCP를 사용하나 연결 지향적 성격은 버림.

☞ 클라이언트와 서버가 계속해서 연결을 유지하는게 아닌 서버에서 response를 주면 연결을 끊음.

☞ 쿠키를 사용해서 세션유지함.


▣ Web application

- 브라우저 등을 통해 접근할 수 있는 응용 프로그램.

- HTTP에서 동작되는 프로그램.

- ASP, JSP, PHP, ASPX와 같은 확장자를 가진 파일 단위.


2) URL 메타문자


▣ http://www.i2sec.co.kr/login.asp?id=guest&pw=1234


- ? : parameter를 넘겨줄때 사용.

☞ login.asp라는 웹 어플리케이션에 (id=guest&pw=1234)를 파라미터로 넘겨줌.

- & : parameter 구분자

- = : parameter 전달자 (대입이라고 보면 됨)

- % : Hex 값으로 표현.

☞ %34 == 0x34

- + : 공백문자 (띄어쓰기)

☞ URL에서는 띄어쓰기가 존재하지 않음.

☞ my text.txt를 표현하기 위해 my+text.txt라 씀. 또는 my%30text.txt로 쓰는 경우도 있음.


3) Web architecture


- Connector : DB에 접속하기 위한 정보를 담고 있음. (DB 주소, ID, PW 등)


[클라이언트]

1. 로컬 hosts 파일 참조

☞ C:\Windows\System32\drivers\etc\hosts

2. hosts 파일에 도메인 존재시 해당 IP 정보를 이용.

3. 존재하지 않으면 DNS 서버에 DNS 질의를 통해 IP 정보를 얻어냄.

4. 수집된 IP 정보 이용해 해당 서버에 3-way handshaking 거침.

5. 웹 브라우저에서 생성한 request 메시지를 웹 서버에 전달.


[웹 서버]

1. 전달받은 메시지의 양식 문제 여부를 확인함.

2. 오류가 있으면 상태 코드를 반환 후 연결을 끊음.

3. 오류가 없으면 APP에서 프로그래밍 로직을 거침.

4. 서버에서 클라이언트로 보낼 메시지를 작성해서 클라이언트에게 전달.


[클라이언트]

1. 받은 메시지를 해독해서 브라우저에 뿌림.




▣ 많이 쓰는 조합 (90프로 이상)


4) HTTP Message (Client)

- Get : method(요청방식)

- /view.html : 페이지 이름

- HTTP/1.0 : HTTP 버전

- User-agent : 사용자 정보 (컴퓨터 정보 등)

- Accept : 내가 읽을 수 있는 언어란다~ (*/* : everything!)

- Referer : 경유지 (내가 이전에 여기에서 왔단다~~)

- Host :  뼈대 주소


- Referer로 해킹하는 경우도 많음.

- 대부분 Get 줄과 Host 줄만 작성하면 됨.





i2sec 대구지점 23기 수료생.

'해킹&보안 > 웹 해킹&보안' 카테고리의 다른 글

[D+5] Encoding  (0) 2017.05.08
아스키코드  (0) 2017.05.07
[D+4] 웹 언어  (0) 2017.05.01
[D+3] 웹 프록시  (0) 2017.05.01
[D+2] 웹 구조의 원리 (2)  (0) 2017.05.01