서버에서는 사용자가 요청 한 데이터를 해석하고 처리한 후 사용자에게 응답합니다.
그 과정에서 웹 어플리케이션이나 데이터베이스와 같은 서버의 자원을 사용해 처리하기도 합니다.
이 과정에서 사용자의 요청 데이터에 의해 발생하는 취약점을 서버 사이드 취약점이라고 합니다.
# Keyword
- Injection (인젝션)
: 서버의 처리 과정 중 사용자가 입력한 데이터가 처리 과정의 구조나 문법적으로 사용되어 발생하는 취약점
- File vulnerability
: 서버의 파일 시스템에 사용자가 원하는 행위를 할 수 있을 때 발생하는 취약점
- Business Logic Vulnerability (비즈니스 로직 취약점)
: 인젝션, 파일 관련 취약점들과는 다르게 정상적인 흐름을 악용하는 것
- Language specific Vulnerability (PHP, Python, NodeJS)
: 웹 어플리케이션에서 사용하는 언어의 특성으로 인해 발생하는 취약점
- Misconfiguration
: 잘못된 설정으로 인해 발생하는 취약점
# Content
1. Injection
1) SQL Injection(Structured Query Language)
: SQL 요청을 사용할 때 공격자의 입력 값이 정상적인 요청에 영향을 주는 취약점입니다.
* SQL 구조 예시
① DDL (Data definition language)
: 데이터를 정의하기 위한 언어입니다. 데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행합니다.
ex) create, alter, drop
② DML (Data manipulation language)
: 데이터를 조작하기 위한 언어입니다. 실제 데이터베이스 내에 존재하는 데이터에 대해 조회/저장/수정/삭제 등의 행위를 수행합니다.
ex) insert, update, select, delete
③ DCL (Data control language)
: 데이터베이스의 접근 권한 등의 설정을 하기 위한 언어입니다. 데이터베이스내에 사용자의 사용 권한을 부여하기 위한 GRANT와 권한을 박탈하는 REVOKE가 대표적인 DCL입니다
2) Command Injection
: OS Command를 사용 시 사용자의 입력 데이터에 의해 실행되는 Command를 변조할 수 있는 취약점입니다.
3) Server Side Template Injection (SSTI)
: 템플릿 변환 도중 사용자의 입력 데이터가 템플릿으로 사용돼 발생하는 취약점입니다.
template Engine이 해석하는 {{ Data }} 형태를 이용하여 공격에 사용할 수 있습니다.
4) Path Traversal
: URL / File Path를 사용 시 사용자의 입력 데이터에 의해 임의의 경로에 접근하는 취약점입니다.
5) Server Side Request Forgery (SSRF)
: 공격자가 서버에서 변조된 요청을 보낼 수 있는 취약점입니다.
ex) http://127.0.0.1/admin 입력
2. FILE vulnerability
'Web Hacking > Study Notes' 카테고리의 다른 글
[ Web ] SQL Injection (0) | 2020.08.03 |
---|---|
[ Web ] Client-Side basic (0) | 2020.07.30 |
[ Web ] Introduction of Webhacking (0) | 2020.07.30 |
[ CSS ] NOTEPAD (0) | 2019.09.17 |