본문 바로가기

웹,앱 해킹/기초

웹 아키텍쳐

728x90

웹 아키텍쳐

  1. GET 방식으로 서버에 요청
  2. 웹 서버에서 데이터베이스로 SQL*로 전송
  3. 데이터베이스에서 웹서버로 데이터 전달
  4. 받은 데이터를 웹서버에서 웹브라우저로 전달
SQL : sql이란? 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어

HTTP

  • Hyper Text Transfer Protocol
  • 주로 80번 포트를 이용하여 서비스함(80또는443을 쓰는데 이는 80또는443를 한 서버에서 하나밖에 사용못하기때문이다.)
  • http요청과 http응답으로 이루어짐
  • 클라이언트가 요청하고 서버가 응답
  • http메소드: GET*,POST*,PUT*,DELETE*
  • 응답코드(status code)
GET : 정보를 가져오기
POST : 정보를 제출하기
PUT : 정보를 수정요청(갱신)
DELETE : 정보를 삭제요청

HTTPS

  • HTTP over Secure Socket Layer
  • SSL을 이용한 HTTP 통신 방식
  • http의 데이터가 암호화 되지 않고 날것 그대로 전송된다는 단점때문에 암호화 통신을 하는 https를 사용하게 됐다.
SSL이란 암호화 통신과 그 암호화 통신에 사용되는 키를 공유할 수 있도록 하는 기술이다.

 

  • HTTP 응답코드
  • 1xx : 정보전달
  • 2xx : 성공
  • 3xx : 리다이렉션
  • 4xx : 클라이언트 쪽 에러
  • 5xx : 서버 에러

세션 유지와 쿠키

  • HTTP는 stateless이기 때문에 세션 ID를 사용해서 이전 상태를 유지(ex : 한번 로그인 후 다시 물어보지 않음)
  • 세션 ID는 보통 쿠키*로 전달
  • 세션 ID를 탈취함으로 세션 하이재킹* 공격 가능
쿠키란?
- 변수=값 의 집합
- 서버는 Set-Cookie 헤더를 이용해 쿠키를 전달하고, 브라우저에서 이를 저장해두었다가 Cookie 헤더에 전송
  예) Cookie: JSESSIONID=ABCDEFGH12345678

세션 하이재킹이란?
- 정상통신을 하고있는 다른 사용자의 세션을 가로채서 별도의 인증 작업 없이
가로챈 세션으로 통신을 계속하는 행위
- 인증 작업이 완료된 세션을 공격하기 때문에 OTP,Challenge/Response 기법을
사용하는 사용자 인증을 무력화 시킨다

 

'웹,앱 해킹 > 기초' 카테고리의 다른 글

커멘드 인젝션 공격  (0) 2021.07.06
브루트포스 공격 및 대응  (0) 2021.07.05
sql 인젝션 테스트 실습 20210630  (0) 2021.07.01
웹사이트를 통한 침투  (0) 2021.06.29
화이트 해커란?  (0) 2021.06.28