[1] HTTP 요청


1] HTTP 전송 방법, 요청된 URL, HTTP 버전


2] REFERER : 어디로부터 요청 받았는지에 대한 URL


3]USER-AGENT : 브라우저, 기타 클라이언트 소프트웨어 정보


4]HOST : 하나의 물리서버에 하나 이상의 웹 호스팅을 했을때 구별


5]쿠키 : 서버가 클라이언트에게 보낸 인자값에 추가 정보를 보낼 때 사용




[2] HTTP 응답


1] HTTP버젼, 요청에 대한 결과 코드, 응답에 대한 상황을 설명하는 문자열


2] SET-COOKIE ; 브라우저에게 쿠키에 대한 정보를 제공, 클라이언트가 서버에게 페이지를 요청 할때 함께 송신


3]PRAGMA : 응답한 내용에 대한 캐시 저장 여부


4]EXPIRES ; 캐시 할 수 있는 기간 제시


5]CONTENT-TYPE ; 이 메세지 바디에 HTML문서가 있음을 알려줌


6]CONTENT-LENGTH ;  메세지 바디의 길이를 바이트 단위로 표시




[3] HTTP 메서드


GET

GET 메서드는 지정된 리소스의 표현을 요청한다. GET를 이용한 요청은 데이터만 검색해야 하며 다른 효과는 없어야 한다.(이것은 다른 몇몇 HTTP 방법에도 해당된다.)


HEAD

HEAD 방법은 GET 요청과 동일한 응답을 요구하지만, 응답 Body는 없다. 이것은 전체 콘텐츠를 전송하지 않고도 응답 헤더에 기록된 메타 정보를 검색할 때 유용하다.


POST

POST 방법은 서버가 요청서에 동봉된 실체를 URI에 의해 식별된 웹 자원의 새로운 부하로 받아들일 것을 요청한다. 예를 들어 posted 데이터는 기존 리소스에 대한 주석, 게시판, 뉴스 그룹, 메일 그룹 또는 주석 스레드에 대한 메시지, 웹 양식을 데이터 처리 프로세스에 제출한 결과 데이터 블록 또는 데이터베이스에 추가할 항목일 수 있다.


PUT

PUT 방법은 폐쇄된 엔티티를 제공된 URI에 저장하도록 요청한다. URI가 이미 존재하는 자원을 참조하면, 수정된다. URI가 기존 자원을 가리키지 않으면, 서버는 해당 URI로 해당 자원을 생성할 수 있다.


DELETE

DELETE 메서드는 지정된 리소스를 삭제한다.


TRACE

TRACE 방법은 수신 요청을 반영하여 클라이언트가 중간 서버에 의해 변경되거나 추가된 내용을 볼 수 있도록 한다.


OPTIONS

OPTIONS 메서드는 서버가 지정한 URL에 대해 지원하는 HTTP 메서드를 반환한다. 이는 특정 자원 대신 '*'를 요청하여 웹 서버의 기능을 확인하는 데 사용될 수 있다.


CONNECT

[CONNECT 방법은 보통 암호화되지 않은 HTTP 프록시를 통해 SSL 암호화 통신(HTTPS)을 용이하게 하기 위해 요청 연결을 투명한 TCP/IP 터널로 변환한다.


PATCH

PATCH 방법은 자원에 부분 수정을 적용한다.




[4] HTTP 헤더


1]일반적인 헤더


1) CONNECTION ; HTTP전송이 완룓힌 후에 TCP연결을 차단할지, 다른 메세지를 위해 열어둘지 결정

2) CONTENT-ENCODING ; 메세지 바디 내용에 어떤 종류의 인코딩을 사용할 지 결정

3) CONTENT-LENGTH ; 메세지 바디의 길이

4) CONTENT-TYPE ; 메시지 바디에 들어 있는 컨텐츠 종류(예를 들어 TEXT/HTML)

5) TRANSFER-ENCODING ; 메세지 바디가 HTTP전송을 쉽게 하게 도와주는 인코딩 방법



2] 요청해더


1) ACCEPT ; 클라이언트가 수용할 종류를 서버에게 알림(그림파일, 문서형식...)

2) ACCEPT-ENCODING ; 클라이언트가 어떤 종류의 인코딩된 문서를 수락할지 서버에게 알림

3)AUTHORIZATION ; 사용자의 식별정보을 서버에게 보낼 때

4)If-Modified-Since ; 브라우저가 마지막으로 요청 자료을 받은 시간 . 해당 자료가 특정 시간이후에 변경된 적이 없다면, 304코드을 이용해 클라이언트 하드디스크에있는 복사본을 사용할것을 권고

