특징

  • 웹 사이트의 보안상 허점을 이용해 특정 SQL 쿼리문을 전송하여 공격자가 원하는 데이터베이스의 중요한 정보를 가져오는 해킹 기법을 말한다. 대부분 클라이언트가 입력한 데이터를 제대로 필터링하지 못하는 경우에 발생

Error based SQL Injection

  • 가장 대중적인 기법으로 SQL 쿼리에 고의적으로 오류를 발생시키고 이때 출력되는 에러의 내용으로 필요한 정보를 찾아내는 공격 기법
  • 기본적으로 '(싱글 쿼테이션) 또는 "(더블 쿼테이션)을 이용하여 GET, POST 요청 필드나 HTTP 헤더 값, 쿠키값 등에 삽입하여 SQL 에러를 통해 정보를 탈취

Union base SQL Injection

  • UNION 키워드를 사용하여 원래의 요청에 추가 정보를 얻는 공격 기법으로 UNION 하려는 두 테이블의 컬럼 수와 데이터 형식이 같아야함

Blind SQL Injection

  • 에러가 발생되지 않는 사이트에서 데이터 베이스로부터 특정한 값이나 데이터를 전달받지 않고, 단순히 참과 거짓의 정보만 알 수 있을 때 사용하는 공격 기법
  • limit, SUBSTR, ASCII를 사용해서 조건이 참이면 페이지가 정상적으로 출력되고 그렇지 않을 경우 출력되지 않음으로 구분이 가능

Stored Procedure based SQL Injection

  • 저장 프로시저(Stored Procedure)는 쿼리들을 모아 하나의 함수처럼 사용
  • 웹에서 저장 프로시저에 대한 접근 권한을 가짐으로써 실행이 가능
  • 공격 난도가 높으나 성공 시 직접적인 피해를 입힐 수 있는 공격 기법

Mass SQL Injection

한 번의 공격으로 다량의 DB가 조작해 큰 피해를 입히는 공격 기법으로 DDoS 에 악용

대응방안

  • 입력 값에 대한 검증 로직을 구현하여 사전에 정의된 특수 문자들이 입력되지 않도록 조치
  • Prepared Statement 구문을 사용하여 개발을 함으로써 입력 값에 들어가는 데이터는 단순히 문자열로 처리되도록 설정
  • 불필요한 데이터베이스 에러 메시지가 사용자에게 노출이 되지 않도록 설정
  • 웹 방화벽 (WAF, Web Application Firewall)를 사용하여 비정상적인 데이터가 전송이 될 경우 차단
    → 양날의 검 ip port번호가 아닌 여러가지 조건 오히려 관리가 어려워져서 퍼포먼스가 나오기 힘들 수 잇음

Reference

https://hooneee.tistory.com/344

https://velog.io/@33bini/DB-SQL-Injection

https://noirstar.tistory.com/264

'CERT' 카테고리의 다른 글

웹취약점: 권한인증 취약점  (0) 2024.08.16
웹취약점: 에러처리 취약점  (0) 2024.08.16
XSS(크로스 사이트 스크립트) 취약점  (0) 2024.08.16
웹 쉘  (0) 2024.08.16
웹취약점: 기타 취약점  (0) 2024.08.16

+ Recent posts