1. 개요


1-1. SQL injection이란?

특정한 코드를 주입하여 서버의 데이타베이스를 공격할 수 있는 공격 기법이다. 1)XSS @와 더불어 가장 유명한 기법이며 쉬운 난이도에 비해 공격이 성공할시 파괴력이 강력한 기법이다.

1)웹사이트를 사용하는 사용자중 악의적인 사용자가 게시판이나 웹 메일등을 사용하여 웹사이트의 개발자가 의도하지 않은 기능이나 에러를 작동하게하는 공격 기법이다

1-2. XSS와의 차이점

XSS는 사이트를 이용하는 사용자를 대상으로 행해지는 공격이지만 SQL injection은 서버의 데이터가 모여있는 데이터베이스를 공격하여 데이터를 빼내거나 삭제시키는 공격이다.

1-3. SQL injection의 종류

1-3-1 인증우회(AB-Auth Bypass)

아이디와 패스워드를 입력하는 페이지에서 임의의 코드을 입력창에 넣은 뒤, TRUE/FALSE의 논리연산 오류를 이용해 로그인을 인증하는 2)쿼리문의 결과값이 무조건 TRUE가 나오게 해서 인증을 무력화 시키는 방법이다.

2)쿼리란 데이터베이스에 정보를 요청하는 것으로, 메뉴에서 변수를 선택, 쿼리 언어의 사용 등으로 정보를 요청할 수 있다.

1-3-2데이터 노출(DD-Data Disclosure)

타겟이 되는 서버의 데이터베이스에서 데이터를 빼내오는것이 목적인 방식이다. 일부러 에러를 발생시켜 데이터베이스의에대한 정보를 알아낸뒤 알아낸 정보를 토대로 데이터베이스에 존재하는 내부 데이터를 빼내는 'Error Based' 방식과 'Union'이라는 연산자를 이용하여 원하는 정보를 빼내는 'Union Based' 방식 등이 있다.

1-3-3원격명령 시행(RCE-Remote Command Execute)

MSSQL에서 주로 사용되는 방법으로 쿼리가 모여있는 저장 프로시저를 이용하여 공격하는 방법이다.

1-4. SQL injection으로 공격당한 사례

어나니머스, WTO 웹사이트 공격…직원 정보유출

통계에 따르면, 이번 WTO 해킹사건은 여러 국적의 직원들이 피해를 입었으며, 이중에는 브라질, 중국, 프랑스, 인도, 인도네시아, 파키스탄, 러시아, 산토도밍고, 사우디아라비아, 스리랑카, 미국과 기타 WTO웹사이트 구성원들이 포함된다. 어나니머스는 간단한 SQL 인젝션 기법으로 각 나라에서 접속한 개인정보를 획득했다고 밝혀졌다. 비록 WTO는 공격징후를 발견했지만 그들이 사용한 보안조치는 아무런 효과를 발휘하지 못했다.