본문 바로가기

cs 기초지식/데이터베이스

SQL Injection

해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법

2017년에 여기어때에 일어난 해킹 사건 역시 SQL Injection으로 이뤄진 것이라고 한다.

(난 그러진 않을거지만 이런식으로 해킹을 할 수 있는건 좀 흥미롭긴 하다)

 

공격방법

인증우회

제일 흔하게 사용되는 논리적 에러를 이용한 SQL 인젝션이다. 원래 입력창에 아이디와 비번을 입력하고 1번 쿼리가 실행된다면, 3번처럼 WHERE id = ' ' OR 1 = 1 -- 와 같은걸 넣어줌으로써 구문이 무조건 True가 되게 해서 모든 계정을 조회하게 되고 가장 처음에 만들어진 계정에 로그인하게 되는 것이다. 이 때 보통 관리자 계정이 가장 처음으로 만들어지기 때문에 관리자 계정으로 로그인하게 돼서 2차 피해가 발생할 수 있다.

 

데이터노출

시스템에서 발생하는 에러 메세지를 이용해서 공격하는 방법.

해커가 고의적으로 에러를 발생시키고 그 에러들을 확인함으로써 해당 웹앱의 데이터베이스 구조를 파악할 수 있게 된다. 해커는 이러한 정보를 해킹에 이용하게 된다.

 

참고문헌

'cs 기초지식 > 데이터베이스' 카테고리의 다른 글

SQL과 NoSQL의 차이  (0) 2022.07.21
조인(JOIN)  (0) 2022.05.16
키(Key)  (0) 2022.05.14