NoSQL - DBMS는 다음과 같이 나뉨 > Relational(관계형): MySQL, MariaDB, PostgreSQL, SQLite > Non-Relational(비관계형): MongoDB, CouchDB, Redis > 관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장하고, 비관계형은 테이블 형식이 아닌 키-값 (Key-Value) 형태로 값을 저장함 MongoDB - JSON 형태인 도큐먼트(Document)를 저장 - _id 필드가 Primary Key 역할을 맡음 - 연산자 이름 설명 $eq 지정된 값과 같은 값 찾기(equal) $in 배열 안의 값들과 일치하는 값 찾기(in) $ne 지정된 값과 다른 값을 찾기(not equal) $nin 배열 안의 값들과 다른 값 찾기(not ..
CSRF(Cross Site Request Forgery) 1) 정의 - 사이트 간 요청 위조 - 이용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 만드는 공격 - CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 함. 이를 위하여 메일 보내거나 게시글 작성하는 방법이 있음 2) 방법 - CSRF 공격 스크립트는 HTML 또는 Javascript를 통해 작성됨 - 이미지 불러오는 img 태그 사용하거나 웹 페이지에 입력된 양식 전송하는 form 태그 사용하는 방법이 있음 - 주의) 서버에서 이용자 식별을 위하여 쿠키를 사용하고 있어야 CSRF 취약점으로 공격 가능 3) XSS와의 비교 - 공통점: 클라이언트를 대상으로 하는 공격이며, 이용..
XSS(크로스 사이트 스크립트) 1) 정의 - 클라이언트 사이드 취약점 중 하나 - 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행하는 취약점 2) 종류 - Stored XSS: 악성 스크립트가 서버 내에 존재, 이용자가 저장된 악성 스크립트를 조회할 때 발생 - Reflected XSS: 악성 스크립트가 이용자 요청 내에 존재, 이용자가 악성 스크립트가 포함된 요청을 보낸 후 응답을 출력할 때 발생 - DOM-based XSS: XSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 XSS - Universal XSS: 클라이언트의 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점으로 SOP 정책을 우회하는 XSS 3) 영향 - 공격자는 해당 ..
1. 동작 원리 - 사용자가 파일 업로드하면 업로드된 파일은 어딘가에 저장됨(개발자가 지정하므로 웹 애플리케이션마다 상이할 수 있음) - 해당 취약점은 일반적으로 업로드 파일의 저장 위치가 웹 애플리케이션이 구동되는 서버와 동일한 서버인 경우 발생(파일 저장 위치는 웹 루트 디렉터리의 하위 디렉터리에 저장됨) * 웹 루트 디렉터리란 웹 애플리케이션의 최상위 디렉터리로서 도메인 자체가 가리키는 디렉터리를 말함. Apache 웹 서버의 경우 웹 루트 디렉터리는 /var/www/html이며 업로드된 파일의 저장 위치는 /var/www/html/uploaded - 업로드된 파일은 대부분 URL을 통해 접근할 수 있음. 즉 웹 애플리케이션에 접근 허용된 누구라도 웹 브라우저를 통해 파일에 접근할 수 있음. - 공..