5]If-None-Match ; Entity tag을 지정하기 위해서 사용. 메시지 바디을 식별해주는 역할. 브라우저는 서버에서 전송된 정보를 모두 수신한 후 entiry tag를 전송한다. 서버는 entity tag을 사용해 브라우저가 자료 복사본을 사용 할 수 있는지 여부를 판단.

6)Referer ; 현재 요청이 시작된 URL

7)User-Agent ; 요청 브라우저의 정보




3] 응답헤더


1)Cache-Control ; 캐시에 대한 지시를 브라우저에게 전달

2)Etag ; Entity Tag로서 클라이언트는 나중에 같은 자료를 요청할때 If-None-Match 헤더에서 Etag정보를 보낼 수 있다. 따라서 현재 브라우저는 캐시에 어떤 버전의 자료을 가시고 있는지 서버에게 알릴 수 있다.

3)Expires ; 브라우저는 요청한 자원에 대해 Expires 시간까지 클라이언트의 하드에 저장된 복사본을 이용.

4)Location ; 재전송하는 응답에서 목적지를 나타내는 데 사용. Location은 상태 코드 3부터 시작.

5)Pragma ; 브라우저에게 no-cache와 같은 캐싱 지시을 보내기 위해 사용

6)Server ; 웹서버의 소프트웨어에 대한 정보

7)Set-Cookie ; 쿠키를 생성하고 브라우저에게 보낼 때 사용

8) WWW-Authentication ; 401상태 코드와 함께 응답할 때 사용




[5] 상태 코드


1] 1xx ;  정보을 제공함

2] 2xx ; 요청이 성공적으로 이뤄짐

3] 3xx ; 요청에 대한 해당 자원이 다른 곳에 있음

4] 4xx ; 요청(클라이언트)에 문제가 있음

5] 5xx ; 서버에 에러가 있음




100 Continue ; 클라이어트가 서버에게 메시지 바디을 포함한 요청을 보냈을때 받는 응답 코드

200 OK ; 클리이언트 요청이 성공

201 Created ; 클라이언트의 PUT요청이 성공

301 Moved Permanently ; 브라우져 요청을 다른 URL로 항시 전달한다는 것.

302 Found ; 브라우저의 요청을 임시 URL로 바꾸고 Location 헤더에 임시로 변경한 URL에 대한 정보를 적는다.

304 Not Modified ; 클라이언트 요청을 서버는 복사되어 있는 캐시를 사용할것을 요청

400 Bad Request ; 클라이언트가 서버에 잘못된 요청을 했다는 것

401 Unauthorized ; 서버가 클라이언트 요청에 대해 http 인증확인을 요구한다는 것

403 Forbidden ; 클라이언트 요청에대한 접근을 차단

404 Not Found ; 클라이언트 요청 자료가 존재하지 않는 다는 것

405 Method Not Allowed ; 클라이언트 요청에 대한 이용한 메소드가 해당 URL에 지원 불가능하다는 것

413 Request Entity Too Large ; 클라이언트 요청한 바디를 서버에서 처리하기가 너무 크다는 것

414 Request URI Too Long ; 서버가 감당 할 수 없을 만큼 크다는 것

500 Internal Server Error ; 서버가 클라이어트 요청을 실행 할 수 없을때

503 Service Unavailable ; 서버에서 구동 중인 Application이 응답하지 못할때




[6] HTTP 인증


1] Basic: Base64로 암호화한 문자열 사용

2] NTML ; 윈도우 NTLM 프로토콜 사용

3] Digest ; MD5 체크섬을 사용




[7] 인코딩 스키마


1] URL 인코딩 ; ASCII 문자집합에서 출력가능한 문자 포함. 0x20~0x7e범위도 포함


%3D ; =

%25 ; %

%20 ; space

%0a ; new line

%00 ; Null byte



2] UNIcode 인코딩 ; %u로 시작



3] HTML 인코딩

&qout ; "

&apos ; '

&amp ; &

&lt ; <

&gt ; >




10진수로도 인코딩

&#34 ; "

&#39 ; '




16진수로도 인코딩

&#x22 ; "

&#x27 ; '




4] Base64 인코딩

; 입력 데이터를 3 byte단위로 블럭화 한 후, 각 블록은 다시 6bit씩 네 파트로 분할


eth1 host-only 를 캡처해서

http://meta

접속해보기

'Web Security' 카테고리의 다른 글

LFI(Local File Inclusion)  (0) 2019.03.26
정보수집(maltego와 dirb스캐닝)  (0) 2019.03.25
bee-box설치  (0) 2019.03.21
서버연동해보기  (0) 2019.03.20
php와mysql,zabbix설치 (Centos7)  (0) 2019.03.19

+ Recent posts