이번엔 진짜 SQL injection을 해볼 것이다.
해보기전에 개념부터 집고 넘어가자
SQL injection 은 SQL 테이블에 악성 공격자가 SQL 쿼리문을 보내어 SQL 데이터 데이스의 내용을 탈취하는 공격 기법이다. 주로 SQL injection을 막는 코드가 없을 때 가능한 공격 기법이다.
OWASP TOP 10 (출처: https://portswigger.net/daily-swig/hive-mind-owasp-2017-top-10-released)
이 공격법은 OWASP(웹 취약점, 보안 취약점, 악성 스크립트를 연구하는 보안 프로젝트)에 TOP 10 에 들어갈 정도로 손 꼽히는 공격법이다.
SQL injection의 공격 목적은 다음과 같다.
인증우회
대부분 아이디/패스워드 페이지에 행해지는 공격기법이며, 참거짓 논리 연산자를 이용해 많이 공격한다.
DB데이터 조작 및 유출
타켓에 데이터를 삭제 또는 추출해 내는 공격이다.
시스탬 명령어 실행
원격으로 SQL 명령어에 시스탬 명령어를 섞어 보내는 공격이다. (다만, 일부 데이터베이스에만 해당된다. / 예시) MSSQL)
이 공격은 SQL injection이 가능한 웹서버라면 해당 웹서버의 데이터베이스 삭제는 물론이고, 해당 관리자의 계정을 탈취하는 등 여러 피해를 초래해 혼란을 야기한다.
우리는 전 강좌에서 만든 모의 서버에 할거니 상관은 없지만
만약 실제로 사용한다고 하면 법에 걸릴 수 있으니 조심하자.
이 강좌 쓰는 나는 니가 뭔 법에 저촉되는 상관 없고 걸린 당신과도 연관이 없다 ^^
이제 개념을 봤으니
적용해보자
다시 우리가 만들었던 웹서버로 돌아가보자.
원래라면 제목과 번호가 붙어서 나올거다.