[SQL injection]
SQL 이란?
SQL = Structured Query Language
관계형 DB의 데이터를 다루는 표준형 프로그램 언어
SQL 실행 과정
DB - SQL 실행 - 결과 [그림 추가]
SQL injection이란?
SQL injection = 웹 사이트의 보안상 허점을 이용하여 특정 SQL 문을 보내 DB의 중요 정보나 공격자가 원하는 정보를 가져오는 해킹 기법.
SQL injection으로 가능한 공격
- 인증 우회
- 기밀 데이터 접근
- 웹 사이트 콘테츠 변경
- DB 서버 shutdown
SQL injection 우회 기법
= : like, in
substr : substring, mid, left, right
union : = union select user, password from users
= 1 || (select user from users where user_id=1)='admin'
공백 : %20, %09, %0a, %0b, %0c, %0d, %a0, ()
공백 : = select* from table
= select(*)from(table)
싱글쿼터가 없을 경우 : 0x, 0b를 사용하여 16진법, 2진법, 32진법(conv(10,10,36='A')) 등으로 치환
숫자를 사용할 수 없는 경우 : false = 0, true = 1, true+true=2
or : ||
and : &&
SQL injection 방어
- 함수 addslashes()를 이용하여 싱글쿼터 앞에 (\) 추가
'Security_ > Web' 카테고리의 다른 글
[web] 웹 크롤러란? (0) | 2018.08.18 |
---|---|
[web] APM 연동과정 (0) | 2018.08.07 |
[web] GET, POST 차이 (0) | 2018.08.07 |
댓글