SQL 삽입

서재·2023년 6월 2일
0

시큐어 코딩

목록 보기
2/3

😈 삽입 공격 (Injection flaws)

😈 SQL 삽입

데이터 삽입에 대한 흐름
-> 사용자 입력 -(Injection 가능)-> CRUD 처리 -> 저장 -> 결과 display

입력된 데이터에 대한 유효성 검증(validation)을 하지 않을 경우
공격자가 입력란에 SQL 문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안 약점

이 과정에서 sql 삽입을 하여 데이터를 위변조할 수 있음

클라이언트에서 예외처리를 하더라도 무의미해짐
-> 서버 또한 예외처리를 해야함

💉 해결 방안

sql 삽입 예)
select * from user where id='$id' and pwd='$pwd'
select * from user where id='' or ''=' and pwd='' or ''='
where 절 이하를 참이 되도록 조작하여 데이터베이스에 침입할 수 있게 된다.

위와 같은 삽입 공격의 경우 '(홑따옴표) 입력을 방지하여 해결할 수 있다.
이는 공격자가 시도하기 쉬운 삽입공격이다.
시큐어 코딩이 되었는지 안 되었는지를 판단할 수 있는 첫 관문인 셈이다.

더블인코딩

' : %27
% : 25

'를 처리하기 위해선 %27, 2527 둘 다 처리해야 한다


『소프트웨어 개발보안 가이드』, 행정안전부, 한국인터넷진흥원, 2021.

profile
입니다.

0개의 댓글

관련 채용 정보