본문 바로가기
마루아라는 개발쟁이/MS.SQL

SQL Injection 해킹 에 관해..

by 마루아라 이야기 2022. 12. 5.
질문: SQL Injection 해킹 에 관해.. kbi8319 / 2008-10-09 16:53
1.   SQL Injection 해킹방법 취약점 공격 방식 의 종류 알려주세요~
 
 


2.  SQL Injection 해킹 대응책 ?








중학생이라서 설명은 간단히 ㅜ 
답변: re: SQL Injection 해킹 에 관해.. saiwnsgud / 2008-10-09 21:25
1.   SQL Injection 해킹방법 취약점 공격 방식 의 종류 알려주세요~


- sql은 db 쿼리값을 조작하여 db에 잘못된 값을 주입하고 관리자나 등등의 계정으로 접근하여 db 조작등을 하는 해킹입니다.


대표적인 코드는


'or 1=1--
'or 1=1# 등이 있습니다


취약점은 웹 사이트마다 다르기 때문에 말씀드리기가 힘드네요.
 
2.  SQL Injection 해킹 대응책 ?


-
■ 보호 대책


(1) 일반 대책


-데이터베이스와 연동을 하는 스크립트의 모든 파라미터들을 점검하여 사용자의 입력 값이 SQL injection을 발생시키지 않도록 수정한다.


-사용자 입력이 SQL injection을 발생시키지 않도록 사용자 입력 시 특수문자(' " / \ ; : Space -- +등)가 포함되어 있는지 검사하여 허용되지 않은 문자열이나 문자가 포함된 경우에는 에러로 처리한다.


-SQL 서버의 에러 메시지를 사용자에게 보여주지 않도록 설정한다. 공격자는 리턴 되는 에러 메시지에 대한 분석을 통하여 공격에 성공할 수 있는 SQL Injection 스트링을 알아낼 수 있다. 따라서 SQL 서버의 에러 메시지를 외부에 제공하지 않도록 한다.


- 웹 애플리케이션이 사용하는 데이터베이스 사용자의 권한을 제한한다. 가능하면 일반 사용자 권한으로는 모든 system stored procedures에 접근하지 못하도록 하여 웹 애플리케이션의 SQL Injection 취약점을 이용하여 데이터베이스 전체에 대한 제어권을 얻거나 데이터베이스를 운용중인 서버에 대한 접근이 불가능하도록 한다.


-php.ini 설정 변경
  : php.ini 설정 중 magic_quotes_gpc 값을 On으로 설정한다.










■ 개발 언어별 대책
-사용자로부터 입력받은 변수로 SQL 쿼리 구문을 생성하는 CGI는 입력받은 변수를 체크하거나 변경하는 로직을 포함하고 있어야 한다.


-입력받은 변수와 데이터 베이스 필드의 데이터형을 일치 시켜야 하고, 사용 중인 SQL 구문을 변경시킬 수 있는 특수문자가 포함되어 있는지 체크해야 한다.


-검색 부분과 같이 클라이언트로부터 생성된 SQL 구문을 받는 부분이 있다면 이를 제거해야 한다.


□ ASP
-취약한 SQL Injection 예제




-안전한 SQL Injection 예제




□ PHP
-addslashes() 함수 사용
  : 사용자가 입력하는 값들($_GET, $_POST)을 모두 addslashes() 함수를 이용하여 처리하여 준다.




-취약한 SQL Injection 예제








-안전한 SQL Injection 예제






퍼온것이긴 하지만 설명이 잘되어있습니다.


이해가 안가셔도 할수 없습니다. 어느정도 지식이 있어야만 이해가 가는 게 해킹이니까요..
728x90
반응형
LIST