보안/보안 개념

SQL Injection 개념 및 실습

no-brake 2026. 5. 19. 13:26

[개념]

  • 정상적인 SQL 쿼리에 부적절한 입력 값을 삽입하여 의도하지 않은 행위나 공개하지 않은 데이터를 유출하는 공격
  • 중요한 DB 데이터를 손상 및 유출 시킬 수 있는 치명적인 공격
  • 공격 구조가 다소 복잡하여 수기로 하나씩 시도하기에는 많은 시간이 소모되어 SQL Injection 자동화 도구 사용
  • Blind SQL Injection : 의도적으로 where 절을 참, 거짓 일 때 반응을 이용해 DB 값을 유추하는 공격으로 AND 연산자를 주로 사용

  • 응답 결과가 다르게 나온다면 SQL Injection 공격 취약 여부 확인 가능

  • 데이터베이스 이름 1번째 글자가 'a' 여부 확인
    이후 b, c, d, e ... 점차 반복하며 확인

[실습]

  • ID 무작위 글자
  • PW 'or'1'='1 입력 후 로그인 시도
  • 로그인 성공시 SQL Injection 취약 확인 됨

  • 무작위 게시물 접속 후 URL 복사

 

  • 게시판 URL에 SQL문 삽입시 정상 접속 확인으로 SQL Injection 취약 확인 됨
sqlmap --current-db -u "(복사한 URL)"

 

  • 자동으로 취약점 탐색 시작