ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS study] 2022.05.22
    CS 2022. 5. 22. 18:56

    SQL injection (SQL 주입)

    예시

    • 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격하는 공격 방식
    • 공격의 쉬운 난이도에 비해 파괴력이 어마어마하다

     

    공격 방법

    1. 인증 우회
      • 로그인을 할 때 아이디와 비밀번호를 input창에 입력하게 된다.
      • 공격을 할 때는 input창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력하는 것
      • 보안이 완벽하지 않으면 아이디, 비밀번호가 일치하며 True가 되고 뒤에 작성한 쿼리 문도 동작을 해 DB에 영향을 줄 수 있다
    2. 데이터 노출
      • 시스템에서 발생하는 에러를 이용해 공격하는 방법
      • 에러는 개발자가 버그를 수정하는 부분에서 도움을 받을 수 있는 존재이다.
      • 해커들은 이를 역이용해 악의적인 구문을 삽입해서 에러를 유발
      • GET방식으로 동작하는 URL 쿼리 스트링을 추가하여 에러를 발생시킨 후 이를 통해 DB구조를 유추해냄

     

    방어 방법

    1. input값을 받을 때 특수문자 여부를 검사하기
    2. SQL 서버 오류가 발생할 시 해당하는 에러 메시지를 감춘다.
    3. preparestatement 사용하기
      • preparestatement: 직역하면 준비된 서술로 SQL 쿼리를 사전에 컴파일 한 뒤 변수만 따로 집어넣어 실행하는 것

    'CS' 카테고리의 다른 글

    [CS study] 2022.06.01  (0) 2022.06.01
    [CS study] 2022.05.30  (0) 2022.05.31
    [CS study] 2022.05.11  (0) 2022.05.12
    [CS study] 2022.05.10  (0) 2022.05.10
    [CS study] 2022.04.22  (2) 2022.04.23

    댓글

Designed by Tistory.