Information Security

[DreamHack]-WHA ExploitTech: System Table Fingerprinting 본문

INTERLUDE/Web Hacking

[DreamHack]-WHA ExploitTech: System Table Fingerprinting

sohexz 2022. 3. 29. 18:56

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에 해당하는 정보를 조회

select TABLE_SCHEMA, TABLE_NAME from information_schema.TABLES;

컬럼 정보

COLUMNS 테이블의 내용 중 TABLE_SCHEMA와 TABLE_NAME, 그리고 COLUMN_NAME을 모두 조회

select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME from information_schema.COLUMNS;

실시간 실행 쿼리 정보

PROCESSLIST 테이블을 통해 실시간으로 실행되는 쿼리를 조회할 수 있음

select * from information_schema.PROCESSLIST;

SYS 데이터베이스의 SESSION 테이블을 통해 실행 중인 계정과 함께 조회하는 방법도 있음

select user,current_statement from sys.session;

DBMS 계정 정보

USER_PRIVILEGES 테이블을 통해 MySQL 서버의 계정 정보를 조회할 수 있음

USER_PRIVILEGES 테이블의 GANTEE, PRIVILEGE_TYPE, 그리고 IS_GRANTABLE을 조회

계정 정보와 각 권한에 대한 내용이 포함

select GRANTEE,PRIVILEGE_TYPE,IS_GRANTABLE from information_schema.USER_PRIVILEGES;

MYSQL 데이터베이스의 USER 테이블을 통해 조회하는 방법

select User, authentication_string from mysql.user;