1. 웹 구조의 원리
4) HTTP Message(Client)
▣ Method
▣ 버전 별 지원 Method
- HTTP/0.9 : GET
- HTTP/1.0 : GET, POST, HEAD
- HTTP/1.1 : GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT
☞ CONNECT -- keep-alive
-- close
클라이언트 <--x--> 서버 : 메시지를 주고 받으면 연결을 종료.
But. 받은 메시지 안에 내용이...
<http>
...
<img src=http:// ~~~~>
<img src=http:// ~~~~>
이라면 위의 img정보를 얻어오기 위해 해당 주소랑 다시 연결. img 정보를 받으면 연결이 끝나는데
이 때 다시 <http>로 거슬러 올라가서 다시 내려오면서 읽기 시작함. --> 시간이 오래걸림.
==> 이를 해결하기 위해 CONNECT로 keep-alive인지 close인지로 체크하여 거슬러올라가지 않게함.
▣ GET / POST
: 둘 다 요청메시지이며 sniffing에 취약함.
- GET 방식 : 볼 때 씀.
☞ DATA를 URL에 포함하여 전달 (주소창에 쓰는것임)
☞ 4096 바이트 (브라우저마다 다르긴함)
☞ 게시판 사용하지 않음 (못하는게 아니고 안하는 것임. 게시판 내용 contents가 길어지면 연결 도중 누락 가능성이 있어서..)
EX)
GET login.asp?id=guest&pass=guest
HOST:www.i2sec.co.kr
- POST 방식 : 쓸 때 씀.
☞ DATA를 Request Body(메시지 본문)에 포함시킴. (패킷으로 볼 수 있음)
☞ DATA 제한 없으나 TIMEOUT이 존재함. (default : 90초)
--> Data 크기에 제한이 없으니 시간이 오래 걸리면 데이터가 큰 건지 누락된건지 모르니까.
☞ 인증 정보와 같은 private data를 전송할 때 씀.
EX)
POST login.asp HTTP/1.1
HOST:www.i2sec.co.kr
id=guest; pass=guest
5) HTTP Message(Server)
- 200 OK : 상태코드
- Server : 무슨 서버를 쓰고 있는지 적혀 있음. --> 취약점! (보안상 fake로 쓰는 경우도 있음)
- Content-type : 서버에서 처리할 수 있는 언어
▣ Response 상태 정보
- 200 OK
- 201 Create : PUT Method가 성공하면 뜬다. 고로 201이 뜨면 누군가가 해킹한 것임.
- 301 Moved permanently : 페이지의 이동
- 302 Found : 페이지의 이동
- 400 Bad Request : 요청이 잘못됐을 때.
- 403 Forbidden : 페이지는 존재하나 권한이 없음.
- 404 Not Found : 상태 정보에 대해서도 파악이 가능하니 요즘은 404를 띄우는 것으로 통일함.
- 500 Internal Server Error : DB에러 (SQL Injection이 가능)
6) 실습
▣ 브라우저를 이용하지 않고 웹 서버에 연결하기
- CMD : telnet [웹 서버 주소] [포트번호 : 80]
☞ 내용이 보이지 않으므로 메모장에서 작성
☞ GET / HTTP/1.1[엔터]
☞ HOST:[웹 서버 주소][엔터][엔터] ---> 엔터를 2번하는 이유? 공백라인과 메시지 본문은 빈칸으로 두기 위해!
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+1] 웹 구조의 원리 (1) (2) | 2017.04.27 |