-
SQLInjection이란?[+] Security [+]/Lord of SQLInjection 2020. 5. 2. 20:12
알고리즘 문제는 풀고난 후 코드가 남아서, 깃허브에 올리는 방식으로 기록을 남겼지만, 워게임 문제풀이나, 공부한 지식들은 가시적이지 않아서 족적을 남기기가 어렵다...
하여!
블로그에 공부한 내용이나 풀이과정을 기록하며 족적을 남기기로 하자! 열심히해보자! 어예!
앞으로 풀 문제는 'Lord of SQLInejction'이라는 사이트의 문제들이다. SQLInjection문제들로 구성된 곳인데, 들어가기에 앞서 SQLInjection에 대해 간단히 알아보고 가자.
SQLInjection이란 'SQL의 허점을 이용해 의도되지 않은 SQL문을 실행하게 하는 해킹기법'이다.
(SQL은 데이터베이스를 다루는 언어다.)
예를들어 ID Password를 입력하는 창에 각각 abc, 1234를 입력한다면 시스템 내부적으론
SELECT ID, PW FROM TABLE WHERE ID = 'abc' and PW = 1234
('테이블에서 ID가 'abc'이고 PW가 '1234'인 ID와 PW를 가져오라' 라는 뜻!)
위와 같은 SQL문을 실행하여 데이터를 가져온다.
하지만 만약 입력창에 각각 abc, 1234 or True를 입력한다면 어떨까? 비밀번호로 1234 or True 를 입력한다!
그렇다면 SQL문은
SELECT ID, PW FROM TABLE WHERE ID = 'abc' and PW = 1234 or True 가 되는데,
이를 해석하면
1. 아이디가 abc 비밀번호가 1234인것을 찾아서 가져올것
2. 또는 모든 아이디 비밀번호를 가져올 것
즉, 입력값으로 넣은 or True 라는 부분이 쿼리를 추가적으로 생산하는 셈이 되어버려 의도하지 않은 SQL문을 실시킨다.
이게 SQLInjection이다.
크으.. 해킹 기법의 예술이란.. 아름답지 않은가?
자 개론은 끝났으니, 본격적으로 들어가보자!
'[+] Security [+] > Lord of SQLInjection' 카테고리의 다른 글
[Lord of SQLInjection] #5 wolfman (0) 2020.05.03 [Lord of SQLInjection] #4 orc (0) 2020.05.03 [Lord of SQLInjection] #3 goblin (0) 2020.05.02 [Lord of SQLInjection] #2 cobolt (0) 2020.05.02 [Lord of SQLInjection] #1 gremlin (0) 2020.05.02