본문 바로가기
메가IT아카데미 국기과정/JAVA와 웹보안

[1-3] bWAPP 데이터베이스 분석

by 한님폐하 2022. 9. 12.

+--------------------+
| Database                    |
+--------------------+
| information_schema |   // Mysql에서 운영되는 데이터베이스, 테이블, 컬럼의 모든 정보들을 관리하는 DB
| bWAPP                        |   // bWAPP 시나리오에서 사용하는 DB
| drupageddon             |   // bWAPP 시나리오에서 사용하는 DB
| megait                         |   // 실습용으로 생성한 DB
| mysql                           |   // Mysql 운영과 관련된 정보가 저장된 DB
+--------------------+

+-----------------+
| Tables_in_bWAPP |
+-----------------+
| blog                       |   // bWAPP 시나리오 중에 Stored 관련 데이터가 저장되는 테이블
| heroes                   |   // bWAPP 시나리오 중에 heroes 관련 데이터가 저장되어 있는 테이블
| movies                   |  // bWAPP 시나리오 중에 movies 관련 데이터가 저장되어 있는 테이블
| users                      |  // bWAPP 관리자 정보가 저장되어 있는 테이블
| visitors                   |   // bWAPP 시나리오 중에 접속 관련 데이터가 저장되는 테이블
+-----------------+

[참고] blog, visitors 테이블은 다음과 같은 시나리오에서 사용됨

  • HTML Injection - Stored (Blog) 시나리오로 이동하여 'test'를 입력한다.
  • SQL Injection - Stored (User-Agent) 시나리오로 이동한다.

 

2. 참 & 거짓을 이용한 테이블 내용 확인

select * from heroes where 1=1
select * from heroes where 1=1 limit 0,1;

 

3. union을 이용한 테이블 내용 확인

select id,title,release_year,genre from movies union select id,login,password,email from users;
select id,title,release_year,genre from movies union select id,login,password,email from users limit 10,2;
select all 1,2,3,4,5,6,7;
select * from movies union select all 1,2,3,4,5,6,7;
select * from movies union select all 1,2,3,4,5,6,7 limit 10,1;
select * from movies union select all 1,database(),user(),system_user(),version(),6,7 limit 10,1;

 

[참고] MySQL 관리 명령어

database() 데이터베이스 이름
user() 사용자
system_user() 시스템 권한 사용자
version() MySQL 버젼
concat(컬럼 이름,컬럼 이름...) 컬럼 여러개를 1개로 출력
# 주석 처리

 

4. information_schema 데이터베이스

  • MySQL에 존재하는 모든 메타 정보를 운영하는 데이터베이스이다.
  • 이때, 메타 정보는 MySQL에 존재하는 데이터베이스 이름, 테이블 이름, 컬럼 이름/타입, 인덱스, 접근 권한 등을 의미한다.
  • information_schema 데이터베이스 내의 모든 테이블은 읽기 전용이기 때문에 쓰기가 불가능하며 조회만 가능하다. 

[참고] 자주 사용하는 information_schema 데이터베이스의 테이블과 컬럼

SCHEMATA SCHEMA_NAME 
TABLES  TABLE_SCHEMA, TABLE_NAME
COLUMNS TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE

 

4-1. information_schema 데이터베이스를 이용한 다른 데이터베이스 조회

select * from movies union select all 1,schema_name,3,4,5,6,7 from information_schema.schemata limit 10,5;
select * from movies union select all 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema="bWAPP" limit 10,5;
select * from movies union select all 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='heroes' limit 10,4;
select * from movies union select all 1,id,login,password,secret,6,7 from heroes limit 10,6;

 

'메가IT아카데미 국기과정 > JAVA와 웹보안' 카테고리의 다른 글

[1-5] XML Injection  (0) 2022.09.12
[1-4] SQL Injection  (0) 2022.09.12
[1-2] OS Comman&PHP Code&SSI Injection  (0) 2022.09.12
[1-1] HTML Injection  (0) 2022.09.12
[목차] JAVA와 웹보안  (1) 2022.09.11