웹 브라우저
: 웹에 접속하기 위해 사용하는 소프트웨어
: HTTP를 통해 인터넷 상에서 통신
: 서버로 부터 전달받은 다양한 웹 리소스들을 가공해
사용자가 웹과 HTTP의 동작 원리를 알지 못해도 웹을 사용할 수 있도록 도와주는 소프트웨어
ex) Chrome, Safari, Firefox
웹 리소스
: 웹에서 사용하는 콘텐츠
1) HTML : 웹 문서의 뼈대 구축, 태그와 속성으로 구성
2) CSS : HTML이 표시되는 방법을 정의. 출력 시 스타일 설정
3) JS : Client Side Script를 이용하여 페이지 내 행위 설정
4) 문서 이미지, 동영상...
HTTP는 Stateless, Connectionless한 특성을 가지고 있기 때문에 인증을 위해 cookie나 session 등을 이용한다.
cookie를 사용한 인증방식은 조작이 쉽기때문에 서버에 저장되는 세션을 사용하기도 한다.
웹 서버
: 사용자로부터 받는 요청을 웹 서버 자체적으로 처리할지, 들어온 요청에 알맞은 내부 서비스로 연결해준다
쿠키는 시작 주소와 상관 없이 모든 쿠키를 삽입한다.
동일 출처 정책 (SOP, Same Origin Policy)
: 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식
: 프로토콜, 포트, 호스트가 모두 일치해야 동일하다고 할 수 있다.
<클라이언트 사이드 취약점>
Cross Site Scripting (XSS)
: 입력 데이터에 대한 충분한 검증 과정이 없어야 한다.
: 서버의 응답 데이터가 웹 브라우저 내 페이지에 출력 시 충분한 검증 과정이 없어야 합니다.
: 사용자의 웹 브라우저에서 악성 스크립트를 실행한다.
Stored XSS
: Stored XSS는 악성 스크립트가 서버 내에 존재하는 데이터베이스 또는 파일 등의 형태로 저장되어 있다가 사용자가 저장된 악성 스크립트를 조회하는 순간 발생하는 형태의 XSS
Reflected XSS
: 사용자의 요청 데이터가 서버의 응답에 포함되는 과정에서 HTML 등의 악성 스크립트가 그대로 출력되어 발생
: Reflected XSS는 Stored XSS와는 다르게 사용자의 요청 데이터에 의해 취약점이 발생하기 때문에, 변조된 데이터가 사용자의 요청으로 전송되는 형태를 유도해야 한다
: 가장 간단한 방법으로는 특정 링크를 유도하는 방식이 존재하며 Click Jacking, Open Redirect 등의 다른 취약점과 연계하여 발생시키는 방법도 존재
Cross Site Request Forgery (CSRF)
: 비 정상적으로 사용자의 의도와 무관하게 다른 사이트에 HTTP 요청을 보내는 것
: 세션 쿠키를 가진 사람만 사용할 수 있는 기능을 요청할 수 있다
: 조건-쿠키를 이용한 인증 방식 사용/공겨가가 알수 없는 파라미터가 존재해서는 x
Open Redirect
: 오픈 리다이렉트의 공격 방법은 리다이렉트가 발생하는 경로에서 공격자의 입력 값에 의해 리다이렉트 되는 주소가 변경 될 경우, 해당 경로와 공격자의 값이 함께 전달되도록 사용자를 유도하여 리다이렉트 실행
Click Hijacking
: 웹 브라우저 화면에 출력되는 내용에 HTML, CSS, JS 등과 같이 화면 출력에 영향을 미치는 요소들을 이용하여 사용자의 눈을 속여 사용자의 클릭을 유도하는 공격 방법
: 사용자의 클릭을 유도하는 페이지를 구성 후, 그 페이지 위에 iframe등의 태그로 누르게 할 페이지를 로드
<서버 사이드 취약점>
Injection
: 사용자의 입력 데이터가 어플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점
ex) SQL Injection / Command Injection / Server Side Template Injection(SSTI) / Path Traversal / Server Side Request
Forgery(SSFR)
: 웹 어플리케이션에서 요청을 보내기 때문에 웹 어플리케이션이 작동하고 있는 서버 내부의 포트, 서버와 연결된 내부망에 요청을 보낼 수 있고 Server-side에서 변조된 요청 / 의도하지 않은 서버로 요청을 보내는 공격
File vulnerability
: 파일 업로드 기능은 사용자의 파일이 서버의 파일 시스템에 저장되어 처리된다는 이유로 인해 취약점이 발생
ex) File upload vulnerability / File download vulnerbility
Business Logic Vulnerability
: 서비스의 기능에서 적용되어야 할 로직이 없거나 잘못 설계된 경우 발생
ex) BusinessLogic Vulnerability / IDOR (Insecure Direct Object Reference) / Race Condition
Language specific Vulnerability
: 언어에서 제공하는 모든 함수가 안전한 것은 아니다. 의도한 기능을 제공하는 함수를 잘못 사용해서 문제가 발생할 수도 있으며, 사용자의 입력 데이터가 함수의 인자로 사용되어 취약점이 발생하기도 한다.
'Study Log' 카테고리의 다른 글
ping & tracert 명령어 (1) | 2020.04.28 |
---|---|
CSRF, SSRF, XSS(Stored, Reflected) (1) | 2020.04.19 |
ARP 동작 방식 + ARP Spoofing (1) | 2020.04.07 |
책 정리(후니의 쉽게 쓴 시스코 네트워킹) (0) | 2020.04.02 |
SSH 패킷 분석 (putty/kali/wireshark) (0) | 2020.03.31 |
댓글