$bash

SQL Injection - Beginner

0x0300 : Study/0x0302 : Web

B@sh시 의 SQL Injection 입문 가이드 입니다.


웹해킹의 노가다의 꽃이자 기초중에 첫걸음중 한 기법인 기술 입니다.

SQL Injection에 대한 첫 걸음에 대해 조금 가벼운 내용으로  알려드리고자 하니 천천히 읽으시면서 알아가주세요.


1. Who are you?

 SQL Injection은 1998 년에 phrack에 기법이 소개된 이후로 언제나 owasp 상위권을 차지하고 있으며 

수많은 웹사이트에서 수많은 개인정보를 유출하는데 사용되는 기법중 하나이다.


2. 왜 배움?

 SQL Injection 의 가장 큰 특징은 데이터베이스를 공격한다는 것이다. 되게 단순한 방법인 공격 기법이기도 한것이

계속 명령어를 넣어 필터링이 되지않는 명령어를 찾아내어 관리자 권한을 얻어 권한상승 하는것이다.


3. 그럼 쉬운거 아님?? 그래도 이해안되는데 .. ;

 사실 나도 횡설수설 하는거 같아서 뭐라 설명할진 모르겠다. 하지만 이 기법은 웹 해킹의 기법중 하나이며

타겟 웹 사이트의 데이터베이스를 접근하는 공격 방법중 한가지라고 생각하면 되겠다.


4. 그래서 어떻게 하는 기법이냐?

 예시를 들어 주겠다. 일반적인 이라기보다 간단한 예제이며 어디까지나 예제이다.

예제는 나무위키에 나온 내용을 값만 바꿔 사용해본것이다.

SELECT user FROM user_table WHERE id='아이디' AND password='비밀번호';

이것이 간단한 로그인 예제이다.

id : 아이디

password : 비밀번호

인 예제 인 셈이다. 여기서 문제가 별다른 필터링이 없다면 ..


id : 아이디

password : ' OR '1' = '1

이렇게 한다면. 

SELECT user FROM user_table WHERE id='아이디' AND password=' ' OR '1' = '1';

뒷 부분 password 가 생략이 된다.

(사실 여기도 모르겠다 하면 php나 mysql에 대해 공부를 해라.)


이런식으로 password에 대한 값을 누락시키고 아이디와 비밀번호를 참으로 연결 시킨다면 성공적으로 로그인을 하게된 셈이다.


5. 에이 쉽네;;

 그래 쉽다. 하지만 쉽기 때문에 접근 하기 힘들다. xss 라는 기법도 나중에 설명 될테지만 결국 보안 방법은 필터링이다.

비밀번호 입력란에 ' 이라던지 " 기타 등등 여러 특수 문자를 필터링을 걸어버린다면 SQL Injection은 하기 힘들 것이다.

그렇기에 명령어를 어느정도 숙지하고 창의적인 사고가 요구가 되며 어느정도가 아닌 찾아낼 인내심이 요구가 필요해진다.


6. 아 암튼 알겠어. 그럼 따른 명령어는 없어?

 그렇다 그냥 찾아서 공부해라. 내가 알려주면 결국 떠먹기 식으로 알게되는 격이다.

사실 나중에 정리해서 올릴까도 하는데 따로 정리는 해볼 계획이다.




-fin.

'0x0300 : Study > 0x0302 : Web' 카테고리의 다른 글

Web_Tools  (0) 2016.11.30
PHP Comparison  (0) 2016.09.20
wergame.kr_공부  (2) 2016.09.08