본문 바로가기

4-3. 2023-2 심화 스터디/웹 취약점 분석

[2023.09.23]드림핵 웹해킹 로드맵 수강 - 스테이지 5개

Web

  • 웹: HTTP를 이용한 정보 공유 서비스
  • 웹 서버: 정보를 제공하는 주체
  • 웹 클라이언트: 정보를 받는 이용자
  • 프론트엔드: 이용자 요청을 받는 부분, 이용자에게 직접 보여진다 -> 웹 리소스로 구성
  • 백엔드: 요청 처리하는 부분
  • 예) http://dreamhack.io/index.html-> dreamhack.io에 존재하는 /index.html 경로의 리소스를 가져오라는 의미이다.
  • 웹 리소스는 고유의 url을 가지며 html, css, javascript 등이 대표적

<퀴즈>

  1. Javascript로 작성된 웹 리소스는 서버에서 실행되고, 그 결과가 클라이언트 웹 리소스에 반영된다. -> X
  2. 브라우저는 이용자의 요청을 해석하여 웹 서버에 HTML형식으로 전달한다. -> X

 

HTTP/HTTPS

-인코딩을 이용하여 우리의 문장을 컴퓨터에 저장하고 표현

  • protocol: 규격화된 상호작용에 적용되는 약속
  • HTTP: 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜로, 클라이언트가 서버에게 요청하면, 서버가 응답하는 메커니즘을 가짐
  • HTTP 메시지: 클라이언트가 전송하는 HTTP 요청, 그리고 서버가 반환한는 HTTP 응답이 있음
  • HTTPS: TLS 프로토콜을 도입하여 계정 탈취 등의 문제점을 보완함, TLS는 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화함 (=HTTP + TLS)
  • HTTP는 응답과 요청을 평문으로 전달하기에 누군가 가로채면 중요 정보가 노출됨

Web Browser

  • 웹 브라우저: 대표적인 소프트웨어로, 이용자 친화적인 인터페이스를 제공하며 다양한 기능을 제공
  • URL : 웹에 있는 리소스의 위치를 표현하는 문자열
  • DMS(Domain Name Server): Host의 도메인 이름을 IP로 변환하거나 IP를 도메인 이름으로 변환
  • 웹 렌더링(Web Rendering): 서버로부터 받은 리소스를 이용자에게 시각화하는 것
  • Tools: Browser DevTools
  • Element: 페이지를 구성하는 HTML 검사
  • Console: 자바 스크립트를 실행하고 결과를 확인할 수 있음
  • Sources: HTML, CSS, JS 등 페이지를 구성하는 리소스를 확인하고 디버깅할 수 있음

 

Cookie & Session

  • Cookie: HTTP에서 상태를 유지하기 위해 사용하는 Key-Value 형태의 값
  • Session: 쿠키에 포함된 Session ID를 사용해 서버에 저장된 세션 데이터에 접근하는 방식
  • Session Hijacking: 타 이용자의 쿠키를 훔쳐 인증 정보를 획득하는 공격

쿠키는 데이터 자체를 이용자가 저장하며, 세션은 서버가 저장한다는 핵심적인 차이가 존재한다.

 

Mitigation: Same Origin Policy

SOP: 동일 출처 정책, 가져온 데이터를 악의적인 페이지에서 읽을 수 없도록 하는 브라우저의 보안 메커니즘

 

Cross Origin Resource Sharing (CORS): 교차 출처 리소스 공유, SOP의 제한을 받지 않고 Cross Origin의 데이터를 처리할 수 있도록 해주는 메커니즘

 

Cross-Site-Scripting (XSS)

  • XSS: 클라이언트 사이드 취약점, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에 해당 스크립트를 실행하는 취약점 ->특정 계정에 세션 정보를 탈취하고 해당 계정으로 임의의 기능 수행 가능
  • Stored XSS: 악성 스크립트가 서버 내에 저장되고 서버의 응답에 담겨옴
  • Reflected XSS: 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨옴
  • DOM-based XSS: 악성 스크립트가 URL Fragment에 삽입되는 XSS
  • Universal XSS: 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점으로 SOP정책을 우회하는 XSS

Cross Site Reqiest Forgery(CSRF)

  • CSRF: 사이트 간 요청 위조, 이용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 만드는 공격이며 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점

XSS와 CSRF의 공통정과 차이점

공통점: 클라이언트 대상 공격, 이용자를 악성 스크립트가 포하묀 페이지에 접속하게 유도함

차이점: XSS는 인증정보인 세션, 쿠키 탈취하는 것이 목적이라면, CSRF는 이용자가 임의 페이지에 요청 보내는 것으로 목적이 다름

 

SQL Injection

  • SQL Injection: SQL 쿼리에 이용자의 입력 값을 삽입해 이용자가 원하는 쿼리를 실행할 수 있는 취약점
  • 데이터베이스: 데이터가 저장되는 공간
  • DBMS: 데이터베이스를 관리하는 어플리케이셔
  • RDBMS: 테이블 형태로 저장되는 관계형 DBMS
  • SQL: RDBMS와 상호작용할 때 사용되는 언어
  • DDL: 데이터 정의 언어
  • DML: 데이터 조작 언어
  • DCL: 데이터베이스 접근 권한 설정 언어
  • Blind SQL Injection: 질의 결과를 이용자가 화면에서 직접 확인하지 못할 때 참/거짓 반환 결과로 데이터를 획득하는 공격 기법

) Question #1. dreamhack 계정의 비밀번호 첫 번째 글자는 'x' 인가요?

Answer. 아닙니다

 

NoSQL(Non-Relation DBMS)

  • NRDBMS: RDBMS 용량의 한계를 해결하기 위해 등장한 비관계형 데이터베이스