DoR@Hee의 끄적끄적
sql 인젝션 우회 기법 본문
1. or and 구문을 필터링 하고 있을 경우
- url 인코딩 문자인 %로 우회
- and >> %26%26, &&
- or >> %7C%7C, ||
2. 단순 문자열 필터링인 경우 - preg_match
- php 필터링 함수인 preg_match를 사용할 때 char, hex값을 이용한다
- 단 preg_match 정규식을 표현 하고 있을 때 i를 안썻다면 대소문자 구분을 안하기 때문에 "AdMin" 이런식으로 사 용이 가능하다
- char(97,100,109,105,110)
- char(0x61646D696E)
2. 단순 문자열 필터링인 경우 - ereg, eregi
- 대소문자 구분을 안하기 때문에 대소문자를 이용해 우회
ex) aDmin
3. = 우회
- like >> 1 like 1
- instr >> instr(1, 1); INSTR('foobarbar', 'bar'); INSTR('foobarbar', 'bar');
4. substr 등 문자열을 자르는 함수 우회
- substr("abc",1,1)='a' 결과 1(참)
- substring("abc",1,1)='a' 결과 1(참)
- mid("abc",1,1)='a' 결과 1(참)
- left("abc",1)='a' 결과 1 참 (왼쪽부터)
- right("abc",1)='c' 결과 1 참 (오른쪽부터)
- right(left(‘abc’,1),1)='a' 결과 1 참(substr 함수와 동일)
5. ascii 함수 우회
- hex('admin')
- ord()
6. if 함수 우회
- coalesce((리턴 값), 변환 값)
- sleep(시간지연 함수)
- 만약 error 기반일 경우 에러를 이용 ex) (select 1 union select 2)
7. 공백 우회
- %0a
- %0b
- %0c
- %0d
- %a0
- +
- /**/ >> 다중 라인 주석
8. 주석 우회
- %00;
9. replace 우회
- admin 이라는 문자열을 공백으로 필터링 하고 있는 경우
- adadminmin
10. 0,1 등 숫자
- '!' = '!' ture
- '!' = '@' false
'취약점 진단 > WEB' 카테고리의 다른 글
mysql load_file을 이용한 sql Injection (0) | 2019.05.06 |
---|---|
sql 문자열 결합 방법 (0) | 2019.05.05 |
SQL Injection 종류 (0) | 2019.04.27 |
mysql - information_schema (0) | 2019.03.26 |
Blind Sql Injection -값 길이, 값 가져오기 (0) | 2019.03.25 |