SWUFORCE/모의해킹팀

모의해킹 과제 4주차

예빈이 2023. 11. 7. 23:45

Background: Non-Relational DBMS


비관계형 데이터베이스 : SQL을 사용해 데이터를 조회/추가/삭제하는 관계형 데이터베이스(RDBMS)와 달리 SQL을 사용하지 않으며, 이에 따라 RDBMS와는 달리 복잡하지 않은 데이터를 다루는 것이 큰 특징이자 RDBMS와의 차이점MongoDB : JSON 형태인 도큐먼트를 저장
- 스키마를 따로 정의하지 않아 각 컬렉션(Collection)에 대한 정의가 필요하지 않는다
- JSON 형식으로 쿼리를 작성할 수 있다
- _id 필드가 Primary Key 역할을 한다.
MongoDB 연산자

Redis : 키-값(Key-Value)의 쌍을 가진 데이터를 저장. 다른 데이터베이스와 다르게 메모리 기반의 DBMS이다. 메모리를 사용해 데이터를 저장하고 접근하기 때문에 읽고 쓰는 작업을 다른 DBMS보다 훨씬 빠르게 수행한다.
CouchDB : JSON 형태인 도큐먼트를 저장한다. 이는 웹 기반의 DBMS로, REST API 형식으로 요청을 처리한다.
컬렉션(Collection) : 데이터베이스의 하위에 속하는 개념

 

NoSQL Injection

 

NoSQL Injection : 이용자의 입력값이 쿼리에 포함되면서 발생하는 문제점으로 MongoDB의 NoSQL Injection 취약점은 주로 이용자의 입력값에 대한 타입 검증이 불충분할 때 발생한다.
SQL은 저장하는 데이터의 자료형으로 문자열, 정수, 날짜, 실수 등을 사용할 수 있고 MongoDB는 이 외에도 오브젝트, 배열 타입을 사용할 수 있다.
Blind NoSQL Injection : 인증 우회 이외에도 데이터베이스의 정보를 알아낼 수 있는 공격기법. 참/거짓 결과를 통해 데이터베이스 정보를 알아낼 수 있다.
$regex : 정규식을 사용해 식과 일치하는 데이터를 조회한다.
$where
- 표현식 : 인자로 전달한 Javascript 표현식을 만족하는 데이터를 조회
- substring : 해당 연산자로 Javascript 표현식을 입력하면, Blind SQL Injection에서 한 글자씩 비교했던 것과 같이 데이터를 알아낼 수 있다.
- Sleep 함수를 통한 Time based Injection : 표현식과 함께 사용하면 지연 시간을 통해 참/거짓 결과를 확인할 수 있다.
- Error based Injection : 에러를 기반으로 데이터를 알아내는 기법으로, 올바르지 않은 문법을 입력해 고의로 에러를 발생시킨다.

'SWUFORCE > 모의해킹팀' 카테고리의 다른 글

모의해킹 과제 6주차  (0) 2023.11.21
모의해킹 5주차 과제  (0) 2023.11.14
3주차 웹해킹 과제  (0) 2023.10.11
2주차 과제 - 시스템 해킹  (0) 2023.10.04
모의해킹 2주차 과제 - 웹 해킹  (0) 2023.10.03