Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

ITSTEIN

웹해킹 / SQL INJECTION 본문

WEB

웹해킹 / SQL INJECTION

the awesomest 2017. 7. 25. 17:25

웹의 해킹 기술중 sql injection을 알아보겠다.


1. sql injection

클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격하는 '코드 인젝션'의 한 기법이다.

* 공격은 매우 쉽지만 파급력은 매우 큰 해킹

* sql injection 취약점의 탐지 및 방어도 매우 쉽다.


2. 공격 예제

* 로그인 기법

- select * from user_info where id = '${id}' and password = '${pass}'

- ${id} = test , ${pass} = ' or '1' = '1

${id} = eggrok'; -- , ${pass} = ' or '1' = '1

${id} = eggrok' or '1' = '1 , ${pass} = 12345

 

* 이메일 변경 및 새로운비밀번호 신청

- select * from user_info where id = '${id}' and password = '${pass}'

- ${id} = eggrok'; update user_info set email = 'eggrok@hanmail.net' where id = 'eggrok'; --

- 이메일을 변경한뒤, 새비밀번호를 변경된 이메일로 받을수 있다.


* 테이블 삭제

- select * from user_info where id = '${id}' and password = '${pass}'

- ${id} = eggrok'; drop table user_info; --


3. 방어

* 사용자로부터 입력받은 값을 필터링하여 취약 문자 삭제. 

* sql에 값을 셋팅할때, prepared statment 사용.

- where id = '${id}' => where id = #{id}와 같이 사용. 

- preparedstatment는 변수를 바인딩 할때, 값으로 인식이 되기때문에... ex) 쿼리문이 '문자열' / '숫자'로 인식됨 

sql 조작이 불가능.


 

## 출처

http://www.unixwiz.net/techtips/sql-injection.html

https://namu.wiki/w/SQL%20injection

'WEB' 카테고리의 다른 글

웹 해킹 / XSS / Cross Site Scripting  (0) 2017.07.13
Comments