HTTP 의 이해 (보안관련)

2024. 7. 10. 12:36Information Security 정보보안/정보보안 기본지식

728x90

배울내용:

HTTPS 란?

HTTP의 이해

HTTP 구조 

HTTP Request

HTTP Response

HTTP Method

HTTP Status

SSL 인증서발급 방법

Proxy 

웹 프록시

 

 

 

 

 

 

 

 

HTTP(Hypertext Transfer Protocol)


HTTP 프로토콜은 브라우저와 웹 서버간의 통신을 위한 프로토콜이다

HTTP Request : 클라이언트가 서버에게 보내는 요청

HTTP Response : 서버가 클라이언트에게 보내는 응답

 

 

 

 

 

HTTP 구조

 

Request Message : 웹 브라우저가 서버에게 요청할 때 보내는 메세지

Response Message : 웹 서버가 HTTP Request 를 받고 응답할 떄 보내는 메세지 

 

다른말로 Client 가 Request 하고 Server 가 Response 해주는 것이다 

 

 

 

개행문자 (CSRF - Cross-site Request Forgery)

- 개행문자 (\r\n) 라인으로 구분하여 데이터를 식별

- 요청 또는 응답의 메타데이터가 모두 전송되었음을 알리는 빈 줄

- 바디와 헤더를 나누는 역할 

 

 

 

 

여기서 /r/n (0d 0a 0d 0a) 가 이렇게 0d 0a 2세트가 나와야지 끝나는데  0d 0a 가 1개만나오면 

SlowHttp Header Attack (DOS 공격중 하나) 공격을 의심할수있다 

 

 

위에가 정상적인 데이터 , 아래가 비정상적인 데이터

 

 

 

 

 

 

 

 

 


HTTP REQUEST 
 

 

- 클라이언트가 서버에게 보내는 데이터 패킷( Client --> Server)  

Start Line : HTTP Method - Path + (QeuryString ) - HTTP VERSION 

Request Header : Host , Accept , User-Agent , Cookie 

 

 

 

 

 

 

 

 

 

 

 

 

 

HTTP Method

클라이언트가 서버에게 사용자의 요청의 목적이나 종류를 알리는 수단 

 

클라이언트가 서버에 사용자에게 이러한 목적이야 ~ 를 알려준다 

 

 

 

 

 

HTTP Method  GET  VS POST

get 과 post는 http method 중 가장많이 사용되는데 아래의 차이점을 볼수있다 

 

 

그러나 GET 이나 POST 차이점이 보통 보안의 차이가 있다고 하는데 

POST 가 그렇다고 안전한것이기 떄문에 POST 를 쓰는게 아니다 

 

둘다 파라미타로 보내긴 하지만 하나는 URL 에 보내고 하나는 아래로 보내는데 이러한 이유는 

GET 은 url 통해서 전송되는데 키 제한이 있다( url에 쓸수있는게 한정적이다 ) 

POST 는 HTTP BODY 에다가 보냄 , 키 제한이 없음 

 

정보를 조회할떄 GET 을쓰고

POST 를 쓸떄는 장문을 쓸때 

 

그대신 예외는 로그인할떄는 GET을 안하고 POST 로 쓰는데 이건 보안관련이유 떄문에 유일하게 POST로 쓴다고한다. 

 

 

 

 

 

예시로 보면 google에 sarimus 라고 검색하면 빨간부분은 URL 부분이고 그뒤에 ? 가 온뒤에는 sarimus 가 보이는걸 보면 

GET 으로 된걸 알수있다 만약 method가 post면 url에 표시가 되지않는다 

 

 

 

개발자도구 (F12) 로 ㅋㄹ릭해서 Network 를 킨상태에서 검색해보면 이와같이 200 전송선공이 Status Code로 뜬걸 볼수있다 그리고 method 로 GET으로 된것 또한 볼수있다 

 

 

 

Status Code 종류에는 100~ 5XX~ 로 구분이 되어있고 아래의 표시대로 보면된다 

 

이중에 404 나 403 이런 에러가뜨는것 또한 하나의 취약점으로도 볼수도있다 (Banner Grabbing 취약점)

 

 

 

 

위와같이  telnet과 같은 원격지 서비스에서 처음 나오는 안내판이며 배너그래빙을 통해 대상 컴퓨터의 운영체제 정보를 알아낼 수 있다.

 

 

 

 

 

 

 

 

 

 

 


HTTP Response (Start Line)

 

여기에는 Status Code 가 나오는데 전에 Request 에는 QueryString 이였다 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HTTPS ( Hypertext Transfer Protocol Secure Socket Layer)

 


- 클라이언트/서버 환경에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜

- 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

암호화 관련 대칭키 공개키 이걸 좀더 자세히 알고싶으면 아래의 링크로 가자

 

https://sarimus.tistory.com/38

 

Network Security DAY_002 정보보안전문가가 갖춰야할것 , 네트워크 보안 ,Network Security , 암호알고리즘

배울 내용: 정보보안전문가가 갖춰야할것 네트워크 보안 Network Security 암호알고리즘 대칭키 비대칭키 관용암호 공개키 양방향 암호 알고리즘 단방향 암호 알고리즘 정보보안통신법 개인정보 보

sarimus.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

아래는 프록시를 이용해서 모의해킹을 해본 것이다. 

 

 

https://sarimus.tistory.com/51

 

Web Security DAY_003 웹 모의 해킹 , 리눅스 nmap , 풋프린팅이란? ,도메인 찾기 , dnsenum , dnsenum --dnsserv

배울내용: 웹 모의 해킹 리눅스 nmap 풋프린팅이란? 도메인 찾기 dnsenum dnsenum --dnsserver nc burp suite hydra 공격 burp brute forcer 풋프린팅 절차 제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때

sarimus.tistory.com

 

728x90