목록INTERLUDE/Web Hacking (36)
Information Security

NoSQL 중 MongoDB에서 발생하는 취약점 형태와 이를 공격하는 방법에 대해서 소개 MongoDB의 특징 스키마 (Schema)가 존재하지 않아 각 테이블 (또는 Collection)에 특별한 정의를 하지 않아도 된다. JSON 형식으로 쿼리문을 작성할 수 있다. _id 필드가 기본키 (Primary Key) 역할을 한다. '$' 문자를 이용해 연산자를 사용할 수 있다. 연산자 Comparison Logical Element Evaluation MongoDB Injection MongoDB에서 주로 발생하는 취약점 이용자가 입력한 값의 타입을 검사하지 않거나 미흡할 때 발생 공격자는 이를 통해 MongoDB에서 제공하는 연산자를 입력하여 데이터베이스 정보를 획득할 수 있음 GET 방식 예시 cons..
비밀글
비밀글

DBMS는 설정 파일을 통해 특정 기능을 활성화하거나 접근 가능한 디렉터리 등을 설정할 수 있음 “Security Misconfiguration” : 계정 및 권한이 적절하게 분리되지 않았거나 불필요한 기능의 활성화, 그리고 데이터베이스의 보안 설정이 미흡한 경우 DBMS의 설정 항목을 잘못 설정했을 때 발생할 수 있는 문제점에 대해서 소개 Out of DBMS DBMS에서 제공하는 특별한 함수 또는 기능 등을 이용해 파일 시스템, 네트워크, 심지어는 OS 명령어 등에도 접근 가능 데이터베이스의 정보를 획득, 파일 시스템, 네트워크, 시스템 모두 장악 가능 -> DBMS의 버전이 올라감에 따라 위험한 함수나 기능을 제거하거나, 기본 설정/권한으로 접근하지 못하게 하는 등 다양한 방법으로 해당 공격 방식에..
Web Application Firewall (WAF): 웹 애플리케이션에 특화된 방화벽 악성 트래픽을 유발하는 디도스와 데이터베이스와 관련된 SQLI, 최근에는 자바 로깅 라이브러리에서 발생한 log4j 등의 공격을 탐지하고 접속을 차단함 공격에 사용되었던 코드 즉, 주요 키워드를 기반으로 탐지 탐지 우회 대소문자 검사 미흡 SQL은 데이터베이스와 컬럼명을 포함해 질의문의 대소문자를 구분하지 않고 실행 탐지 과정 미흡 방화벽에서 악성 키워드를 탐지했을 때 다양하게 요청을 처리할 수 있음 -> 악성 키워드가 포함된 요청을 거부하거나 내부에서 치환 과정을 거친 후에 요청을 처리할 수도 있음 문자열 검사 미흡 ex) 방화벽에서 “admin” 키워드의 포함 여부를 검사하는 경우 - reverse와 concat..
System Tables 설정 및 계정 정보 외에도 테이블과 컬럼 정보, 그리고 현재 실행되고 있는 쿼리의 정보 등 다양한 정보를 포함 MySQL을 주로 정리하도록 하겠다 MySQL 시스템 테이블 스키마와 데이터베이스가 같음 information_schema와 mysql, perfomance_schema, 그리고 sys 데이터베이스가 있음 show databases; 스키마 정보 TABLES 테이블의 내용 중 TABLE_SCHEMA에 해당하는 정보를 그룹화하여 조회 select TABLE_SCHEMA from information_schema.tables group by TABLE_SCHEMA; 테이블 정보 TABLES 테이블의 내용 중 TABLE_SCHEMA와 TABLE_NAME에 해당하는 정보를 조회..

SQL Injection 취약점이 발생할 때 DBMS 정보를 수집하는 방법 DBMS Fingerprinting SQL Injection 취약점을 발견하면? -> DBMS의 종류와 버전을 제일 먼저 알아봐야 함 쿼리 실행 결과 출력 DBMS에서 지원하는 환경 변수의 값을 이용하는 방법 에러 메시지 출력 삽입한 쿼리를 애플리케이션에서 실행하면서 에러 메시지를 출력하는 경우 사용하는 DBMS를 알아낼 수 있음 MySQL 쿼리 실행 결과 출력 에러 메시지 출력 PostgreSQL 쿼리 실행 결과 출력 에러 메시지 출력 MSSQL 쿼리 실행 결과 출력 에러 메시지 출력 SQLite 쿼리 실행 결과 출력 에러 메시지 출력
비밀글