해커에 의해 조작된 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 |