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 |