작성일 : 23-12-11 09:34
SQL 인젝션이란?
 글쓴이 : 에이디커뮤…
조회 : 2,345  

 

SQL 인젝션


보안의 기본, CH. 04 데이터베이스에 부정 액세스한다.



SQL 인젝션이란?

 

SQL 인젝션이란 웹 애플리케이션에 대한 입력을 악용하여,

애플리케이션의 뒤에서 작동하는 데이터베이스에 부정하는 액세스하는 공격입니다.


SQL 인젝션이 성공하면 공격자는 거의 자유롭게 데이터베이스를 조작할 수 있게 되므로 부정 액세스나 정보의 절취 및 변조, 파괴 등이 가능해집니다. 

중요한 데이터를 데이베이스에 저장하고 있는 경우는 막대한 피해를 입게 됩니다. 



SQL 인젝션의 구조

웹 애플리케이션의 뒤에는 애플리케이션의 참조나

갱신을 하기 위한 데이터를 제공하는 데이터베이스가 마련되어 있는 경우가 많습니다.

사용자의 조회나 조작에 따라 데이터의 참조 및 갱신 처리를 하기 위해 데이터베이스에 SQL 이라는 언어로 조회를 합니다. 


 

조회에는 SQL 중 사용자가 입력하는 부분이 비어 있는 형태로,

입력 값을 채워 넣는 방식(인젝션의 예 그림 참조)으로 일어나기 때문에 사용자의 데이터 베이스 조작에는 제한이 걸려있습니다. 

하지만 애플리케이션에 입력하는 값을 부정으로 조작함으로써 SQL의조회 내용을 자유롭게 바꿀 수 있는 경우가 있습니다.



SQL 인젝션을 허용하는 취약성과 대책

 

SQL 인젝션이 일어나는 원인은 사용자의 입력에 데이터베이스에 대한

조회 내용이 단순한 빈칸채우기의 범위를 넘어 자유롭게 바꿀 수 있게 되어 있는 취약성에 있습니다. 


 

바꿀수 없게 만드는 대책으로는 입력 값을 사용하여 SQL 문을 구성할 때 파라미터 바인드라는 기구를 사용하는 것 등이 있습니다. 



SQL 인젝션의 예 

공격자는 입력 값을 부정으로 조작하여 조회문(SQL)을 자유롭게 바꿔 버립니다.

그 결과 정보의 절취나 변조가 가능해집니다. 아래는 그 방법의 예입니다. 


 

조회문 > 다음 조건과 일치하는 사용자 데이터를 가져오시오.



 
 

Total 462
번호 제   목 글쓴이 날짜 조회
462 코드서명이란? 에이디커뮤… 03-27 890
461 CSIRT란? 에이디커뮤… 02-20 1880
460 정적 해석이란? 에이디커뮤… 01-26 2583
459 씬 클라이언트란? 에이디커뮤… 01-18 2864
458 표적형 공격이란? 에이디커뮤… 01-12 2807
457 왜 스팸 메일이 오는가? 에이디커뮤… 01-09 2327
456 프록시 서버란? 에이디커뮤… 01-08 1765
455 방화벽 에이디커뮤… 01-03 1735
454 플러그인이란? 에이디커뮤… 12-22 2225
453 해상도(Resolution)란? 에이디커뮤… 12-21 2216
452 TLS란? 에이디커뮤… 12-19 2151
451 유튜브 자동재생 HTML 코드 작성방법 에이디커뮤… 12-15 2887
450 크로스 사이트 스크립트(XSS) 에이디커뮤… 12-14 2387
449 "연결이 비공개로 설정되어 있지 않습니다" … 에이디커뮤… 12-12 2423
448 SQL 인젝션이란? 에이디커뮤… 12-11 2346
 1  2  3  4  5  6  7  8  9  10