4.2.2 웹 애플리케이션 취약점을 통한 해킹
웹 서버의 취약점을 제거하더라도 웹 애플리케이션의 취약점에서 웹 해킹 사고가 발생하는 경우가 가장 많다. 주로 웹 애플리케이션을 개발할 때 웹 애플리케이션 보안 취약점을 소홀히 점검하여 발생하는 경우가 대부분이다. 여기서는 수많은 웹 애플리케이션의 취약점 중 자주 발생하는 대표적인 사례 몇 가지를 알아보겠다.
SQL 인젝션 공격
SQL 인젝션(SQL injection)은 웹 애플리케이션에서 발견되는 대표적인 취약점으로, 웹 애플리케이션이 데이터베이스와 연동하여 SQL을 질의하는 과정에서 이뤄진다. 이를 이용해 주로 인증 과정을 우회하여 원하는 계정에 접근하거나 특정 명령어를 실행시킬 수 있다.
여기서는 SQL 인젝션 공격을 실습할 수 있는 예제로 로그인 페이지의 인증을 우회하는 방법에 대해 간단히 알아보겠다. 로그인할 때 ID와 Password에 임의의 특수 값을 넣어 데이터베이스에 질의하는 과정에 논리적인 오류가 발생되는데 이때 로그인 인증을 우회하거나 다른 사용자로 인증할 수 있는 취약점이 발생할 수 있다.