SQL Injection 공격은 웹해킹에서 가장 많이 쓰이는 공격 기법 중 하나입니다.
SQL와 Injection(주입하다)의 합성어로, SQL를 주입하는 공격이라는 의미입니다.

SQL Injection 공격은 아이디, 비밀번호를 적는 란과 같이 데이터베이스와 정보를 주고받는 곳에 SQL문을 기입함으로써 데이터베이스에 접근해 정보를 탈취하는 공격 기법입니다.
우리는 어딘가에 로그인을 할 때 아이디와 비밀번호를 입력합니다.

이렇게 아이디와 비밀번호를 입력하면 입력한 정보는 서버의 데이터베이스로 전송되어 가입이 되어있는 아이디인지를 확인하게 됩니다.

SQL Injection 공격은 이러한 과정에서의 보안상 허점을 공격하는 기술입니다.
사용자가 아이디와 비밀번호를 입력하면 다음과 같은 SQL문이 서버로 전송됩니다.

이 SQL의 결괏값을 토대로 로그인이 승인되거나, 불허됩니다.
이제 해커는 여기에다가 조금의 장난을 합니다. 아이디나 비밀번호 란에 SQL문을 기입하는 것이죠.

이렇게 비밀번호 란에 SQL문을 넣는다고 해봅시다. 그러면 서버로 전송되는 SQL문은 다음과 같을 것입니다.

이렇게 되면 기존에는 id='poci' and pw='1234' 였던 조건이 id='poci' and pw='' or 1=1 이 되었습니다.
그러면 전체적인 결과가

이렇게 참이 되어버리기 때문에 서버는 로그인이 승인하거나 다른 중요한 정보를 전송하게 됩니다.
SQL Injection 공격이 무엇인지 아셧으니 아래 만화를 보시면 피식하고 웃으실 수 있을겁니다.

'보안 기술 > 웹해킹' 카테고리의 다른 글
Blind SQL Injection 공격 (0) | 2019.06.19 |
---|---|
쿠키란 무엇인가? (0) | 2019.06.16 |