본문 바로가기

WebHacking

SQL Injection 공백 문자 필터링 우회

SQL Injection 문제를 풀면서 검색하고 알아낸 공백 문자 필터링 우회 방법을 까먹지 않고 종종 사용할 수 있게 적어놓겠다.

 

[공백 문자 필터링 우회]

1) 개행문자 \n
- 커서를 다음 줄로 이동시키는 개행문자
- url encoding : %0a

2) Tab \t
- 커서를 탭 하나만큼 이동시키는 문자
- url encoding : %09

3) 캐리지 리턴 \r
- 커서를 줄의 맨 왼쪽으로 이동시키는 문자
- url encoding : %0d

4) 주석 /**/

5) 괄호 ()

6) 더하기 +

7) %0b, %0c, %a0
위 방법 모두 실패할 경우 사용
- %0b : vertical tab
- %0c : form feed

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

추가로 다른 우회방법도 차차 적어나갈 예정!! (다른 우회 방법들도 적어가면서 제목이랑 내용도 수정할 예정)

 

[LIKE 우회]
% : 그 위치의 문자 한개 이상
_ : 그 위치의 문자 한개

 

----------------------------- 2023.02.01 추가 -----------------------------

 

[주석 모음]

# : 뒤의 한 줄이 모두 주석처리 됨 

--  : 뒤의 한 줄이 모두 주석처리 됨 (-- 뒤에 공백이 있어야함)

/**/ : /*    */ 사이의 문자들이 모두 주석처리 됨

;%00 : 뒤의 한 줄이 모두 주석처리 됨

 

[개행으로 우회]

%0a%0d 이용해서 개행 후 다음 줄에 SQL Injection 시도

 

[ascii() 함수 우회]

ord() : 아스키함수와 기본적으로 동일하게 작동하지만, ascii 함수는 8비트까지만 표현 가능하고 ord 함수는 멀티바이트 문자까지 표현가능

hex() : 헥스값으로 결과를 출력해준다.

 

[substr() 함수 우회]

mid() : substr 함수와 동일하게 사용하면 된다. ex) select mid('abc', 1, 1); => 'a'

 

참고 블로그

https://go-top.tistory.com/entry/SQL-Injection-%ED%95%84%ED%84%B0%EB%A7%81-%EC%9A%B0%ED%9A%8C-%EB%B0%A9%EB%B2%95-%EA%B3%B5%EB%B0%B1%ED%8E%B8 

 

SQL Injection 필터링 우회 방법 - 공백편

위와 같이 공백을 필터링하는 경우 우회 방법 (즉 띄어쓰기를 대신해서 사용하는 방법) 1) 개행 문자 \n - 커서를 다음 줄로 이동시키는 개행문자 - url encoding: %0a 2) Tab \t - 커서를 탭 하나만큼 이동

go-top.tistory.com