웹 보안 공격- SQL lnjection

2023. 9. 19. 15:06웹 보안 공격

728x90
반응형

웹 보안 

웹 사이트의 취약점을 공격하는 기술적 위협으로, 웹 페이지를 통하여

권한이 없는 시스템에 접근하거나 데이터 유출 및 파괴와 같은 행위를 말한다.

 

다양한 공격 기법

SQL lnjection

Xss

CSRF Attack

File Upload Attack

Command lnjection

Buffer Overflow

Dictionary Attack

...

 

SQL lnjection

서버에서 실행되는 SQL을 악의적으로 이용하는 공격

기존 SQL에 악의적인 SQL을 삽입한다.

데이터 탈취, 삭제 등이 가능하다.

SQL lnjection -사례

 

SQL lnjection -방어

SQL에서 특별한 의미를 가지는 문자를 이스케이프한다. - ex) \n, \t , | , / , & , # , ... 

준비된 선언을 사용한다.

- placeholder를 담은 SQL을 먼저 DB에 보낸후 placeholder에 해당하는 입력 값을 DB에 보내는 방식

요즘은 라이브러리, 프레임워크에서 아주 잘 막아준다.

 

SQL lnjection -심화

Error based SQL lnjection

일부러 SQL 에러를 발생시켜 원하는 정보를 취득한다.

쿼리문 추측, DB명, 테이블명 등을 취득할 수 있다.

 

Blind SQL lnjection

Query 결과의 참/거짓을 보고 원하는 정보가 존재하는지 알 수 있다.

DB, Table 명을 알 수 있다.

SQLMap이라는 자동화 된 툴을 이용하기도 한다.

 

Union SQL lnjection

union 명령을 이용하여 정보를 취득한다