소학회/Dreamhack

[Dreamhack]_웹해킹 ClientSide: CSRF/DBMS/SQL Injection

도아돵 2023. 10. 9. 14:34
Cross Site Request Forgery (CSRF): 사이트 간 요청 위조. 이용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 만드는 공격

CSRF는 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점!!
공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있다

 

CSRF 공격 스크립트는 HTML 또는 Javascript를 통해 작성가능

XSS & CSRF_공통점: 취약점은 모두 클라이언트를 대상으로 하는 공격이며, 이용자가 악성 스크립트가 포함된 페이지에 접속하도록 유도해야 한다

XSS 인증 정보인 세션 및 쿠키 탈취를 목적으로 하는 공격

+ 공격할 사이트의 오리진에서 스크립트를 실행
CSRF 이용자가 임의 페이지에 HTTP 요청을 보내는 것을 목적으로 하는 공격

+공격자는 악성 스크립트가 포함된 페이지에 접근한 이용자의 권한으로 웹 서비스의 임의 기능을 실행

DBMS:
-데이터베이스에 새로운 정보를 기록하거나, 기록된 내용을 수정, 삭제하는 역할
-관계형과 비관계형을 기준으로 분류

[두 DBMS의 가장 큰 차이점]
관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장/ 비관계형은 테이블 형식이 아닌 키-값 (Key-Value) 형태로 값을 저장

Structured Query Language (SQL):
RDBMS의 데이터를 정의하고 질의, 수정 등을 하기 위해 고안된 언어

DDL(Data Definition Language):

데이터를 정의하기 위한 언어
데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행

DML(Data Manipulation Language):
데이터를 조작하기 위한 언어
실제 데이터베이스 내에 존재하는 데이터에 대해 조회/저장/수정/삭제 등의 행위를 수행

DCL(Data Control Language):
데이터베이스의 접근 권한 등의 설정을 하기 위한 언어
데이터베이스 내에 이용자의 권한을 부여하기 위한 GRANT와 권한을 박탈하는 REVOKE가 대표적임

 

RDBMS에서 사용하는 기본적인 구조는 데이터베이스 → 테이블 → 데이터 구조
데이터베이스와 테이블을 생성해야 하며, DDL을 사용!!
*RDBMS: 테이블 형태로 저장되는 관계형 DBMS

새로운 데이터를 생성// INSERT,

데이터를 조회//SELECT,

데이터를 수정// UPDATE


인젝션 공격:
이용자의 입력값이 애플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미

 

SQL injection: SQL 쿼리에 이용자의 입력 값을 삽입해 이용자가 원하는 쿼리를 실행할 수 있는 취약점

Blind SQL Injection: 데이터베이스 조회 후 결과를 직접적으로 확인할 수 없는 경우 사용할 수 있는 SQL injection 공격 기법


[퀴즈복습]

다음 중 일반적인 상황에서 SQL Injection으로 할 수 없는 행위를 고르시오. (MySQL 기준)

->내부망침투하