Oh! JUN

ORACLE 메타데이터 목록화 본문

웹 해킹/SQL Injection

ORACLE 메타데이터 목록화

Kwon Oh! JUN 2022. 8. 17. 05:55

ORACLE

- 사용자 단위로 테이블이 구분이 되어있음

- DB가 나누어져 있지 않음

DBA_TABLES / DBA_TAB_COLUMNS : 데이터베이스의 모든 테이블 / 컬럼 정보(DBA 권한)
★ ALL_TABLES / ALL_TAB_COLUMNS : 현재 사용자가 접근 가능한 모든 테이블 / 컬럼 정보
USER_TABLES / USER_TAB_COLUMNS : 현재 사용자가 생성 / 소유하는 테이블 / 컬럼 정보

 


순차적 목록화

select * from all_users;

- 모든 사용자를 조회한다.

- ORACLE은 MYSQL처럼 DB가 여러개 존재하지 않고, 사용자와 테이블과 매핑되어있다.

 

 

select DISTINCT owner from all_tables;

- 모든 테이블에서 owner를 중복제외하고 조회한다.

 

 

select user from dual;

- 현재 사용자 명

 

 

select * from all_tables where owner='C##CREHACKTIVE';

- 현재 사용자 명에 대한 모든 테이블 정보 조회

 

 

select * from all_tab_columns where owner='C##CREHACKTIVE' and table_name='MEMBERS';

- 현재 사용자 명에서 테이블 이름이 memebers인 모든 컬럼 정보 조회

 

 

select id, password, jumin from C##CREHACKTIVE.members;

- 현재 사용자 명에서 테이블 이름이 memebers인 id, password, jumin 정보 조회

 


비순차적 목록화

select table_name from all_tables where owner='C##CREHACKTIVE' and table_name like '%MEM%';

- 현재 사용자 명에서 테이블 이름에 MEM이 포함된 테이블을 조회

 

 

select * from all_tab_columns where owner='C##CREHACKTIVE' and table_name='MEMBERS';

- 현재 사용자명에서 테이블 이름이 MEMBERS인 컬럼 조회

 

 

select table_name, column_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name like '%JUMIN%';

- 현재 사용자명에서 컬럼 이름이 JUMIN인 컬럼에 대해서 테이블이름, 컬럼이름을 조회